ターゲット検出(六)——Faster R-CSN


arxiv:http://arxiv.org/abs/1506.01497 github(offical、Matlab):https://github.com/ShaoqingRen/faster_rnn githb:https://github.com/rbgirshick/py-faster-rcnn github(MXNet):https://github.com/msracver/Deformable-ConvNets/tree/master/faster_rnn githb:https://github.com//jwyang/faster-rcnn.pytorch github:https://github.com/mitmul/chainer-faster-rcnn
Faster R-CANN(Caffe版)の運行は、Faster RCNNのインストールおよびDemoの運転を参照することができます.
目标检测(六)——Faster R-CNN_第1张图片は、Fast R-CSNアルゴリズムの欠陥を解決するために、アルゴリズムをtwo stageの全ネットワーク構造を実現するために、2015年にマイクロソフト研究院の任少慶、何凱明、そしてRoss B Girrshickなどから、Faster R-CSNアルゴリズムを提案した.補助的にサンプルを生成するRPN(Region Propsal Networks)ネットワークを設計し、アルゴリズム構造を2つの部分に分け、まずRPNネットワークで候補枠が目標かどうかを判断し、分類された多重タスク損失で目標タイプを判断し、ネットワークフロー全体で畳み込み神経網絡で抽出された特徴情報を共有し、計算コストを節約する.そして、Fast R-CoNNアルゴリズムを解決して、候補枠の抽出が多すぎてアルゴリズムの正確性が低下することを回避しながら、正負サンプルの候補枠速度が遅い問題を生成する.
目标检测(六)——Faster R-CNN_第2张图片
アルゴリズムフロー
  • は、一枚の画像をCNNに送り、特徴抽出を行う.
  • は、最終層の畳み込みfeature map上で、region proposal(RPNを介して)を生成し、各ピクチャの約300個の提案ウィンドウ;
  • は、RoI pooling層(実は単層SPP layer)を介して、各提案ウィンドウに固定サイズのfeature mapを生成させる.
  • は、2つの全接続層(FC)を通って特徴ベクトルを得ることを継続する.特徴ベクトルはそれぞれのFC層を介して、二つの出力ベクトルを得る.一つは分類で、ソフトマックスを使って、二つ目は各種類のbounding boxが復帰します.SoftMax LossとSmooth L 1 Lossを利用して、分類確率と枠に対して、合同訓練を行います.
  • 革新点
  • は、選択的検索の代わりにRPN(Region Proposal Network)を用いて、GPUを用いて計算し、region proposalを抽出する速度を大幅に削減する.
  • は、推奨ウィンドウのCNNとターゲット検出CNNとの共有を生成する.
  • Faster RCNNは実は4つの主要な内容に分けることができます.
  • Conv layers.CNNネットワークターゲット検出方法として、Faster RCNNはまず基本的なconv+relu+pooling層のセットを使用して、イメージのfeature mapsを抽出する.このfeature mapsは、後続のRPN層および全接続層に対して共有される.
  • Region Proposal Networks.RPNネットワークは、region proposalsを生成するために使用される.この層はソフトマックスを通じて、アンチョスがforgroundまたはbackgroundに属すると判断し、またbounding box regressionを利用してアンチョスを修正して正確なproposalsを得る.
  • Roi Pooling.入力されたfeature mapsとproposalsを収集し、これらの情報を総合してproposal feature mapsを抽出し、後続の全接続層に送ってターゲットカテゴリを判定する.
  • Class ification.proposal feature mapsを利用してproposalのカテゴリを計算しながら、bounding box regressionを再度利用して、検出枠の最終的な正確な位置を獲得する.
  • Region Propsal Networks
    Region Proposal Networksは、Faster RCNNが新たに提案したプロposal生成ネットワークです.これは、以前のRCNNとFast RCNNにおけるselective search法に代わって、全てのコンテンツを一つのネットワークに統合し、検出速度を大幅に向上させた.目标检测(六)——Faster R-CNN_第3张图片 RPNネットワーク構造:anchors->softmaxを生成し、foregroundとbackground->bbox regを判定してfg anchorsに戻る->Propsal Layerを生成し、proposalsを生成する.
    anchors anchorsを生成するのはrpn/generate_のグループです.アンチョス.pyで生成された長方形.直接generate_を運転します.アンチョス.pyは以下の出力を得る.
    [[ -84.  -40.   99.   55.]
     [-176.  -88.  191.  103.]
     [-360. -184.  375.  199.]
     [ -56.  -56.   71.   71.]
     [-120. -120.  135.  135.]
     [-248. -248.  263.  263.]
     [ -36.  -80.   51.   95.]
     [ -80. -168.   95.  183.]
     [-168. -344.  183.  359.]]
    各行の4つの値[x 1,y 1,x 2,y 2]は、矩形の左上と右下の角の座標を表します.9つの長方形は全部で3つの形があります.アスペクト比は大体width:height=[1:1,1:2,2:1]の3種類です.
    目标检测(六)——Faster R-CNN_第4张图片
    実際にanchorsを通して,検出においてよく用いられるマルチスケール法を導入した.上のanchors sizeについては、実は検出画像に基づいて設定されています.python demoでは、任意の大きさの入力画像reshpeを800 x 600(すなわち、上述のM=800、N=600)にする.振り返ってみると、anchorsの大きさは、anchorsの中で、幅が最大で352 x 704、幅が2:1の中で最大736 x 384で、基本的には800 x 600の各スケールと形状をカバーしています.この9つのanchorsはConv layers計算により得られたfeature mapsを遍歴しており、各点にこの9つのanchorsを初期の検出枠として配備している.このようにして検出枠が正確ではないので、心配しなくても大丈夫です.あと2回bounding box regressionが検出枠の位置を修正できます.目标检测(六)——Faster R-CNN_第5张图片はconv 5の後、rpn_をした.conv/3 x 3巻积、num_output=256は、各点に相当して周囲3 x 3の空間情報を使用しています.同時に256-dは不変です.同時に赤枠の中の3 x 3が積み重なっています.全部でk個のancherがあると仮定して、アンコはforgroundとbackgroundに分けられます.だから、cls=2 k scoresです.各anchorrは[x,y,w,h]4つのオフセットに対応していますので、reg=4 k coordinationです.
    softmaxはforegroundとbackground 目标检测(六)——Faster R-CNN_第6张图片が1*1巻を通じて(通って)そして(通って)18と判定しました.feature mapsに対応しています.各点に9つのanchoursがあります.また、各anchorsはforegroundとbackgroundであり、これらの情報はすべてWxHx(9 x 2)サイズのモーメント陣を保存します.Softmax分類に続いてforeground anchorsを取得するということは、検出対象候補領域boxを最初に抽出したことに相当する(foreground anchors中にターゲットがあると思われる).ソフトマックスの前後にレスリング・ラyerが続きます.ソフトマックスの分類を容易にするためです.caffeベースデータ構造blobでは、上記の保存bg/fg anchorsに対応するマトリクスをcaffe blob=[batche,chanel,height,width]として保存します.ソフトウェアの分類にはfg/bgの2つの分類が必要ですので、reshpe layerはそれを[1,2,9*H,W]サイズに変えます.つまり単独の「空に昇る」次元を出してsoftmax分類します.その後、reshpeは元の状態に戻ります.
    bbox reg回帰fg anchors
    目标检测(六)——Faster R-CNN_第7张图片
    上の図に示すように、緑色の枠が飛行機のGround Truth(GT)であり、赤色が抽出されたforevground anchorsである場合、赤色の枠が分類器によって飛行機と識別されても、赤色の枠の位置付けが正しくないため、飛行機が正確に検出されていないに相当する.だから、私達は赤い枠を微調整する方法を採用したいです.foreground anchorsとGTがもっと近いです.目标检测(六)——Faster R-CNN_第8张图片 目标检测(六)——Faster R-CNN_第9张图片
    ウィンドウについては、一般に四次元ベクトル(x,y,w,h)を使用して表し、ウィンドウの中心点座標と幅の高さをそれぞれ表します.上の図について、赤色の枠Aは元のForeground Anchorsを表し、緑色の枠Gは目標のGTを表し、元のアンチョーAを入力してマッピングして真実のウィンドウGにより近いリターンウィンドウG’を得ることを目標にしています.その中(G’x,G’y,G’w,G’h)≒(Gx,Gy,Gw,Gh)は、詳細は論文を見ることができます.
    Propsal Layerは、ホストネットワークにRPN(Region Propsal Network)ネットワークを追加し、異なるスケールのアンカーポイントを一定の規則で設定することにより、RPNの畳込み特徴層において候補枠を抽出し、Selective Searchなどの従来の候補枠生成方法の代わりに、ネットワークの端から端までのトレーニングを実現した.候補領域の生成、候補領域の特徴抽出、枠回帰と分類の全過程は一気に書き上げられ、訓練の過程でモデルの各部分は自分の任務をどのように完成するかを学ぶだけでなく、お互いに協力する方法も自主的に学びます.これも最初の真の意味での深さ学習目標検出アルゴリズムである.
    参照
    Faster R-CSN:Towards Real-Time Object Detect Detect with Region Proposal Networks Faster R-CSNコードに基づいて実現される詳細Object Detection-handing 1587