アンカーボックス (Anchor Box) [物体検出]

1. アンカーボックス(Anchor box)とは [概要]

アンカーボックス(Anchor box)とは,アンカーベースの物体検出ネットワーク手法において,CNN特徴マップ上に配置した各アンカー点周辺に,予測の元矩形として複数サイズ配置しておく,バウンディングボックス予測の事前分布候補群である.アンカーボックスベースの物体検出(Faster R-CNN, YOLO, SSDなど)では,各アンカー周辺に配置したK個のアンカーボックスそれぞれに対して,対応する空間セル領域の特徴量ベクトルから,バウンディングボックスのズレ量(オフセット)を回帰する.アンカーボックスは「これくらいの大きさで物体が検出されるはず」という事前分布であるゆえ,アンカーボックス内の特徴ベクトルをもとに「物体クラス識別 + バウンディングボックス回帰」を予測するすることで,少数の候補群からだけの高速な処理が実現できる.

古典的な単一クラス物体検出DPM(変形可能パーツモデル群)では,スライディングウィンドウ方式で,密に各ピクセル位置において,固定サイズ窓内の画像特徴からクラス識別を行っていた.CNN物体検出では,R-CNN(Region-CNN)などで提案された「クラス識別と回帰位置特定(Localization)を,マルチタスク学習」という基本戦略が定番になった.

CNN物体検出では,「CNNの特徴マップ出力(小さめ)」と「入力画像サイズ(大きめ)」との空間対応付けを行う際に, 疎な候補である「アンカーボックス群からの(物体クラスごとの)ズレの回帰」という作戦をとる.つまり,単一クラス物体検出DPM(変形可能パーツモデル群)の頃の「密な固定サイズ窓によるスライディングウィンドウ処理」は行わなくなり,CNN物体検出では「疎な各アンカー位置において,K個の各アンカーボックスからの識別+回帰を行う」ことになった.

1.1 アンカーボックスからの予測の手順

アンカーボックス(Anchor Box)
図1. アンカーボックス(Anchor Box)

図1は,各セルに対して配置されたアンカーボックスを基準にして,バウンディングボックスを回帰する様子を図示したものである.

VGGNetなどのCNNバックボーンで計算した終盤層の,特徴マップ [S x S] サイズの各セルの中心には,基準点としてアンカー(Anchor)が配置されている (図1-a).

そして,アンカー周辺には,それぞれK種類のアンカーボックスが配置されており,全部で [S x S] x K 個のアンカーボックスが用意されている (図1-b) .次の1.2節で述べるように,K個のアンカーボックスのサイズとアスペクト比は,データドリブンに物体検出データセットから決める.

最後に,各アンカー周辺に準備された [S x S] x K 個のアンカーボックスに対して,個別に回帰オフセット量が出力されてバウンディングボックス矩形が「アンカボックス+オフセットでの修正」の結果として推定される (図1-c).YOLO v2だと,各セルには,クラス確率と信頼度も得られており,クラス予測もされたバウンディングボックス矩形のみが残るので,それらをNMS(非最大値抑制)することで,最終的な(クラス識別済み)検出結果が得られる.

1.2 アンカーボックス群の準備方法

1.2.1 初期は手動

アンカーボックスのアイデアが提案された Faster R-CNN [Ren et al., 2015] の領域提案ネットワーク(RPN)では,図1-b のように,設計者(論文著者)が決めた,「3スケール × 3アスペクト比 (1:1, 1:2, 2:1) = 9」の,k = 9個ずつのアンカーボックスを,各アンカー(各セル)に配置した.

また,YOLO v1 でも,セルのボックスサイズをそのままアンカーボックスとして使用した.YOLO直後にに登場したSSDは,FPN(Feature Pyramid Network)を導入し,マルチスケール検出処理を行うようになったが,アンカーボックスのアスペクト比率 (1, 2, 3, 1/2, 1/3)は,著者が手動で決めていた.

1.2.2 その後はデータセットドリブン

それが,YOLO v2では,データドリブンに,データセットの正解バウンディングボックスのサイズ分布から,アンカーボックスのサイズを決めることが提案された.具体的には,Pascal VOCや MS-COCOの正解バウンディングボックス群から,K-meansクラスタリングをK=5で行い,アンカーボックスのサイズを決定する (YOLO v2 論文 [Redmon and Farhadi, 2016] のFigure 2が,ボックスサイズの可視化例で参考になる).

これ以降,アンカーベース手法では,データの分布に沿ったアンカーボックス群を学習時に用意することも行われるようになった(ただ,手作業手法もその後も多い).

YOLO v2 の頃(2016)以降の物体検出では,「アンカー・フリー手法」の研究も多くなってきて,主流の1つを成すようになるが,それらの手法では,アンカーボックスを使用しない.一方で,インスタンスセグメンテーションなどでR-CNN手法の発展は継続しており,DETRでも(本来アンカーフリーなのに)アンカーをわざわざ配置する手法も研究されているなど「アンカーフリーとアンカーボックスのどちらが良いか」は,定まっていないので,2極的にどちらかだけを信奉しないように注意してほしい.

2.まとめ

ディープラーニング時代の物体検出における,アンカーボックスの役割と,変遷について紹介した.

特徴マップ上の,各セル位置(=アンカー点)において,K個の異なるアンカーボックスを用いることで,ボックスサイズの事前分布をもとにして,効率的な物体検出が実施できる.

関連記事

関連書籍

References

  • [Liu et al. 2016] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, Cheng-Yang Fu, and A. C. Berg. Ssd: Single shot multibox detector. In ECCV, 2016.
  • [Redmon et al., 2016] Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. You only look once: Unified, real-time object detection. In CVPR, 2016.
  • [Redmon and Farhadi, 2016] J. Redmon and A. Farhadi. YOLO9000: Better, Faster, Stronger. In CVPR, 2017.
  • [Ren et al., 2015] Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: towards real-time object detection with region proposal networks. In NIPS, 2015.

参照外部リンク