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
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| 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系)を土台にしています。