讀一下End-to-End Object Detection with Transformers

目標檢測旨在爲感興趣目標預測bounding boxes以及類別(category).
現代檢測器多通過在數據龐大的proposals,anchors,window centers等集合上面,設計可替代的迴歸和分類模塊,以後處理方式去處理該預測問題。這種方式的算法性能嚴重依賴於前述後處理操作。

本文將目標檢測問題視爲一個直接的集合預測問題。爲什麼能做到這個呢?主要在於引入了基於transformer的encoder-decoder處理模塊--一個很流行的序列預測框架。

transformer的自注意力機制,可明確對序列中成對元素之間的關係進行建模,這就決定了這一類框架對於一些特定要求的集合預測問題諸如移除重複預測任務具有得天獨厚的優勢和適用性。

DETR一次性對所有目標進行預測,端到端,一套損失函數,在預測結果和Ground Truth之間進行雙向匹配。

DETR簡化了目標檢測pipeline,丟棄了多個人工設計部件,比如spatial anchors,non-maximal supression.
DETR的主要特徵通過並行解碼(non-autoregressive)將雙向匹配損失(bipartite matching loss)與transformer關聯起來。
該雙向匹配函數爲每一個預測結果唯一地分配一個ground truth,且具有排列不變性,因此可並行操作。
DETR基於下面這些先驗工作:
bipartite matching loss for set detection.
encoder-decoder architectures based on the transformer.
parallel decoding.
object detection methods.

3 The DETR model
對於檢測任務中的直接集合預測(direct set prediction),有兩個必要因素:
(1) 需要一個集合預測損失(set prediction loss)去迫使算法對預測結果和GT boxes做一個唯一的匹配操作;
(2) 一個可以一次性(in a single pass)預測一系列目標並對它們之間的關係進行建模的預測框架。
3.1 Object detection set prediction loss
訓練中的一個主要困難在於:參照GT給預測目標(class, position, size)打分。
本文損失在預測結果和GT之間產生一個最佳雙向匹配結果,然後優化特定目標(bounding box)的損失。
最優匹配通過匈牙利匹配算法高效計算得到。
匹配損失同時將類別預測結果和預測結果與GT的相似度考慮在內。

3.2 DETR architecture
DETR的整體架構異常簡單,包括3個主要部分:一個CNN backbone,用於首先提取一個緊實的特徵表示;一個解碼器-編碼器結構的transformer;一個簡單的前饋神經網絡(feed forward network, FFN)用於最終的檢測結果預測。
描述下DETR框架流程,Fig.2:
輸入圖片,使用一個CNN backbone學習2D特徵表示;
將特徵展平,並加入位置編碼信息作爲補充信息;
然後transformer解碼器將位置編碼作爲其一個輸入,稱之爲object queries,並將其加入encoder的輸出之中;
然後將decoders的每一個output embedding送入一個共享的前饋神經網絡,它會去預測檢測結果(class and bounding box) 或者預測一個 “no object” class。

===>Backbone
a conventional CNN backbone generate a lower-resolution activation map.

===>Transformer encoder
首先一個1*1卷積給第一步得到的高維特徵圖降維,得到一個新的特徵圖,暫稱之爲z;
encoder期望一個序列作爲其輸入,然後我們可以將z的空間維度降爲一維,得到一個d*HW的特徵圖;
each encoder layer都包含一個標準結構(前面描述過), 一個多頭自注意力模塊,以及一個前饋神經網絡(FFN)。
由於transformer結果is permutation-invariant,so作者加入了fixed position encodings作爲supplement,這個位置編碼信息,訓練時被加入每一注意力層的輸入之中。

===>Transformer decoder
作者依然使用標準的decoder結構,不同之處在於作者在使用的時候,在每一個解碼層並行對N個目標進行解碼,而"Attention is all you need"的作者使用一個自迴歸模型一次預測一個元素的輸出序列(use an autoregressive model that predicts the output sequence one element at a time);
still permutation-invariant,同樣需要一個位置編碼,在訓練時候作爲每一層自注意力層的一個輸入,也即object queries,which is similarly to the encoder. N個object queries經過解碼器之後被轉化爲一個output embedding,然後這些embedding通過前饋神經網絡FFN被獨立解碼爲box coordinates和class labels,至此可得N個predictions。
使用一個自編碼-解碼的注意力機制,處理前述提及的embeddings,模型可以使用它們之間的成對關係將所有目標聚集在一起,以此可以將整張圖片作爲上下文信息來利用。

===>Prediction feed-forward networks(FFNS)
最終預測階段:一個包含RuLU激活函數,d個隱藏層,和一個線性映射層的3層感知機。
FFN預測歸一化的中心座標,高,寬 w.r.t the predicted box of the input image, 另,線性層使用softmax function預測box的class label,細節補充:還有一個附加類別作爲"no object"/"background" class。

===>Auxiliary decoding losses
作者還使用了輔助Loss幫助網絡訓練。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章