モデル・技術

Mask R-CNNとは?箱の上に形を重ねる——検出からインスタンスマスクへ枝分かれ

読み:マスク アールシーエヌエヌ / 英:Mask R-CNN

更新日: 読了目安:約7分

Mask R-CNNは、物体の箱(バウンディングボックス)に加え、物体ごとの輪郭(マスク)まで推定するCNNベースのモデルです。Faster R-CNNが「どこに何があるか」まで届くのに対し、Mask R-CNNは同じ候補領域からマスク用の枝が伸びる——本記事はRoIAlignの細部より、「検出とインスタンスセグを一本化した理由」に焦点を当てます。

画像認識タスクの階段

試験では画像認識タスクの段階差が繰り返し問われます(G-021)。

タスク出力代表モデル
画像分類画像全体のクラスResNetなど
物体検出クラス+バウンディングボックスFaster R-CNN、YOLO
インスタンスセグクラス+箱+物体ごとのマスクMask R-CNN
セマンティックセグ画素ごとのクラス(個体は区別しない)FCN、U-Net

Mask R-CNNは階段の「検出の一つ上」——箱で囲むだけでは足りない「形まで欲しい」場面(ロボット掴み、画像編集の切り抜きなど)向けです。

マスク枝の設計

G-326の定義を、パイプラインで整理します。

  • 特徴抽出CNNバックボーン+FPNなどで多段特徴を得る
  • 候補生成・分類Faster R-CNNと同様、物体候補を検出しクラスを当てる
  • RoIAlign — 各候補領域から固定サイズの特徴を位置ずれを抑えて切り出す
  • マスク枝 — 小さな畳み込みネットで低解像度マスクを予測(物体ごとに1枚)

ポイントは枝分かれ(multi-task)——検出用ヘッドとマスク用ヘッドが同じ候補領域を共有し、別々のモデルを二回走らせない設計です。試験では「Faster R-CNNの拡張」と答えるのが安全です。

インスタンス vs セマンティック

セグメンテーションには2系統あります(TF-116)。

種類同じクラスの複数物体Mask R-CNNとの関係
セマンティック同じ色・ラベルにまとまるFCN系の主戦場
インスタンス個体ごとに別マスクMask R-CNNの主戦場

例:写真に犬が2匹いる——セマンティックなら「犬」領域が1色に溶け合うこともある。インスタンスなら犬A・犬Bでマスクが分かれる——Mask R-CNNは後者を狙います。

G-330のパノプティックセグはさらに背景と個体を統合——Mask R-CNNはそのインスタンス側の部品として位置づけられます。

評価の物差し

検出ではIoUでボックスの重なりを測り(G-316)、マスクでも領域のIoUで品質を評価します。クラス名が合っても輪郭がズレればスコアは下がる——箱だけの検出より厳しい物差しです。

学習データにはCOCOのように、ボックスとマスクの両方が付いたアノテーションが使われます。損失は分類・ボックス回帰・マスク予測を同時に最適化——マスクだけのモデル(G-327のU-Net等)とは入口が違います。

試験で押さえるポイント

  • 定義 — 物体検出+各インスタンスのマスク推定
  • 系譜Faster R-CNNの拡張。R-CNNファミリー
  • タスクインスタンスセグメンテーション(個体ごとのマスク)
  • 対比 — FCN=セマンティック、YOLO=検出中心、word2vec=NLP

演習で確認する

G検定:G-326G-021TF-116TF-124G-323

すり替えに注意

誤った説明正しい理解
Mask R-CNN=FCNインスタンスセグ vs セマンティックセグ
Mask R-CNN=Faster R-CNNマスク出力あり vs 検出のみ
Mask R-CNN=GAN認識モデル vs 生成器・識別器の枠組み
Mask R-CNN=word2vec画像認識 vs 単語埋め込み(G-327の誤答パターン)
Mask R-CNN=画像分類位置・形状まで vs 画像全体のラベル

よくある質問

Mask R-CNNは何をするモデルですか?

画像中の各物体について、バウンディングボックスでの位置・クラス分類に加え、物体ごとのピクセルマスク(輪郭)も推定するモデルです。物体検出とインスタンスセグメンテーションを一度に行う代表例として知られます。

Mask R-CNNとFaster R-CNNは同じですか?

同じではありません。Faster R-CNNは物体検出(位置とクラス)が主目的です。Mask R-CNNはその上にマスク推定用の枝を追加し、各インスタンスの形状まで出力します。基盤は共通ですが、出力とタスクの範囲が広がります。

Mask R-CNNとFCNは同じですか?

同じではありません。FCNは画素ごとにクラスを割り当てるセマンティックセグメンテーション向けです。Mask R-CNNは物体ごとに個別のマスクを出すインスタンスセグメンテーション向けで、検出パイプライン(R-CNN系)を土台にしています。