既存の深層畳み込みベースの物体検出モデルである R-CNN は、(当時としては)優れた物体検出精度を実現したが、学習と推定速度ともに非常に低速であるという問題があった。
本手法では、R-CNN を大幅に高速化し(学習時間:約10倍以上、推定時間:約100倍)、更に物体検出精度も高めた Fast R-CNN を提案している。
PASCAL VOC 2012 での物体検出で、当時のSOTAを達成
3. 技術や手法の"キモ"はどこにある?
【R-CNN】前提知識
R-CNN では、物体検出を以下の3つのモジュールに分けて行っている。
a. 物体候補領域検出するモジュール (Region Proposal)
b. 得られた物体候補領域の特徴抽出を行うモジュール(特徴抽出は CNNで行う)
c. 得られた物体候補領域から分類を行うモジュール(分類はSVMで行う)
物体候補領域検出モジュールで検出された候補領域は複数存在するが、R-CNN はこれら複数候補領域”全て”に対して、CNN で特徴抽出し、SVMで分類を行っている。そのため、非常に低速であるという問題が存在する。
Fast R-CNN では、物体候補領域ではなく元の入力画像に対して CNN で特徴抽出することで、複数回 CNN を通さなくてよくして、処理速度を大幅に高速化するというのが基本的なコンセプトである
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
【R-CNN】前提知識 R-CNN では、物体検出を以下の3つのモジュールに分けて行っている。 a. 物体候補領域検出するモジュール (Region Proposal) b. 得られた物体候補領域の特徴抽出を行うモジュール(特徴抽出は CNNで行う) c. 得られた物体候補領域から分類を行うモジュール(分類はSVMで行う)
物体候補領域検出モジュールで検出された候補領域は複数存在するが、R-CNN はこれら複数候補領域”全て”に対して、CNN で特徴抽出し、SVMで分類を行っている。そのため、非常に低速であるという問題が存在する。 Fast R-CNN では、物体候補領域ではなく元の入力画像に対して CNN で特徴抽出することで、複数回 CNN を通さなくてよくして、処理速度を大幅に高速化するというのが基本的なコンセプトである
アーキテクチャの全体像
RoI Pooling layer
ImageNet で事前学習済み CNN モデルの fine-tuning 先に述べたように、このネットワーク全体は、ImageNet で事前学習済み CNN モデル(VGG 等)を fine-tuning したネットワークで構成されている。 具体的な fine-tuning 内容は、以下のようになる。
RoI Pooling layer での fine-tuning RoI Pooling layer での pooling 層は、ImageNet で事前学習済み CNN モデルの最後の層での pooling 層を利用している。但し、入出力サイズは互換性を持たせるため fine-tuning されている。
softmax 出力層と BBOX のオフセット値出力層 事前学習済みCNNモデルの出力層を、softmax 出力層と BBOX のオフセット値出力層に fine-tuning
ネットワークの入力 画像のリストとその画像の RoI リストを入力出来るように、事前学習済みCNNモデルの入力層を fine-tuning
損失関数(Multi-task loss) 本手法でのネットワークは、以下の式で定義される Multi-task loss によって、end2end に学習される。(但し、RoI 領域検出部分は除く)
SVD(特異値分解)によるFC層の高速化 Fast R-CNN では、CNN による畳み込み処理の回数を減らして高速化した結果、全体の処理時間に対する全畳み込み層(FC層)の割合が大きくなってしまい、この部分が処理時間の面でボトルネックになるようになった。 そのため、このFC層の高速化も行っている。 具体的には、以下の式のように、全畳み込み層での行列計算をSVD(特異値分解)で近似するようにする。
4. どうやって有効だと検証した?
既存の物体検出モデルとの物体検出精度の定量比較検証
既存の物体検出モデルとの処理速度の定量比較検証
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献