始める無料で始める

インスタンスマスクを重ねる

前の演習でセマンティックマスクを作成できましたね。次は、インスタンスセグメンテーションモデルが物体を特定した位置で、その上にインスタンスマスクを書き込みましょう。

作業スペースに用意されている学習済みの MaskRCNN を使ってインスタンスセグメンテーションのマスクを生成します。続いて、これらのマスクをループで処理し、各マスクについて、高い確信度で物体が検出された部分をセマンティックマスクの上に重ねます。

torch はすでにインポートされています。

この演習はコースの一部です

PyTorch で学ぶ画像向け Deep Learning

コースを見る

演習の手順

  • semantic_mask をクローンして panoptic_mask を初期化します。
  • インスタンスマスクを反復処理する for ループを定義し、イテレータ変数は mask とします。
  • 各インスタンスマスクについて、値が 0.5 より大きい位置では、現在の instance_id で panoptic マスクを上書きします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Instantiate model and produce instance masks
model = MaskRCNN()
with torch.no_grad():
    instance_masks = model(image_tensor)[0]["masks"]

# Initialize panoptic mask as semantic_mask
panoptic_mask = ____

# Iterate over instance masks
instance_id = 3
for ____ in ____:
    # Set panoptic mask to instance_id where mask > 0.5
    panoptic_mask[____] = ____
    instance_id += 1
    
# Display panoptic mask
plt.imshow(panoptic_mask.squeeze(0))
plt.axis("off")
plt.show()
コードを編集して実行