Sleep like a pillow

Deep Learning関係の話。

論文読み Deep Learning for Generic Object Detection: A Survey

Deep Learningを用いた物体検出手法についてまとめたサーベイ論文です。

Deep Learning for Generic Object Detection: A Survey

3 Frameworks

 物体検出手法は大きく以下の2つに分類することができる。

  • two stage detection framework: 最初に領域候補の推定(region proposal)を行い、次にクラスやbounding boxの座標を推定する。
  • one stage detection framework (region proposal free framework): 領域候補の推定と、クラスやbounding boxの座標の推定を1段階で行う。

3.1 Region Based (Two Stage Framework)

 region based frameworkでは以下の手順で物体検出を行う。

  1. クラス関係なく領域候補を生成する。
  2. 各領域候補からCNNを用いて特徴量を抽出する。
  3. クラスを推定する分類気を用いて各領域候補のクラスを推定する。

RCNN

 画像分類におけるCNNのブレイクスルーと、ハンドクラフト特徴量とselective searchを用いた領域候補生成が成功したことを受けて提案された物体検出手法。 最初に提案されたregion-based frameworkである。 以下のようにして学習を行う。

  1. selective searchを用いて、クラス関係なく領域候補を生成する。
  2. 領域候補を画像からクロップして同じサイズにリサイズする。そうして得られた画像を使って、ImageNetで事前学習されたCNNをfinetuningする。
  3. CNNの出力層手前の出力を使って、クラス数ぶんの複数の線形SVMの学習を行う。
  4. bouding boxの座標推定はCNNの特徴量を使って各クラスごとに学習する。

f:id:uiiurz1:20181223090631p:plain
RCNN

 RCNNは高精度な物体検出を達成したが、以下のような欠点がある。

  1. 学習が複数に分かれていて複雑。それぞれのステージの学習を別々に独立して行うため、遅いしうまく学習させるのが難しい。
  2. 領域候補の生成にはselective searchを使う必要がある。
  3. 各領域候補からCNN特徴量を抽出するため、SVMとbounding box推定の学習にかかるストレージと時間のコストが高い。
  4. テストにおいても各領域候補それぞれからCNN特徴量を抽出するため、時間がかかる。

SPPNet

 テストにおける主なボトルネックは約2000の領域候補それぞれからCNN特徴量を抽出することである。これを解決するためにSPPnetでは、traditionalな手法であるspatial pyramid pooling (SPP)をCNNの設計に導入する。SPPは任意のサイズの特徴マップを一定数のビンに分割し、各ビンについてmax poolingをかける手法である。ビンの数は一定であるため固定サイズの出力が得られる。畳み込み層の入力サイズは任意であるから、CNNの畳み込み層の最後の出力に対してSPPをかけることで、任意のサイズの入力画像から固定サイズの特徴ベクトルを抽出することができる。SPPnetをRCNNに導入することで、テスト画像全体に一回だけ畳み込みをかければよくなるので検出が大幅に高速化される。 一方で学習は遅いままである。また、SPPnetではfinetuningの際にSPP層よりも前の畳み込み層を更新できないため、CNNの精度が制限される。

Fast RCNN

 multitask lossを導入することで、クラスの推定やbounding boxの座標推定を同時に学習できるようになった。そのため、領域候補の生成を除いてend-to-endな学習が可能である。

RoI Pooling

 各領域候補から特徴量を抽出する際の畳み込みが一回で済むようにRoI poolingを導入。RoI Poolingは特徴マップを一定数のsub-windowに分割し、それぞれについてmax poolingをかけることで固定サイズの特徴マップを得る。

 RCNNやSPPnetと比較して大幅に効率性が上がり、学習時間は3倍、テスト時間は10倍高速化された。end-to-endな学習によって精度も良くなり、領域候補ごとにCNN特徴量を生成することもないためストレージにかかるコストも少なくなった。

f:id:uiiurz1:20181223102316p:plain
Fast RCNN

Faster RCNN

 Fast RCNNでは検出プロセスの大幅な高速化に成功したにも関わらず、領域候補の生成にselective searchを用いている。そのため、Fast RCNNでは領域候補の生成が新たなボトルネックとなっている。Faster RCNNではselective searchの代わりに、CNNの特徴マップを用いて領域候補を生成するRegion Proposal Network (RPN)を提案。

RPN

 Region Proposal Networks(RPN)は任意サイズの画像を入力にとり、物体の領域候補とそれぞれの物体らしさ(objectness)を出力する。計算量削減のためにFast RCNNと特徴抽出部分を共有する。

 領域候補を生成するために、FCN(VGGの特徴抽出部分など)の特徴マップ全体に対して、小さいネットワークをスライドさせながらかける。スライディングウィンドウは256次元または512次元のベクトルに写像され、bounding boxのoffsetを予測するbox-regression layer(reg layer)と、objectnessを予測するbox-classification layer(cls layer)に全結合される(すべて畳み込み層のみで実現できる)。 それぞれのスライディングウィンドウで同時にk個の異なるアスペクト比とスケールの領域候補(anchor)を予測する。

f:id:uiiurz1:20181223103715p:plain
RPN

 Faster RCNNはテストにおいて5fpsでの検出が可能であり、PASCAL VOC 2007においてSOTAな精度を達成した。

f:id:uiiurz1:20190101141054p:plain
Faster RCNN

RFCN (Region based Fully Convolutional Network)

 Faster RCNNはFast RCNNよりも桁違いに高速だが、各RoIのクラスとbounding boxの推定をするために全結合層で構成されたsubnetworkを適用する必要がある。RFCNではRoIをとる前に特徴マップ全体に全結合層や畳み込み層をかけたのちに各RoIのクラスとbounding boxの推定をする。共有の計算時間を増やして、各RoIに適用するsubnetworkの計算量を減らすことで高速化。単純な設計だとFaster RCNNよりも精度がかなり落ちるらしく、色々と独自のモジュールを追加することで、Faster RCNNと同等の精度を達成できる。

f:id:uiiurz1:20181231150844p:plain
RFCN

Mask RCNN

 Faster RCNNをピクセル単位のインスタンスセグメンテーションを行うことできるように拡張した手法。1st stageのRPNによるRoI生成まではFaster RCNNと同様で、2nd stageのクラスとbounding boxの推定と並行して、物体のピクセルを示すバイナリマスクをFCNによって推定する。また、RoI Poolingの改良版としてRoIAlignを提案。 COCOのobject instance segmentationとbounding box object detectionでSOTAを達成。学習がシンプルで汎化性能が良く、Faster RCNNに対する計算量の増加も僅かであり5FPSで動作する。

RoIAlignの分かりやすい説明

https://qiita.com/yu4u/items/5cbe9db166a5d72f9eb8

f:id:uiiurz1:20181231160724p:plain
Mask RCNN

Light Head RCNN

 RFCNの検出速度を高速化するために、subnetworkの計算量をさらに削減した手法。separable convolution (pointwise convolutionとdepthwise convolution)を導入することでsubnetworkの計算量の削減に成功。

separable convolutionの分かりやすい説明

https://qiita.com/yu4u/items/34cd33b944d8bdca142d#depthwise-convolution%E3%81%A8pointwise-convolution

3.2 Unified Pipeline (One Stage Pipeline)

 region-based piplineは研究によって、より高精度かつ高速な検出が可能になったが、容量や演算能力が限られているモバイルデバイスウェアラブルバイスにとっては計算量が多すぎる。 この問題に対処するために、 クラスやbounding boxの座標の推定を1段階で行うunified piplineが研究されてきた。

 unified pipelineは領域候補の生成やsubnetworkによる各領域候補の分類を含まず、単一のCNNを用いて画像からbounding boxとそれぞれのクラスを直接推定する。 領域候補の生成やRoI Poolingなどの特徴の再サンプリングを完全に排し、単一のネットワークで全ての計算を行うためシンプルでエレガント。 また、パイプライン全体が単一のネットワークであるため、end-to-endで学習することができる。

DetectorNet

 最初にCNNを物体検出に適用した手法。DetectorNetでは、物体検出をbounding boxについての回帰問題として定式化。AlexNetの最終層を回帰用にlinearに置き換えたものを用いる。最初に画像を粗いグリッドで分割し、グリッドごとに前景か背景か推定する。同様に別の4つのネットワークを用いて、物体の上下左右をグリッドごとに推定する。最後にgrouping processによって、グリッドごとの推定からbounding boxを推定する。学習や計算が色々と面倒臭いみたい。

OverFeat

 初めてFCNを用いたone-stage detector。画像にFCNをかけることで物体を検出するため計算効率が良い。FCNによって特徴ベクトルのグリッドを生成し、それぞれの特徴ベクトルから物体が存在するグリッドを推定する。物体が存在すると推定されたグリッドについて、特徴ベクトルからbounding boxを推定する。OverFeatでは画像を6つの異なるスケールに拡大・縮小して物体の検出を行い、それらを集約することで性能を向上させる。同時期に提案されたRCNNと比較して検出速度は大幅に高速であるが、精度はかなり低い。速度向上はFCNを用いたことによるもので、精度が低いのはFCNの学習が難しいため。

YOLO (You Only Look Once)

 画像を S \times Sグリッドに分割し、各グリッドのセルについてクラスとbounding boxの座標とobjectnessを推定する。候補領域を推定する必要がないため高速であり、通常のYOLOでは45FPS、高速版のFast YOLOでは155FPS で検出が可能である。 YOLOは推定を行うときに画像全体を見ているため物体周辺のコンテクスト情報を暗黙のうちに含んでおり、背景を誤検出することがほとんどない。一方で、粗いグリッドのセルについてbounding boxの位置やスケール、アスペクト比を推定しているため、位置推定の誤差が大きい。また、構造上各グリッドのセルが一つの物体しか含むことができないため、セル内に複数の小さい物体がある場合は推定が難しい。

f:id:uiiurz1:20190101114445p:plain
YOLO

YOLOv2 and YOLO9000

 YOLOv2はYOLOの改良版であり、YOLOはGoogLeNetをベースにしていたが、YOLOv2はオリジナルのDarkNet19を用いる。PASCAL VOCやMS COCOでSOTAを達成した。YOLO9000は9000クラスのリアルタイム物体検出が可能なようにYOLOを改良した手法。

SSD (Single Shot Detector)

 SSDは検出精度を大きく下げることなくリアルタイム検出を行うために提案された。SSDはFaster RCNNのRPNとYOLOとマルチスケールの畳み込み特徴量を用いるアイデアを効果的に組み合わせた手法であり、高速化かつ高精度な物体検出が可能である。 YOLOと同様に固定数のbounding boxとscoreを推定し、NMSをかけることで検出結果を出力する。SSDで用いられるCNNはFCNであり、VGGやResNetなどのCNNの特徴抽出部分の最後にいくつかの補助的な畳み込み層を追加することで、段階的に特徴マップのサイズを小さくしていく。最終層の特徴マップは解像度が落ちており、小さい物体の正確な位置推定を行うには空間的に粗すぎるため、SSDでは浅い層の解像度が高い特徴マップを小さい物体の検出に用いる。 このように、スケールの異なる複数の特徴マップそれぞれからbounding boxとcategory scoreを推定することで、様々な大きさの物体を検出できる。VOC2007で74.3%mAP(59FPS)を達成。

f:id:uiiurz1:20190101150346p:plain
SSD

4 Fundamental SubProblems

 物体検出の重要な部分問題である特徴表現(feature representation), 候補領域の推定(region proposal), context information mining, training strategyについて議論する。

4.1 DCNN based Object Representation

 物体検出において、検出器の持つ主要な構成要素の一つは特徴表現である。これまでに局所特徴量(SIFTやHOGなど)や、探索手法(Bag of WordsやFisher Vectorなど)について多数の試みが行われてきた。しかし、これらの特徴表現手法は慎重なエンジニアリングや、かなりの専門的な知識を必要とする。  一方でDCNN (Deep CNN)といったディープラーニングの手法は、複数の処理を行う層で構成されており、raw画像から直接強力な特徴表現を複数の抽象レベルで学習することができる。学習を行うことで 特定の専門知識に対する依存性や、traditionalな特徴エンジニアリングに必要な複雑な手順を減らすことができるため、優れた特徴表現を設計するよりも、それを獲得するための優れたネットワーク構造を設計する流れになっている。

4.1.2 Methods For Improving Object Representation

 マルチスケールな物体検出は以下の3つに分類できる。 1. Detecting with combined features of multiple CNN layers: 複数の畳み込み層を結合して物体を検出する手法 2. Detecting at multiple CNN layers: 複数の畳み込み層それぞれで物体を検出する手法 3. Combinations of the above two methods: 上記の二つを組み合わせた手法

(1) Detecting with combined features of multiple CNN layers

 代表的な手法はHypercolumns, HyperNet, ION。特徴量の結合はskip connectionとしてみなすことができ、最近のsemantic segmentationの手法でもよく使われている。 IONでは、複数層から得られる特徴量にROI poolingをかけて同一サイズにすることで結合する。selective searchとedgeboxesによって生成された候補領域について、結合した特徴量を用いて分類する。 HyperNetでも同様のアイデアを用いており、深い層、中間の層、浅い層のそれぞれで候補領域の生成と物体の推定をend-to-endで行う。この手法で生成される候補領域の数は画像1枚から100と少なく、得られる特徴量も位置推定と分類について優れたものになっている。欠点としては計算量が増加してしまう。

f:id:uiiurz1:20190401190636p:plain
HyperNet, ION

(2) Detecting at multiple CNN layers

 この方式では、複数の層から得られるcoarse-to-fineな予測値を結合することで、様々なサイズの物体の検出に対応している。 SSDでは、異なるスケールのdefault boxをCNNの複数の層に展開し、各層が特定スケールの物体の推定に集中するように強制する。 RFBNetでは、SSDの後方の層をReceptive Field Block (RFB)に置き換えることで、特徴量の弁別性とロバスト性を向上させている。RFBはInception blockと似たマルチブランチの畳み込みブロックであるが、Inception blockとは異なるカーネルや畳み込み層を組み合わせている。 MSCNNではdeconvolutionをCNNの複数の層に適用することで、候補領域推定などの前に特徴マップの解像度を上げる。

(3) Combination of the above two methods

 (1)の手法では、優れた特徴表現を獲得することができるが、どうしても次元が大きくなるので性能向上には限界がある。(2)の手法では、それぞれの受容野の大きさに合わせて深い層で大きい物体、浅い層で小さい物体を検出するが、単純に浅い層で物体を検出すると意味情報 (semantic information) がまだ十分に抽出できていないため、性能が低下してしまう。そのため、それぞれの良い点を組み合わせるために最近の手法では複数層で物体を検出するとともに、異なる層の特徴量を結合したものを検出に用いる。代表的な手法はSharpMask, Deconvolutional Single Shot Detector (DSSD), Feature Pyramid Network (FPN), Top Down Modulation (TDM), Reverse connection with Objectness prior Network (RON), ZIP, Scale Transfer Detection Network (STDN), RefineDet, StairNet。

f:id:uiiurz1:20190401191602p:plain
(3) Combination of the above two methodsの比較

 (3)の手法はすべて似たような構造をしており、ベーシックなbottom-upのfeedforward networkを、横方向の接続を持つtop-down networkで補完する構造になっている。具体的には、bottom-up passの直後に最終的に得られた高いレベルの意味特徴量がtop-down networkによって送り返されて、横方向の処理を行った後に中間層からのbottom-up特徴量と結合される。結合した特徴量にさらに処理を加えて検出に用いるとともに、またtop-down networkで送り返す。上図の(a2)-(e2)はそれぞれの手法のRFBを示したもので、それぞれのRFBの設計の主な違いは、下層のフィルターの選択と複数層の特徴量の組み合わせ。top-down特徴量とbottom-up特徴量に小さいカーネルサイズの畳み込み (conv1x1) をかけて、要素ごとの和か要素ごとの積、または連結することで結合する。FPNは物体検出やinstance segmentationにおいて著しい改善を示している。これらの手法ではマルチスケールの特徴量を得るために層を追加する必要があり、このコストを無視することはできない。STDNではDenseNetを用いることで異なる層の特徴マップを結合するとともに、異なる解像度の特徴マップを得るためのscale transfer moduleを提案している。scale transfer moduleは少しの追加コストでDenseNetに直接埋め込むことができる。

4.2 Context Modeling

 現実世界では物体は特定の環境に存在し、関連するほかの物体と共に存在することが多く、人間の物体認識においてもこのようなcontextが本質的な役割を果たしているといわれている。物体のサイズが小さい場合や、occlusion (物体の一部が隠れている)、低画質によって物体の外見的特徴が十分ではない場合には特にcontextが重要となる。様々なタイプのcontextが議論されているが、大まかに以下の3つに分類できる。

  1. Semantic context: あるシーンではある物体が見つかるが他のシーンでは見つからない
  2. Spatial context: あるシーンにおいて、ある物体が他の物体と比較していくつかの位置では見つかるが、他の位置では見つからない
  3. Scale context: あるシーンにおいて、他の物体と比較して限られた範囲のサイズで存在する

 現在のSOTAな物体検出手法では明示的にcontext情報を用いることなく物体の検出を行っている。これはDCNNが複数の抽象レベルの階層的な特徴表現を学習するために、context情報を暗黙的に利用していることを示している。それでもなお、DCNNベースの検出器でcontext情報を明示的に探索することには依然として価値がある。以下ではcontext情報を用いている手法をglobal contextを用いているものと、local contextを用いているものとに分けて紹介する。

Global context

 Global contextは画像やシーンレベルのcontextを意味しており、これは物体検出のきっかけとして使える(例えば、寝室というcontextからベッドの存在を予測できる)。DeepIDNetでは、画像分類のscoreをcontext特徴量として使用し、物体検出のscoreと連結することで検出結果を改善している。IONでは空間的なRNNを使って画像全体からcontext情報を探索する。SegDeepMではMRFというモデルを提案している。MRFは各検出について外観とcontextをスコア付けすることで、bounding boxの候補を探索する際にセグメントとスコアが一致するように選択する。 Contextual priming and feedback for Faster RCNNではsemantic segmentationをcontextな事前情報として用いる。

Local context

 Local contextは物体の局所的な周囲との関係を意味する。一般的に物体間の関係性をモデル化するのは難しい問題とされ、異なるクラスや位置、スケールのbounding boxについて意味づけする必要がある。今のような深層学習の全盛期では、物体間の関係を明示的にモデル化する研究は限られたものになっており、代表的なものはSpatial Memory Network (SMN), Object Relation Network, Structure Inference Network (SIN)。[SMNの説明がよくわからない] ORNは近年の自然言語処理におけるattentionモジュールの成功からインスパイアされた手法であり、複数物体の外見的特徴と幾何形状の相互作用から複数物体を同時に処理する。この手法では、追加の教師データは必要なく、また既存のネットワークに組み込みやすい。物体検出のパイプラインにおける物体を認識するステップと、重複を除去するステップ(NMS?)を改善するのに効果的であることが示されており、最初の完全にend-to-endな物体検出器を生み出している。SINでは、シーンが持つcontext情報と一枚の画像内における物体の関係性という二種類のcontext情報を用いる。この手法では、物体をグラフ構造におけるノード、関係性をエッジとして捉えることで、物体検出をグラフ構造の推定問題として定式化している。

 一方で、より多くの手法が問題をよりシンプルに考え、検出ウィンドウのサイズを大きくすることによってlocal contextを抽出するというアプローチをとっている。代表的な手法は、MRCNN, Gated BiDirectinal CNN (GBDNet), Attention to Context CNN (ACCNN), CoupleNet, Sermanetなど。

 MRCNNでは、backboneの最後の畳み込み層における候補領域から抽出される特徴量に加えて、いくつかの異なる候補領域(領域の半分や領域の境界など)からも特徴量を抽出し連結することで、よりリッチかつロバストな物体表現を獲得する。MRCNNが提案されてからMRCNNと密接に関連した多くの手法が提案されている。A multipath network for object detectionでは、foveal structure (中心窩構造)で構築されるたった4つのcontext領域を用いるとともに、分類器をend-to-endで同時に学習する。

f:id:uiiurz1:20190401192309p:plain:w450
MRCNN

 GBDNetではマルチスケールな候補領域の周囲の領域(contextualized regions)から特徴量を抽出することで、検出性能を向上させている。MRCNNのように、各領域のCNN特徴を別々に学習して連結するという単純な方法とは異なり、GBDNetは畳み込みによって実装された異なるcontext領域の特徴間で情報の伝達を行うことができる。注意すべき点として、情報の伝達は常に役立つわけではなく、個々のサンプルに依存しているため、[83]の手法では情報の伝達をコントロールするためにLSTMのようなゲート関数を用いている。

f:id:uiiurz1:20190401192629p:plain
GBDNet

 GBDNetと同時期に提案された手法としてACCNNでは、global contextとlocal contextの両方を利用することで物体検出の性能を向上させる。global contextの抽出のためにMultiscale Local Contextualized (MLC) subnetworkを提案しており、複数層のLSTMを用いて、入力画像内の有益なglobal contextを持つ領域を強調するためのattention mapを再帰的に生成する。

f:id:uiiurz1:20190401193359p:plain
ACCNN

 CoupleNetはコンセプト的にはACCNNと似ているが、RFCNが追加されている。オリジナルのRFCNでは位置依存のRoI Poolingによって物体情報を得るのに加えて、CoupleNetではglobal context情報をRoI Poolingによって符号化するbranchを追加している。

f:id:uiiurz1:20190401193423p:plain
CoupleNet

Detection Proposal Methods

 物体は画像内において任意の位置やスケールで存在する。ハンドクラフト特徴量の全盛期にはスライディングウィンドウが使われていたが、ウィンドウ数は膨大でありとともに画像のピクセル数に比例して増加し、また複数のスケールやアスペクト比についての探索が必要である場合、探索空間は著しく増加する。それゆえに、複雑な分類器を使うことは計算量的にコストが高すぎる。

 2011年あたりに、detection proposalsによって計算コストと検出精度のバランスをとることが提案された。[2]で提案されているobjectness (物体らしさ)の考えに由来すると、候補領域は画像中の物体を含みそうな領域の候補を意味する。detection proposalsは通常、前処理で使われ、検出器で評価する必要のある領域数を制限することで計算コストを減らす。このことから、優れたdetection proposalは以下の特徴を持つべきである。

  1. できるだけ少ない候補数で高いRecallを達成できる
  2. 候補領域と物体との一致の精度をできるだけ高くする
  3. 高い効率性

 selective searchによるdetection proposalsに基づく物体検出の成功は広く関心を集めた。 detection proposalには物体検出以外の用途もあるため、detection proposalのアルゴリズムの包括的なレビューは本論文の範囲外。 候補領域推定とDCNN特徴量の融合が一般物体検出におけるマイルストーンであるRCNNの提案につながった。それ以後は、候補領域推定アルゴリズムは急速に標準的な前処理ステップとなった。 その証拠として、2014年以降の物体検出コンペの勝者の全員が候補領域推定を行っている。 低レベルな特徴量(色、テクスチャ、エッジ、勾配など)を用いる候補領域推定手法の中ではSelective Search, MCG, EdgeBoxesが人気である。物体検出の発展につれて、traditionalな候補領域推定手法は検出器とは独立した外部モジュールであるため、検出パイプラインにおけるボトルネックになった。その中で登場したDCNNを用いた候補領域推定アルゴリズムは、幅広い注目を集めている。 近年のDCNNベースの候補領域推定手法は一般的に、bounding boxベースとobject segmentベースという2つに分類される。

Bounding Box Proposal Methods

 bouding boxベースの手法の最も良い例はFaster RCNNで提案されているRPNである。RPNでは、最後の畳み込み層の特徴マップ全体に小さいネットワークをスライディングさせてかけることで、候補領域の推定を行う。 各ウィンドウでは、k個のそれぞれ特定のスケールとアスペクト比を持つanchor boxを用いて、同時にk個の候補領域を推定する。

f:id:uiiurz1:20190407092824p:plain
RPN

 Faster RCNNでは、畳み込み層をシェアすることでRPNとFast RCNNを一つのネットワークにまとめている。 このような設計によって、Faster RCNNは実用的な検出速度と初めてのend-to-endな検出パイプラインを実現した。 RPNは多くのSOTAな物体検出手法において使われている。

 MultiBoxやRPNのように固定数のanchorを用いる代わりに、a deep network called Adjacency and Zoom Network (AZNet)では、物体が含まれそうな部分領域に着目するために、計算資源を適応的に割り当てるという再帰的な探索戦略を用いてanchorを生成する。最初は画像全体の領域が一つのanchorとしてみなされる。そして、すべてのanchor領域についてscalar zoom indicatorを用いてより小さい領域に分割するかどうか判定し、AZNetによってbounding boxとobjectness scoreを推定する。AZNetはRPNを拡張したもので、scalar zoom indicatorを計算するためのブランチが追加されている。

 さらに進んだ研究として、複数の畳み込み層を用いて候補領域を生成するものがある。Concurrent with RPNは、複数の畳み込み層のカスケード構造を用いて候補領域を生成する手法であり、逆カスケードを用いて最も見込みのある物体位置を選択するとともに、bounding boxをcoarse-to-fineに改善していく。HyperNetでは、RPNの改良版としてHyper Featuresを提案しており、複数の畳み込み層で候補領域の推定を行う。CRAFTでも同様にカスケード戦略を用いており、最初にRPNで候補領域を推定した後に、binary Fast RCNNによって前景と背景の分類を行う。RPNを改善した手法であるZIPでは、低レベル特徴量の空間情報と高レベル特徴量の意味情報を統合するために、ネットワークの様々な深さの畳み込み層の特徴マップを用いて候補領域を推定する。ZIPのbackboneネットワークは畳み込み層とdeconv層を持つFCNみたいな構造。

 最近提案されたDeepboxでは軽量なCNNを用いてEdgeBoxが推定した候補領域を再びランク付けする。また、DeNetではbounding boxのコーナー推定を導入することで効率的に候補領域を推定する。

4.4 Other Special Issues

 ロバストかつ優れた特徴表現を獲得するために、data augmentationが用いられる。検出対象の物体のスケールの範囲が広い場合、特にとても小さい物体の検出は重要な課題であり、画像の解像度は検出精度にかなりの影響を及ぼすことが示されている。そのため、小さい物体が検出される確率を高めるために、data augmentationの手法の中ではスケーリング(特により高い解像度へのスケーリング)が最もよく使われる。近年ではadvancedかつ効果的なdata augmentation手法であるSNIPとSNIPERが提案されており、スケール不変性の問題について取り組んでいる。小さい物体はより小さいスケールでは検出するのが難しく、同様に大きい物体はより大きいスケールでは検出するのが難しいという直感的な理解から、SNIPはサンプル数を減らすことなく学習時のスケールのバリエーションを減らす手法である。SNIPERは効果的なマルチスケール学習のための手法であり、ground-truth物体の周囲のcontext領域を適切なスケールで処理することで、小さい物体の検出精度を高めている。OHEMやRetinaNetでは、前景と背景のクラス数の不均衡性に対処している。A Fast RCNN: Hard positive generation via adversary for object detectionでは、GANによってオクルージョンや変形を持つ難しいサンプルを生成する。また、いくつかの研究ではNMSを改良した手法を提案している。