Faster R-CNN (Ren et al., 2016) よりも早く提案された R-CNN や Fast R-CNN では、selective search (Uijlings et al., 2013) と呼ばれているアルゴリズムでオブジェクトの位置を決め、畳み込みニューラルネットワーク(CNN)でオブジェクトのクラスを判定している。一方で Faster R-CNN では、オブジェクトの位置とオブジェクトのクラス判定の両方を CNN で行えるようにしたアルゴリズムである。Faster R-CNN では、処理時間のかかる selective search を使わないことで、アルゴリズム全体の処理時間を大幅に短縮させることに成功した。
Faster R-CNN のアーキテクチャにおいて、画像は CNN を介して特徴マップに変更される。この際に、VGGNet などが利用される。次に、CNN より出力された特徴マップは、region proporsal network に渡されて、オブジェクトの候補位置の推定に使われる。オブジェクトの候補位置が推定されると、その位置情報と CNN より出力された特徴マップの両方が同時に、RoI pooling 層に入力されて、 その位置に存在しているオブジェクトのクラスが推定される。
region proposal network
CNN より出力された特徴マップは、region prooposal network (RPN) に引き渡されて、オブジェクトのバウンディングボックスを決めるために使われる。RPN では、この特徴マップの全体に対して、n×n のウィンドウをスライディングさせる。そして、各スライディングウィンドウの中央をアンカーとして、k 個のバウンディングボックス(anchor boxes)を作る。
これら k 個の anchor boxes は、続いて、中間層を介して、互いに独立している cls 層と reg 層に入力される。cls 層では、入力された特徴から、その anchor boxes 中にはオブジェクトが含まれているかどうかを示す確率を出力している。そして、reg 層では、入力された特徴から、anchor boxes の座標情報(ボックスの重心・縦幅・横幅)を出力している。RPN では、cls 層と reg 層の組み合わせで、オブジェクトのバウンディングボックスを検出している。
RoI pooling
RPN で推定されたバウンディングボックスの位置情報は、CNN で出力された特徴マップとともに、RoI pooling 層に入力される。これ以降は、Fast R-CNN とほぼ同じ処理を行なわれ、バウンディングボックス中にあるオブジェクトのクラスが推定される。
References
- Faster R-CNN: Towards real-time object detection with region proposal networks. arXiv. 2016. arXiv: 1506.01497
- Selective search for object recognition. IJCV. 2013.