R-CNN 中級者向け話題

Fast R-CNN も Faster R-CNN もあらかじめ訓練された事前訓練データをファインチューニングしています。事前訓練は Caffe で配布されている AlexNet の caffemodel でした。 Faster R-CNN では,特徴ベクトルの抽出と関連領域の矩形切り出しとを同時に行ないます。下図を参照してください。

図の左側から画像入力が入ります。AlexNet の全結合層である最終2層を取り除いた(この2層は ImageNet の1000種類の判別に使われるので使わない)畳込み層までの情報を一旦関心領域プーリング層に蓄えます。全結合層を経由して物体認識と関連領域切り出しを並列に行うのが Fast R-CNN です。

この場合,目標関数(損失関数)が2つ存在するので,学習時には認識層の出力からくる損失関数と,矩形領域回帰に用いる損失関数をラムダλを調整のためのハイパーパラメータとして混ぜあわせることが行われました。すなわち

全体の損失関数 = 物体認識の損失関数 + λ 矩形回帰の損失関数

です。λ=1 なら両方の損失関数に対する重みの配分が等しくなります。実際の論文でもλ=1でした。

Faster R-CNN では領域提案ネットワーク(RPN: reagin proposal network)によって,畳込みニューラルネットワークからの情報を一旦プールし,そのプーリングされた特徴地図上でスライディングウィンドウを動かします。その結果を物体認識層と矩形回帰層とが共有します。下図を参照してください。

Faster R-CNN では最下層,すなわち原画像から特徴地図を得る畳込みニューラルネットワークから上がってくる情報まで一つのシステムで学習し,上がってきた情報を用いて一般物体認識と矩形回帰を同時に行ないます。それまでのシステムと異なり,畳込みニューラルネットワークからの出力を待って,パイプラインで接続して上位層が別の学習を行うという冗長な計算が発生しないため Fater R-CNN では画像一枚あたり 200 ミリ秒を実現しました。