偵測 Transformer(DETR)
DETR——DEtection TRansformer(Carion 等人,2020)——把物件偵測重新框定為直接的集合預測:模型一次輸出一個固定大小的預測集合,並被訓練成讓那整個集合作為一體去匹配真實物件。這是與此前一切的乾淨切割。沒有錨框、沒有區域提議,最關鍵的是沒有非極大值抑制——整套手工打造的候選生成與重複移除管線,被一個端對端學習的模型取代。
其架構把 CNN 骨幹與一個 transformer 編碼器—解碼器結合。骨幹萃取特徵;編碼器以自注意力讓每個特徵位置都能關注其他所有位置,提供全域脈絡。解碼器接收一個固定且不大的數量(例如 100 個)的學習得來的「物件查詢」(object queries)——每個查詢都是一個學會去尋找一個物件的槽位——並透過對編碼後影像的交叉注意力,把每個查詢轉換成一個(類別、框)預測或一個「無物件」(∅)輸出。N 取得比一張影像中曾預期的最多物件數還大。
訓練引擎是二分匹配。由於輸出是一個無序集合,DETR 先在其 N 個預測與真實物件(以 ∅ 補齊)之間找出唯一最佳的一對一指派,用匈牙利演算法來最小化一個結合類別機率與框(L1 + GIoU)誤差的匹配成本。接著它只針對那個最佳指派反向傳播損失。這個一對一匹配,正是消除重複的關鍵:既然每個物件只匹配到單一個預測,模型就會因為對一個物件輸出兩個框而受罰,於是學會不這麼做——不需要 NMS。
原始 DETR 優雅但有缺點:收斂極慢(500 個 epoch)、小物件準確度弱,因為在高解析度特徵上做全域注意力很昂貴,查詢也要很久才能特化。後續工作修正了這些:Deformable DETR 只關注少數取樣點(更快、多尺度、對小物件更好);DINO 與 DN-DETR 加入去噪與更好的查詢設計以達到最先進。DETR 的持久影響是概念性的——它證明了偵測可以是一個完全端對端、免 NMS、基於注意力的集合預測問題,並播下了如今橫跨分割、追蹤與開放詞彙偵測的、基於查詢的範式種子。
「免 NMS」的主張完全繫於訓練時的一對一匹配。若你為了更快收斂而把 DETR 改成一對多指派(某些混合方法會這麼做),重複框可能重新出現、你又會需要 NMS——這個性質是匹配的結果,而非 transformer 本身的結果。