物体を四角い枠で囲むだけでなく、その輪郭までピクセル単位で塗り分ける——それがMask R-CNNです。物体検出の標準モデルFaster R-CNNを土台に、マスク生成の機能とRoIAlignという精密な位置合わせ技術を加えたこのモデルは、インスタンスセグメンテーションの代表格としてG検定でも頻出です。

📖 ひと言でいうと

Mask R-CNNとは、Faster R-CNNを基盤として、物体検出(バウンディングボックスとクラスの予測)に加えて、物体ごとのピクセル単位のマスクも同時に生成する、インスタンスセグメンテーションの代表的モデルです。

例えるなら、Faster R-CNNが「写真の中の人物を四角い付箋で囲んで名前を書く」作業だとすれば、Mask R-CNNはさらに「その人物の形どおりにハサミで切り抜ける型紙」まで作ってくれるイメージです。枠ではなく輪郭そのものが得られるため、物体の形状を詳細に捉えられます。

🖼 1枚でわかるMask R-CNN

Mask R-CNN
  • タスク — 物体検出+インスタンスセグメンテーションを同時に実行
  • 土台 — Faster R-CNNを基盤に、マスク生成の分岐を追加
  • 核心技術 — RoIAlign(RoIPoolの量子化ずれを解消する位置合わせ)
  • 出力 — バウンディングボックス+クラス+ピクセル単位のマスク
  • 応用 — 人体の姿勢推定など他タスクへの拡張も容易
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

画像認識分野で用いられる深層学習モデルの一つで、物体検出とインスタンスセグメンテーションを同時に行う手法である。このモデルは、Faster R-CNNを基盤としており、物体の位置を示すバウンディングボックスの予測に加え、各物体のピクセル単位のマスクも生成する。これにより、画像内の各物体を個別に識別し、その形状を詳細に捉えることが可能となる。Mask R-CNNの主な特徴は、RoIAlign(Region of Interest Align)と呼ばれる手法を導入している点である。従来のRoIPoolでは、量子化による位置情報のずれが生じていたが、RoIAlignはこれを解消し、より正確な位置合わせを実現している。これにより、マスクの精度が向上し、物体の境界をより正確に捉えることができる。また、Mask R-CNNは、物体検出とセグメンテーションのタスクを統合的に処理するため、効率的な学習と推論が可能である。さらに、人体の姿勢推定など、他のタスクへの応用も容易であり、柔軟性の高いモデルとして知られている。

ポイントは2つです。1つ目は「Faster R-CNNが土台」であること。物体検出の枠組みはそのままに、マスクを出力する分岐を追加した構成です。2つ目は「RoIAlign」の導入です。ピクセル単位のマスクを正確に描くには、候補領域と特徴マップの位置合わせの小さなずれも致命的になるため、従来のRoIPool(RoIプーリング)を精密化したRoIAlignが不可欠でした。

🔍 しっかり理解する

R-CNNファミリーの到達点

Mask R-CNNは、R-CNN系列の進化の延長線上にあります。

Fast R-CNN
RoIプーリングで検出を高速化
Faster R-CNN
RPNで候補領域提案まで学習
Mask R-CNN
RoIAlign+マスク分岐でセグメンテーションへ

Faster R-CNNは、候補領域ごとに「クラス」と「バウンディングボックス」の2つを予測します。Mask R-CNNはここに3つ目の出力として「マスク」の分岐を並列に追加しました。既存の検出の枠組みを壊さずに拡張しているため、物体検出とセグメンテーションを統合的に処理でき、効率的な学習と推論が可能です。

RoIAlignはなぜ必要か——RoIPoolの「ずれ」問題

Fast R-CNN以来のRoIPool(RoIプーリング)は、候補領域を特徴マップ上の格子に割り当てる際、座標を整数に丸める「量子化」を行っていました。特徴マップは元画像より大幅に縮小されているので、特徴マップ上のわずか1マスの丸め誤差が、元画像では十数ピクセルのずれに相当してしまいます。クラス分類だけならこの程度のずれは許容できますが、ピクセル単位でマスクを描くタスクでは境界がゆがむ致命的な誤差になります。

RoIAlignは、座標を整数に丸めず、小数のまま扱って周囲の値から補間(バイリニア補間)することで、このずれを解消しました。厳密には「量子化をやめて連続座標のままサンプリングする」変更ですが、「丸めをやめて正確な位置合わせをする」と理解すれば十分です。これによりマスクの精度が向上し、物体の境界をより正確に捉えられるようになりました。

インスタンスセグメンテーションという課題

セマンティックセグメンテーション(FCNやPSPNetなど)は、ピクセルを「人」「道路」などのクラスに塗り分けますが、隣り合う2人の人物は同じ「人」クラスとしてひとかたまりになります。インスタンスセグメンテーションは、これを「1人目」「2人目」と個体別に塗り分けるタスクです。Mask R-CNNは「まず物体検出で個体を見つけ、その枠の中でマスクを描く」という構成によって、個体の区別とピクセル単位の形状把握を両立させています。

💡 具体例で考える

細胞画像の解析

顕微鏡画像から細胞の数や形状を調べる場面では、細胞同士が接触・重なり合っていることが多く、「細胞領域」をまとめて塗るセマンティックセグメンテーションでは1つ1つを数えられません。Mask R-CNNなら、個々の細胞を別インスタンスとして検出し、それぞれの輪郭マスクを得られるため、細胞のカウントや形状の定量評価に活用できます。

姿勢推定への拡張

公式テキストにある「人体の姿勢推定など、他のタスクへの応用」も重要です。マスクを出力する分岐を、関節位置(キーポイント)を出力する分岐に置き換えれば、同じ枠組みで人物ごとの姿勢推定ができます。「候補領域ごとに何を予測するかを分岐で差し替えられる」という柔軟性が、Mask R-CNNが汎用的な基盤モデルとして評価される理由です。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「Mask R-CNNはセマンティックセグメンテーションの手法」は不正確 — Mask R-CNNはインスタンスセグメンテーション(物体を個体別に塗り分け)の手法です。個体を区別しないセマンティックセグメンテーション(FCN・PSPNetなど)と混同しないようにしましょう。
  • RoIAlignとRoIPoolの取り違え — RoIPoolはFast R-CNN以来の手法で量子化によるずれが生じます。それを解消したのがMask R-CNNのRoIAlignです。「どちらが新しいか」「ずれが生じるのはどちらか」の入れ替えが定番のひっかけです。
  • RPNとRoIAlignの混同 — RPNは候補領域を「提案する」ネットワーク(Faster R-CNNで導入)、RoIAlignは候補領域の特徴を「正確に切り出す」処理(Mask R-CNNで導入)です。導入されたモデルと役割をセットで覚えましょう。
  • 基盤の取り違え — Mask R-CNNの基盤はFaster R-CNNです。「YOLOを基盤とする」などの記述は誤りです。

📝 試験でのポイント

💡 ポイント
  • 「物体検出とインスタンスセグメンテーションを同時に行う」「Faster R-CNNを基盤とする」の2点がMask R-CNNを特定する目印です。
  • RoIAlignの説明「RoIPoolの量子化による位置情報のずれを解消し、正確な位置合わせを実現」は、そのまま正誤判定問題になる想定です。
  • R-CNN系列の進化(RoIプーリング=Fast/RPN=Faster/RoIAlign+マスク=Mask)の対応付けは最頻出テーマです。
  • 応用として姿勢推定に拡張できる点も、応用シーン問題の判定材料になります。

📚 まとめ

💡 ポイント
  • Mask R-CNNは、Faster R-CNNを基盤に、物体検出とインスタンスセグメンテーションを同時に行うモデルです。
  • バウンディングボックスとクラスに加え、物体ごとのピクセル単位のマスクを生成し、形状を詳細に捉えます。
  • RoIPoolの量子化ずれを解消するRoIAlignの導入により、マスクの精度と境界の正確さを実現しました。
  • 検出とセグメンテーションの統合処理による効率性と、姿勢推定などへの拡張の容易さから、柔軟性の高い基盤モデルとして知られています。