摘要:本文介紹兩種端到端訓練通用目標檢測算法--DETR和DeFCN。
通用目標檢測作為計算機視覺中一個基礎的任務,對着圖像理解、信息提取有着極為重要的意義。對於該任務目前已經發展出了許多方法,如基於全卷積的單階段方法DenseBox,YOLO,SSD, RetinaNet和CenterNet等,以及更加復雜的多階段方法RCNN, Fast RCNN, Faster RCNN和 Cascade RCNN等。根據目標檢測任務的定義,這些方法需要對圖像中出現的目標物體進行定位和分類,為了確保目標的召回率,結合卷積神經網絡的采用的滑動窗口預測的特性,上述的方法均使用卷積進行密集的候選區提取和目標預測,因此對於輸入的每個目標,往往有多個網絡預測值相對應。
這些方法通常使用非極大值抑制方法(NMS)對重復的預測結果進行過濾,從而得到最終預測結果。不同於卷積操作,NMS過程不可導,模型無法對去重的過程進行優化,最終的檢測檢測模型也由於該操作的存在不能做到完全端到端。
通用目標檢測近期的一些進展中,一些方法實現了端到端訓練,訓練和推理均無需NMS操作。如基於Transformer的DETR[1]和全卷積DeFCN[2], 兩種方法采用了較為不同的實現路線,分別具有不同的優勢和潛力,下面對這兩種方法進行介紹。
DETR
Transformer在自然語言處理任務中取得了巨大的成功,DETR首次將Transformer應用到目標檢測任務之中,實現了端到端目標檢測,並在COCO目標檢測任務上取得了和高度優化的Faster RCNN相當的精度。DETR對目標、全局信息之間的關系進行推理,無需NMS直接並行的輸出預測目標集。
如圖1 所示,DETR將CNN和Transformer組合的結構,直接並行預測目標集。可見,該方法將檢測問題看做是一個集合預測問題。相對於之前基於集合預測的方法,DETR不同之處在於:使用了二分匹配損失函數;並行的Transformer解碼結構。這些特性使DETR的預測結果具有排列不變性,可以做到並行預測,提高了模型效率。
圖1. DETR 檢測流程
圖像在CNN提取到二維特征后,由於Transformer只能處理一維序列,所以需要將二維特征進行鋪平,得到一維特征。直接輸入到Transformer會使特征失去空間編碼信息,因此該方法給該特征添加了一個位置嵌入,以保留特征空間信息。注意到展平的特征輸入到Transformer中將消耗較大的計算量,該方法沒有采用FPN結構,只使用高層低分辨特征。
如表1所示,該方法相對於Faster RCNN相當的結果,由於預測過程使用了全局信息,該方法在大目標上擁有較好的效果。同時由於沒有采用FPN結構,該方法在小目標上結果相對較差。
表1. DETR在COCO 上的實驗結果
該方法無需NMS操作,但加上NMS會對結果有一定的影響。如圖2 所示,加上NMS后AP值稍有上升,同時隨着模型復雜度的提升,提升逐漸變小,這表明在該方法在一定條件下基本沒有重復預測,也無需NMS操作。
圖2. NMS對結果的影響
DETR突破了之前的檢測范式,使用集合預測,然而方法優化速度較慢,並且由於計算量的限制,難以使用高分率特征,對小目標檢測效果不佳。后續一些方法如DeformDet進行了一些針對這些問題做了一些改進,實現了效果的提升。
DeFCN
不同於DETR使用了Transformer,DeFCN則基於全卷積實現了端到端檢測。DeFCN基於FOCS實現,同樣使用密集預測但卻做到了無需NMS操作。在先前的方法中,訓練和預測階段均采用一對多的策略,即每一個目標對應網絡輸出的多個預測值,這導致測試階段必須使用NMS進行去重。該方法對這個對應策略進行了探討,提出使用一對一的樣本匹配方式,並通過額外的設計使得最終模型在實現一對一預測的同時保持相當的性能。由於無需NMS, DeFCN在密集數據集上能突破NMS的理論上限,充分體現了該方法的優勢。
圖 3. DeFCN的結構圖
使用一對一的分配策略最簡單的是直接使用目標中心或者錨框作為每個目標唯一的正樣本,然而這種方式相對於之前的一對多的設計如FOCS會有較大的性能損失。該方法從損失函數和特征兩個方面來解決一對一分配帶來的性能下降。總體結構如圖3所示。
對於損失函數,一個要考慮的問題是正樣本如何進行定義。由於目標外形的變化,選擇目標包圍框的中心並不是一個非常好的選擇,特別每個目標定義的正樣本只有一個,網絡優化更容易受到分配策略的影響。受集合損失函數的啟發,該方法將樣本匹配也看做一個二分圖匹配的問題,對集合損失進行一定優化,根據網絡輸出結果進行正負樣本分配。具體的分配策略主要考慮三個方面:正樣本分布的位置先驗;分類分支的得分;回歸的包圍盒與GT的IOU。最終正樣本選取三者乘積得分的最高者。如公式2所示:
使用了一對一的樣本分配策略后,模型的性能仍然難以達到先前一對多的方法,因此該方法在訓練階段額外添加了一個輔助損失,不影響推理。該損失的樣本分配使用傳統的一對多,如表2所示,加上該損失后結果有明顯提升。
從網絡設計方面考慮,該方法基於全卷積網絡,而卷積操作是一個線性操作,一對一的策略需要網絡輸出比較銳利,對於卷積來說具有一定的困難,因此該方法對特征使用了最大池化濾波,並且對FPN的多個尺度的信息進行了融合。如表2所示,添加了該模塊(3DMF)后有明顯提升。
表 2. 不同模塊對最終結果的影響(COCO)
圖 4. DeDCN響應可視化
如圖4所示,在網絡輸出的目標概率圖中,FCOS對於每個目標都有多個響應,需要進行NMS去重(如4(a)),而DeFCN隨着各模塊的添加較好的做到了每個目標對應一個響應(如4(d)所示)。
表 3. CrowdHuman性能分析
該方法在密集數據上擁有較強的優勢,並且能超過NMS的理論上限,對於密集目標不容易出現誤過濾。
總的來講,上述兩個端到端檢測方法遵循着不同的路線,但是都能做到移除NMS,做到了網絡輸入到預測結果之間的完全端到端,兩者都展現較好的潛力。DETR引入Transformer,在目標關系建模、全局信息理解上有挖掘的潛力。DeFCN憑借簡單的設計,容易部署,在密集場景上有較好的應用價值。
參考文獻
- Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[J]. arXiv preprint arXiv:2005.12872, 2020.
- Wang J, Song L, Li Z, et al. End-to-end object detection with fully convolutional network[J]. arXiv preprint arXiv:2012.03544, 2020.
本文分享自華為雲社區《技術綜述八:端到端通用目標檢測方法介紹》,原文作者:我想靜靜。