はじめに
YOLOv3に押されていたと思ったSSD系統の物体検出ですが、AAAI'19にM2Detが採用されました!
M2Detはまだ実装が公開されてませんが、SOTA(最高パフォーマンス)のようです。
ここでM2Detをスムーズに読むために、SSD系統のRefineDetを読みました。
ここで簡単にまとめを共有します。
概要
SSD系統の手法の一つ。SSDの速度と正確性を向上させたもの。
一般的に物体検出は1stage系統(SSD)が速度に優れ、2stage系統(R-CNN)が精度が高い。
両アプローチのメリットを引き継ぎ、デメリットを少なくしたため、
今回のRefineDetは1stage系統の速度を維持し、2stage系統より制度が高い。
ネットワーク構成
ARM(上段)で物体の有無だけを予測して、ODM(下段)ではどのクラスに属するか詳細に予測する。
ARMで空と判断したバウンディングボックスは閾値で弾き、ODMには物体があると判定したものだけを送る。
これでODMは物体があると判断された領域のみの分類に専念させるので動作が早くなる。
Anchor Rifinement Module(ARM) 【上段】
ここで1stage系統と同じことをざっくりとおこなう。
anchor boxの位置とサイズに対しての最適な初期化と、物体があるかないかの2クラス分類を行い、
分類タスクを行う領域を減らすためにnegative anchorを減らす。
Transfer Connecting Block(TCB)【中段】
ARM【上段】で抽出した情報をODM【下段】に受け渡すための層
深い層の特徴を浅い層の特徴に組み込む。これによって小さい物体に対しての認識精度が良くなる。
←の部分で右から特徴量を展開して足しています。
Object Detection Module(ODM)【下段】
ARMからの出力Refinement Anchorを入力として利用する。
anchor boxの最終調整と分類タスクを行う。
SSDで用いられるHard Negative Miningもここで使用される。
損失関数
