&論文概述
獲取地址:https://arxiv.org/abs/1711.11575
代碼鏈接:https://github.com/msracver/Relation-Networks-for-Object-Detection
&總結與個人觀點
消融實驗表明relation module能夠學習在單獨目標檢測中丟失的目標間的關系。但是,relation module到底學到了什么並不明確,尤其是當多個堆疊在一起的時候。
在上圖中展示了一些有較高關聯權重的代表性例子,左邊例子表明一些在相同ground truth上重疊的anchor對中心目標有貢獻;右邊例子表明人對手套有貢獻。但這只是一些直覺,對relation module如何工作的理解還處於初級階段。
本文首次將目標間的關系結合在目標檢測模型中,雖然relation module的可解釋性沒有介紹清楚,但給目標檢測方向引出了新的思路。
&貢獻
- 提出輕量級及原位計算的relation module,通過一系列目標的特征以及幾何形狀,同時處理多個目標,以對他們之間的關系進行建模,能夠嵌入到其他模型中。
- 使用duplicate removal step替換NMS,是第一個完全端到端的目標檢測器。
&擬解決的問題
問題:先前的目標檢測器獨立識別目標實例,沒有探索目標間的關系。
分析:目標檢的關系很難建模。目標在圖片中可能處於任意的位置,有着不同的尺度、不同的類別,且在不同的圖片中數量差距也很大。
本文提出的方法受自然語言處理領域中attention module的成功啟發:attention module能夠通過聚合一系列元素(elements)的信息來影響獨立的元素,如一句話中所有的單詞與機器翻譯的目標句子中的一個詞。聚合權重通過任務目標自動學習。Attention module能夠對元素間的依賴進行建模,不需要在他們的位置以及特征分布上有着較大的開銷。
本文方法基於基礎的自適應attention module,使用object替換原始的word,相比於1D的句子,目標有着2D的空間以及scale/aspect ratio的變化。因此將原先的attention weight擴展為兩個部分:原始的weight以及新的geometric weight。后者對目標間的空間關系進行建模,同時只考慮他們之間的相對幾何形狀,使得模型具有平移不變性。
&框架及主要方法
1、 Main Structure
在實例識別過程中,relation module結合所有目標的推斷(reasoning),提高識別的准確度。在冗余去除階段,使用輕量級relation network取代以及改進傳統的NMS,使得整體成為完全端到端的目標檢測器。
2、 Object Relation Module
- Scaled Dot-Product Attention,放縮點積注意力,輸入包含dk維度的查詢(queries)及鍵(keys)以及dv維度的值(values)。在query以及所有的keys間的點積可獲得其相似性,使用softmax函數來得到每個值(values)上的權重。
其中q為query,K為所有的keys,V是values。
定義目標是由其幾何特征fG與外觀特征fA組成,其中fG表示4d的bbox,fA負責task。給定N個目標,第n目標與全體目標幾何的相關特征fR(n)計算如下:
輸出是通過WV對其他目標外觀特征線性轉換的加權和,同時WV是由上述(1)計算而來。相關權重wmn表示來自於其他目標的影響。外觀權重通過點積計算,與(1)相似:
其中WK和WQ都是矩陣,與(1)中的K和q的作用相似。他們將原始的特征與分解為子空間來衡量其匹配程度,在分解后的特征維度為dk。
幾何權重的計算如下:
首先,兩個目標的幾何特征被嵌入到高維表征,為使其具有平移不變性以及尺度轉化,使用4d的相關幾何特征:,在嵌入后的特征維度為dg。其次,使用WG將嵌入特征轉換到標量權重,並通過ReLU非線性方法去除0。這個0去除方法只約束有着確切幾何關系目標間的關系。
一個object relation module聚合了Nr個相關特征以及通過相加增強輸入的外觀特征:
為匹配通道維度,每個的輸出通道被設置為輸入特征的。
3、 Relation for Instance Recognition
一般使用兩層維度為1024的fc處理第n個候選區域的RoI池化特征,然后通過線性層進行分類於回歸;而目標relation module也可以轉換為所有候選區域的1024d特征,不需要改變特征的維度。
其中r1和r2分別表示relation module重復的次數。Relation module需要所有的候選區域的bbox作為輸入。
4、 Relation for Duplicate Removal
NMS的簡單、貪婪的天性以及成熟的選擇參數使其明顯是一個次優的選擇。相比來說,duplicate removal簡單且高效。
duplicate removal是二分類問題,對於每個ground truth,只有一個匹配到的目標為corrct,其他匹配到該目標的被分類為duplicate。可以通過上圖中的網絡進行分類,輸入是檢測目標的集合,每個目標有1024d的特征,分類得分s0,以及bbox。網絡輸出每個目標二分類的可能性。
網絡共有3個步驟:1) 1024d特征於分類得分被融合以生成外觀特征,2) 使用relation module將所有目標的外觀特征進行轉換,3) 通過線性分類器以及sigmoid函數,將每個目標被轉換的特征得到可能性。
5、 Experiment
1) 消融實驗:relation module的幾何特征的使用、采用的相關特征的數量以及每次使用的模型的次數的實驗對比。
首先,是使用幾何特征的模型對比,none表示不使用幾何特征,設置,unary表示將fG嵌入到高維空間中,加入到fA中形成新的外觀特征,attention的權重設置與none相同。實驗表明,使用加權的幾何特征的效果更好。
在使用的相關特征數量方面,在Nr為16時達到最好的性能,在每個部分使用relation module的次數上,隨着層數的增加,精度在不斷提高。
2) 比較:相同復雜度下各種head的性能比較,結果表明,使用relation module為head的模型性能最佳。
3) 消融實驗:使用不同的后處理,rank fR表示將得分按從高到低的順序轉化為排行,標量的排行接着被嵌入到更高維的128d特征,使用與幾何特征嵌入相似的方法。Rank特征與原始的1024d外觀特征都被轉換到128d,然后作為輸入添加到relation module中。
4) 比較:與各種NMS方法的比較。最后一種e2e表示使用end-to-end方法進行訓練。結果表明使用end-to-end的效果最好。
原因分析:end-to-end是否有用主要存在兩個問題。
- 在實體識別以及冗余移除步驟中的目標存在沖突。前者是希望所有的目標能夠匹配相同的ground truth以獲得高得分,后者只希望其中一個如此。可能通過最終得分s0s1增加的行為消除了沖突,且使兩者的目標互補。實體識別只需要為good detections產生高的分s0,冗余去除只需要為冗余產生低得分s1。大部分非目標或冗余的檢測只要兩個得分中有一個是correct,那么它就是correct。
- 冗余去除過程中的二分類ground truth標簽依賴於實體識別步驟的輸出,同時end-to-end訓練過程中改變。在實驗過程中卻並未觀察到由其不穩定性的反向影響,猜測是因為冗余移除網絡相對來說容易訓練,穩定的標簽可能作為其中正則化的均值。
5) 比較:不同的backbone的改進效果對比。在每個backbone中比較3個策略的性能對比。結果表明,2fc+RM head+e2e過程在不增加較多計算量的同時能夠提升較大的精度。
&思考與啟發
先前的方法的后處理都是預先定義的,不能正常適應數據的變化,最終的結果顯然並不是最優的,本文提出的relation module也應用於后處理中,使得整個網絡能夠end-to-end地進行訓練。但是,本文提到的duplicate removal方法似乎需要將模型先前訓練好,之后可以嘗試將后處理過程也應用網絡結構進行訓練,但是要設計與整體匹配的loss,也許可以增強整體的性能。