0.9K Views
May 29, 20
スライド概要
2020/05/29
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Seminar] End-to-End Object Detection with Transformers Hiromi Nakagawa ACES, Inc. https://deeplearning.jp
Overview • 著者:Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko – Facebook AI • Published:arXiv @ 2020/05/26 – (Submitted to ECCV2020?) • 概要 – 物体検出を直接集合予測タスクと見なしてTransformerを導入するDETRを提案 • DETR:DEtection TRansformer – NMS等の複雑な後処理パイプラインなしに従来手法に匹敵する精度/速度を実現 – 物体検出(Object Detection)以外にPanoptic Segmentationのタスクでも同様に精度を確認 – ソースコード:https://github.com/facebookresearch/detr 2
Introduction:従来の物体検出手法とその課題 • さまざまな物体検出のアプローチが存在するが、いずれも物体のbboxとクラスの集合の予測 タスクを直接は解けておらず、以下を回帰・分類する代理タスクを間接的に解いている – Proposals: Faster RCNN, etc – Anchors: Focal Loss, etc – Window centers: CenterNet, etc • これらの手法は、NMS(Non Maximum Suppression)のような、 重複した検出結果を除去する後処理によって精度が大きく影響される • Transformerを用いて最終的な集合を直接予測する End-to-Endなアプローチを提案、パイプラインを単純化し精度を改善 Source | https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c 3
Introduction:従来の物体検出手法とその課題 Source | https://ai.facebook.com/blog/end-to-end-object-detection-with-transformers 4
Proposed Method
参考:Transformer & DETR Transformer 6
DETR 7
DETR ① backboneで(C, H, W)の特徴マップを抽出 1x1Convで(d, H, W)にResize→(d, HW)にReshape 8
DETR ① backboneで(C, H, W)の特徴マップを抽出 1x1Convで(d, H, W)にResize→(d, HW)にReshape ② positional encodingで 要素の空間的な位置情報を埋め込む 9
DETR ① backboneで(C, H, W)の特徴マップを抽出 1x1Convで(d, H, W)にResize→(d, HW)にReshape ③ Encoderで特徴抽出 ② positional encodingで 要素の空間的な位置情報を埋め込む 10
DETR ① backboneで(C, H, W)の特徴マップを抽出 1x1Convで(d, H, W)にResize→(d, HW)にReshape ③ Encoderで特徴抽出 ② positional encodingで ④ DecoderでN個のobject queries (learned positional encoding)とEncoderの 要素の空間的な位置情報を埋め込む 出力から、N個の特徴を出力(並列処理、not自己回帰)。 中間層の出力もAuxiliary Lossとして最適化して学習安定化 11
DETR ① backboneで(C, H, W)の特徴マップを抽出 ⑤ FFN(3層のMLP)でN個独立にクラスとbbox情報を出力 1x1Convで(d, H, W)にResize→(d, HW)にReshape Nは事前に決めるハイパラ、N >> (1画像あたりの物体数) “no object”クラスもあり ③ Encoderで特徴抽出 ② positional encodingで ④ DecoderでN個のobject queries (learned positional encoding)とEncoderの 要素の空間的な位置情報を埋め込む 出力から、N個の特徴を出力(並列処理、not自己回帰)。 中間層の出力もAuxiliary Lossとして最適化して学習安定化 12
DETR ① backboneで(C, H, W)の特徴マップを抽出 ⑤ FFN(3層のMLP)でN個独立にクラスとbbox情報を出力 1x1Convで(d, H, W)にResize→(d, HW)にReshape Nは事前に決めるハイパラ、N >> (1画像あたりの物体数) “no object”クラスもあり ③ Encoderで特徴抽出 ② positional encodingで ④ DecoderでN個のobject queries (learned positional encoding)とEncoderの 要素の空間的な位置情報を埋め込む 出力から、N個の特徴を出力(並列処理、not自己回帰)。 中間層の出力もAuxiliary Lossとして最適化して学習安定化 →Self- / Encoder-Decoder Attentionにより、画像内の全物体についてpair-wiseの関係を考慮& 画像全体のコンテキストを考慮した上でグローバルに推論可能 13
物体検出をどのように直接集合予測のタスクとして解くか? 1. N個の予測/正解についてBipartite Matching: 最小コストとなるN要素の順列σをハンガリアンアルゴリズムで探索、重複のない対応を見つける 正解iと予測σ(i)のpair-wise matching cost y: objectの正解集合 y^:N個の予測集合 2. マッチングした{予測,正解}の全ペアのロスを計算 クラスc_iの予測確率の負の対数尤度 (no objectクラスは0.1倍して不均衡対策) クラスc_iの予測確率 bboxの予測 bbox lossはL1ロスとIoUロスの線形和 (L1のみだと物体のスケールの影響を受けるため) 14
Experiments
実験設定 • Object Detectionの検証 – Dataset:COCO 2017 – Benchmark:Faster RCNN • Faster RCNN*+:オリジナルのFaster RCNNにはない最適化テクニックやロスなどを追加したもの – Backbone:ResNet50 or ResNet101 – Dilated Convolutionにより特徴マップの解像度を大きくしたversionも実験 (小さい物体の検出精度が上がる代わりに、パラメータ数・推論速度が増加する) – スケールやクロップのData Augmentationなども利用 – ベースとなるモデルは300エポックの学習にV100 x 16台 @ 3日間(バッチサイズ = 4 x 16 = 64) • Panoptic Segmentationの検証 – Object Detectionだけでなく、ヘッドを付け加えるだけでSegmentationのタスクにも拡張できることを示す 16
Object Detection:Faster RCNNとの精度比較 • 同程度のサイズのネットワークで、Faster RCNNを上回るAPを達成した • AP_L(大きい物体に対するAP)は高い一方、AP_S(小さい物体に対するAP)は低い – Dilated Convolutionを入れる(DC5)ことで多少改善するが、それでも不十分 – AP_Lの精度が高い理由は、Self-Attentionによってグローバルな情報を考慮しやすいためではないかと考察 (AP_Sの精度が低い理由については名言なし) 17
Object Detection:Ablations • Encoderがなくても動くが、精度は低い • Encoderは増やすほど精度向上 18
Object Detection:Ablations • EncoderのAttentionを可視化 • Encoderの時点で既にある程度インスタンスが分割されている →これによりDecoderによる詳細な位置検出が単純化され、精度改善に寄与していると考えられる 19
Object Detection:Ablations • 複数層あるDecoderの各レイヤーがどのような役割を果たしているか – Auxiliary Lossを導入しているため、途中の層の出力も最適化されており、比較できる • 層を経るごとに、AP/AP50いずれも精度が大きく改善している • また、序盤の層ではNMSの効果があるが、層を経るに連れ効果がなくなる – 最初の単一層だけでは、自身の出力同士の相互関係がわからず、重複した出力を出してしまう →NMSの恩恵が存在する – 二層目以降では、Self-Attentionにより自動で重複を削除可能 – 最終層では、NMSを入れるとむしろ精度が悪化する • 直接集合予測により、 NMSのような後処理なしに重複のない予測を実現 20
Object Detection:Ablations • Encoder同様に、DecoderのAttentionを可視化 • インスタンスを分離していたEncoderと異なり、足や頭などのより局所的な、物体の境界を注視している – Encoderでインスタンスを分離することで、Decoderは境界のみを注視すれば良い用に役割分担できていると推察 21
Object Detection:Ablations • Positional Encodingの種類や有無にもいろいろ • 入れなかったり、各Attention層に都度入れずに最初の入力時だけ入れるような仕様だと、精度が下がる 22
Object Detection:Ablations • ロスは、bboxについてL1ロスのみだと精度が低下 – L1ロス→bboxのスケールによる影響を受けやすく、小さい物体のロスが軽視されやすい • スケール不変なGeneralized IoUロスを入れると、精度が改善 – 小さい物体に対するAP_Sが特に改善する 23
Object Detection:Analysis • DecoderのN個の各スロットが、どのようなbboxを出力しているかを分析 – N=100のうち、20個を可視化 – 位置:画像全体に対する、 bboxの中心の相対的なxy座標 – 色:緑=小さいbbox、赤=大きい横長のbbox、青=大きい縦長のbbox • スロットごとに、異なるエリア、異なるサイズの頻度分布を有する • どのスロットも赤=大きい横長のbboxの出力が多いのは、COCOのデータ分布を反映していると考えられる 24
Object Detection:Analysis • 未知のインスタンス数(Out of distribution)への対応 – 学習データに含まれない数のインスタンスが写っていても、正しく検知できるか? • 学習データでは最大13匹しか写っていないキリンが24枚写っていても、正しく検知できた(左図) – クラス特化の特徴を学習していないことを確認 • ただし、1画像内のインスタンス数が増えると精度が大きく低下することも確認している(右図) 25
Panoptic Segmentation • DETRの性能をPanoptic Segmentationのタスクでも検証 • Faster RCNN→Mask RCNNのように、DETRもヘッドをいじることで同タスクに拡張可能 26
Panoptic Segmentation • PanopticFPN等のベースラインよりも高精度を達成 • 特にThings(ex. car, person)よりもStuffs(ex: sky, road)の精度に優位性 – よりグローバルな情報が重要になるからだと考えられる 27
Panoptic Segmentation • 定性的結果 28
Conclusion
まとめ • 物体検出を直接集合予測タスクと見なしてTransformerを導入するDETRを提案 – Self- / Encoder-Decoder Attentionにより、画像内の全物体についてpair-wiseの関係を考慮 &画像全体のコンテキストを考慮した上でグローバルに推論可能 • NMS等の複雑な後処理パイプラインなしに従来手法に匹敵する精度/速度を実現 – Encoderはインスタンスレベルの分離を、Decoderは物体の境界を注視していることを確認 – Decoderを積み重ねてSelf-Attentionを効かせることで、重複を自動で除去できるようになっている • 物体検出(Object Detection)以外にPanoptic Segmentationのタスクでも効果を確認 • 初期的な検証のため課題も存在するが、物体検出の新たなアプローチを切り開いた – グローバルな情報を集約できることから、大きい物体には強いが、小さい物体ではベースラインに劣る 30
感想 • Transformerというと自然言語のイメージが強いが、物体検出のタスクを直接集合予測のタスクとして 定式化して、既存の重複予測等の課題を解決したのは鮮やか • 小物体の精度などは、局所的な注意やマルチスケールなど、既存の技術を拡張して普通に克服されそう • 一方、クラス数が増えても精度を保てるか、学習効率への影響などは気になる(例:Bipartite matching) • Proposal、Anchor、Center-based等に続く 新たなトレンドとなるか – 先日出たYOLOv4の図で言うと左上らへんにあたる (同じV100なので比較可能と推察) – Transformerが深いせいか、 現状速度的な優位性はあまりなさそう。今後に期待 Source | YOLOv4: Optimal Speed and Accuracy of Object Detection 31