2. Copyright(C) ALBERT Inc. All Rights Reserved. 1
概要
• 従来: Anchor→Region Proposal Network→Detector (2-stage 系)
Anchor→ → → → → → → → → → → Detector (1-stage 系)
• コレ: Anchor→Region Proposal Network→Detector→Detector→Detector
高い IoU (Intersection over Union = boxp ∩ boxt / boxp ∪ boxt ) を実現!
そもそも detector って?(Fast R-CNN 以降を前提)
• 粗いボックス予測とボックスがある位置にだいたい対応する特徴量マップを受
け取って、より正確なボックス予測とクラス予測を行う
• N 種類のオブジェクトがある場合、背景含めて N+1 クラスの予測となる
• 位置が少しでもずれてたら背景だ、とやってるとロクに学習できないため、位
置ズレに甘くする(IoU=0.5)ことが多く、高精度な位置検出はつらい
3. Copyright(C) ALBERT Inc. All Rights Reserved. 2
出力例(non maximum suppression なし)
• 最初の detector は
IoU=0.5 以上ならブツ
があると学習する
• 次の detector には
IoU=0.6 以上を要求
• 最後の detector は
IoU=0.7 よ
• ピッタシ囲えてない
ボックスさんが消される
論文 Figure 1 を引用
4. Copyright(C) ALBERT Inc. All Rights Reserved. 3
複数の detector を使う理由
• 一つの detector があらゆる IoU に対して最高性能を出すことはない
• 低い IoU でも合格にしていると、高い IoU での位置予測はできない
• 高い IoU のみ合格にしていると、低い IoU で取りあえず検出、が困難
• 位置予測精度が高い detector は、ボックス位置の事前情報にも高精度を要求
• ハズレの割合が極端に多いとクラス分類器がまともにに学習しない
• Focal loss を使ったり、YOLO 系のように物体があるかどうかの 2 クラ
ス分類と N クラス分類を分離したりで、ある程度の対処はできるが
→ IoU の閾値が異なる複数の detector を用意し、閾値が低い detector が
出すボックスを次の detector に投入(IoU が上がっていく様子はFig. 4 参照)
5. Copyright(C) ALBERT Inc. All Rights Reserved. 4
アーキテクチャ
conv
絵
pool
box1cls1
head1box0cls0
head0 pool
box2cls2
head2
pool
box3cls3
head3
RPN
Faster R-CNN Cascade Part
論文 Figure 3 より作成
ヘッドを増やすだけで楽チン ★
6. Copyright(C) ALBERT Inc. All Rights Reserved. 5
ネットワーク構成
Feature Pyramid Network 解説の神画像があり、わたしの言うことがなかった
https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-
object-detection-fpn-45b227b9106c
conv
head0
head1
ResNet の右側にあるのは全部 256 channels
7x7 マップを適当な解像度の P 層から切出す
(この論文ではROI Align が利用されている)
1024 フィルタの FC→ReLU
過度に凝らないシンプルな構成