ROI Pooling

Region of Interest Pooling

ROI Poolingとは

ROI Pooling(Region of Interest Pooling)とは、物体検出において、可変サイズの候補領域(Region of Interest)から固定サイズの特徴マップを抽出するための演算です。Fast R-CNNで導入され、2段階検出モデルの効率的な処理を可能にした重要な技術です。

表:ROI Poolingの要点まとめ
ひとことで言うと大きさがバラバラの候補領域を、決まったサイズにそろえる処理。
なぜ必要か後段の全結合層は固定サイズしか受け付けないため。
注意点切り捨てによる位置ずれが起きる。改良版のROI Alignがより正確。

ROI Poolingの仕組み

候補領域は画像中の様々な位置とサイズで提案されるため、それぞれ異なるサイズの特徴マップに対応します。しかし、後続の全結合層に入力するには固定サイズの特徴が必要です。ROI Poolingは、候補領域を等分割したグリッドに区切り、各グリッドセルでMax Poolingを行うことで、常に同じサイズの出力を生成します。例えば、7x7のグリッドに分割すると、入力サイズに関わらず7x7の固定サイズの特徴マップが得られます。

図:ROI Poolingのしくみ
1候補領域大きさはバラバラ
▶
2格子に分割7×7などに区切る
▶
3各マスで最大値代表値を取り出す
▶
4固定サイズに後段へ渡せる形に

ROI Alignへの進化

ROI Poolingには、領域を整数座標に量子化する際に位置のずれが生じるという課題がありました。この問題を解決するために、Mask R-CNNで導入されたROI Alignがあります。ROI Alignは双線形補間を用いて正確な位置の特徴をサンプリングするため、量子化誤差がなくなります。特にピクセルレベルの精度が要求されるインスタンスセグメンテーションでは、ROI Alignが大きな性能向上をもたらしました。現在ではROI Alignが標準的に使われています。