Paperlink:Relation Networks for Object Detection Codelink: github.com/msracver/Rel

  • Abstract

長久以來,我們都認為如果模型能夠學到不同目標之間的關係,會對目標檢測有很大的提升,但是目前還沒有確切的證據表明在深度學習領域這種方法行得通,當今所有的主流高效檢測系統都是依賴於目標實例之間獨立進行識別檢測而不是試圖在學習的時候嘗試利用它們之間的關係。本篇論文提出了一個「object relation」模型,同時處理一組目標,通過它們外觀和形狀之間的交互,對它們的關係進行建模。該模型並不需要額外的監督,很容易嵌入到當前的網路模型中,實現端到端的訓練(自己翻譯的,太不專業)如下圖所示,藍色框為圈出的object,橙色框和數值代表對該次檢測有幫助的關聯信息。

  • Introduction

當前SOTA的檢測方法還是注重於基於區域的檢測,找到region proposal後,利用classification和bounding box回歸,在每一個推薦區域獨立的進行操作,隨後用一些啟發式的演算法,NMS等方法,去掉冗餘的框。關注不同object之間的關係對detection大有裨益,但是在深度網路領域,還沒有很好的辦法進行內容之間的融合來對目標檢測提供更多的支持,大多數方法還是聚焦在獨立的處理每一個objects。一個很重要的原因是因為這種object-object的關係很難進行建模,objects在圖像中的位置不定,尺度不定,數目不定,類別不定,這些都是針對object-object建模的難點,目前的CNN系列網路尚不清楚如何在現存的方法中適應上述特點。本文提出的方法受NLP領域的注意力機制(Attention)的啟發,在機器翻譯中,注意力模型可以通過信息聚合對目標語句中的單獨詞語起作用,聚合的權重是受任務目標驅動,由網路自己學到的。注意力模型可以獨立的對元素之間的關係進行建模而不需要對它們的位置和特徵信息做過多的假設。近來,注意力模型已經成功的應用在視覺領域。本篇論文首次提出了適用於目標檢測的注意力模型,該模型建立在基礎在注意力模型之上,一個很明顯的區別是初始的元素是objects而不是words,objects有二維空間的布局和長寬比例的變化。objects的位置信息和幾何特徵信息會有更加重要和複雜的作用。新的模型在原有注意力模型上將原先的注意力參數拓展為兩部分:原始權重和新的幾何權重,後者對對象之間的空間關係進行建模,只考慮對象之間的相對幾何關係,使得模塊平移不變,是一個理想的對象識別屬性。新的幾何權重在我們的實驗中被證明是重要的。我們稱該模型為「object relation module」,該模型的本質是表明,一組objects是可以同時處理,推理和影響的,而不是單獨進行。此外該模型可以融合到不同的目標檢測網路中去,具有很好的適應性。它具有和注意力模型相同的特點,它需要可變數量的輸入,並行運行(而不是順序建模),是完全可微分還是in-place的(輸入輸出之間沒有維度的變化)

  • Attention

本文的模型受到NLP領域Attention機制的啟發影響,所以我們有必要先來了解NLP中的注意力模型

Attention的本質是一系列注意力分配參數,也就是一系列權重參數的分配 以機器翻譯為例,當給出中文「我愛你」的時候,我們期望機器給我們反饋出「I Love you"的結果,利用深度學習中的encoder-decoder模型,」我愛你「首先會被編碼成C,然後經過非線性函數f,經過decoder得到目標target中的每一個單詞。 這樣的過程被稱為一個分心模型,這是因為score中的每一個元素對語義編碼C的作用是相同的,也就是說每一個元素的重要程度是一樣的,可在實際的語境中,「我」這個單字對目標翻譯中的「I"影響是最大的,其他元素的影響可以說微乎其微。但在分心模型中,這樣的重要程度沒有體現出來,注意力模型就是要從序列中學習到每一個元素的重要程度,然後按照重要程度將元素合併。這就表明序列元素在編碼時,所對應的語義編碼C是不一樣的,如下圖所示,第一圖為常規的NLP運行機制,下圖為attention的運行機制:

======================================================================================================================

再舉一個新例子:《貓和老鼠》中的經典片段 我們要翻譯「Tom chase Jerry」,期望得到的翻譯結果是「湯姆追逐傑瑞"(圖不配文=~=)

在普通的分心模型中,由於我們沒有類似的注意力機制,在我們翻譯「傑瑞"這個詞的過程中,每個元素的貢獻或者說重要程度都是一樣的,但顯然不太合理,明顯的,」jerry「對於翻譯成」傑瑞「是重要程度最大的,如果引入Attention Module,應該在翻譯」傑瑞「時,體現出英文單詞對於當前中文翻譯的不同重要/影響程度,比如給出類似下面這樣的一個概率分布值: (Tom,0.3)(Chase,0.2)(Jerry,0.5) 其中每個英文單詞的概率表示翻譯當前單詞「傑瑞」時,注意力模型需要分配給不同英文單詞的注意力大小,這對於準確的翻譯是有很大的幫助的,因為這樣我們引入了新的信息。同理,目標句子中的每個單詞都應該學會其對應源句子中單詞的注意力分配概率信息,這也就意味著在生成每個單詞Yi時,原先分心模型中相同的中間語義C會被替換成根據當前單詞不斷變化的Ci,每個Ci可能對應不同源句子中得注意力分配的概率分布,比如對於「Tom chase jerry」來說,概率分布可能是這樣的:

其中F2函數代表Encoder對輸入英文單詞的某種變換函數;g表示構成元素加權求和

那麼每個單詞對應的概率分布值是怎麼得到的呢?如下圖所示,對Encoder-Decoder模型進行細化,假定兩者均採用RNN模型,

下圖說明了注意力模型概率分配的通用計算過程

其中,我們要計算Yi的注意力概況分布,可以用i時刻隱節點狀態Hi去和每個對應單詞對應的隱節點狀態hj進行對比,即通過函數F(hj,Hi)來獲得目標單詞和每個輸入源單詞對齊的可能性,這個F函數有不同的做法進行匹配,然後經過softmax歸一化後得到概率分布。

既然attention是一組注意力分配係數的,那麼是怎麼實現的呢?這裡提出一個attention函數,它是用來得到attention value的,主流attention框架如下圖所示,顯示出attention的本質就是一個query查詢到一系列鍵值(key-value)的映射

  • 這其實也是attention的本質,如下圖所示:

  • 總結attention函數的工作機制:

attention函數共有三步完成得到attention value。

  1. - Q與K進行相似度計算得到權值
  2. - 對上部權值歸一化
  3. - 用歸一化的權值與V加權求和

  • Framework

當前準確度最高的目標檢測器基本是四步走,如下圖所示,本文提出的關係模型可以很方面的融合進instance recognition和duplicate removal兩部分中,提升表現,實現端到端的訓練

    • Object Relation Module

如下圖所示,這個模型的特點就是聯合所有的object的信息來提升每個object recognition的準確性

注意:

右圖是一個relation的內部結構,可以看到:

其中,分母為歸一化操作,可以不用看,著重看分子,主要由兩者決定,即第m個物體相對於當前第n個物體在geometry上的權重和在appearance上的權重,它們各自的求法如下:

這裡的Wk,WQ,WG都是需要進行學習的,都起到變化維數的效果,dot是點乘操作,dk是點乘後的維數,

總結一下這個模塊的方法:

    • 分別根據兩個特徵計算它們各自的權重
    • 由兩個特徵的權重獲得總權重
    • 按照第m個物體對當前物體的總權重,加權求出各個relation模塊
    • concat所有relation模塊,與原來的特徵疊加,最終輸出通道數不變的新特徵

==================================================================================再理解一下公式===================

一個對象關係模塊聚合在總的Nr關係特徵中,並通過加法增強輸入對象的外觀特徵,(上面的fR(n)fR(n)表示第n個object收集到的一種relation feature,實際上,在作者的論文里,一個object會收集Nr種(典型的16種)relation feature,然後將這Nr種feature concatenate連接在一起,和原本第n個object的feature相加,得到增強之後的特徵。如下式:)

關係模塊 Relation Networks Module具有相同的輸入輸出維度,因此可以被看作是在任何網路體系結構中使用的基本構件,是可微的,可以實現輕鬆地反向傳播,下列是在目標檢測系統中的應用:

  • Relation Networks For Object Detection (關係網路用於目標檢測)

  • Review of Object Detection Pipeline(目標檢測回顧)

第一步生成全圖特徵。從輸入圖像中,一個深層的卷積主幹網路提取出全解析度卷積特徵(usually 16× smaller than input image resolution通常比輸入圖像解析度要小16×)。骨幹網路在ImageNet分類任務中預訓練並且在檢測訓練中進行微調。

第二步生成局部特徵。從卷積特徵和一組稀疏的候選區域中,一個RoI池化層提取了每個候選區域的固定解析度的局部特徵(如7*7)。 第三步執行實例識別。從每個提案的區域局部特徵來看,一個head網路可以預測提案屬於某些對象類別的的概率,並通過回歸來完善提案的邊界框。該網路通常是淺層的,隨機初始化,並在檢測訓練期間與骨幹網路聯合訓練的。 最後一步執行去重操作。由於每個對象只能被檢測一次,所以應該刪除同一對象上的重複探測。這通常是作為一種啟發式的後處理步驟實現的,稱為非極大值抑制(NMS)。儘管NMS在實踐中運行良好,但它是手動設計的,並且是次優的。 它禁止端到端的學慣用於對象檢測。
  • 將關係模塊用於實例識別(Relation for Instance Recognition)

原本的從ROI Pooling 得到的特徵經過兩個fc之後,進行坐標和類別回歸,考慮對第n個候選的ROI池化,採用1024維的兩個全連接層,然後通過線性層執行回歸操作,這個過程可以被總結為:

目標關係模塊可以改變所有候選的1024-d特徵,不改變其維度,因此,可以在fc層之後使用任意次數。這是一種增強的2fc+RM模式,可以總結為:

如下圖所示,是增加了RM之後的檢測部分,r1,r2表示重複的次數,RM需要所有候選的「輸入框」作為輸入

  • 將RM用於去重(Relation for Duplicate Removal)

本文把duplicate removal歸結為一個二分類問題,對每一個ground-truth,只有一個detect box被分為correct,其餘的都是分為duplicate重複的。論文的duplicate removal networks是接在分類器classifier後面的。該模塊的輸入包括候選目標object proposal的score vector(分數向量,屬於各個類別的概率),bounding box(邊界框),proposal候選特徵,如下圖所示,某個候選區域的某個類別,假設屬於這個類別的概率是score,首先經過一個rank embed模塊,即拿出其他候選目標屬於該類別的分數,進行排序,得到第n個候選目標在排序中的下標(rank),然後將rank值映射到128維向量,同時將候選區域也映射到128維,將兩種的128維特徵相加之後作為新的外觀特徵,然後將邊界框的幾何特徵作為關係模塊的輸入,得到新的128維的輸出,和Ws做內積後通過sigmoid得到分數S1,然後分數S0和S1相乘作為最終得分,再進行選擇保留/不保留

===============================================================================Another========================== 論文把duplicate removal當做二分類問題,對於每一個gt,只有一個detected object被歸為correct類,其餘都是duplicate。這個模塊的輸入是一系列的detected objects,它們都是1024-d維特徵,分類分數S0還有bbox,而輸出是S0*S1,得到最終分數 S1怎麼計算呢?首先對於detected objects,論文按照他們的score進行排名,然後將score轉化為rank,rank會被映射到128-d,如何判斷哪個是detected object是correct呢,本文的方法是設置一個閾值,凡是IOU超過該閾值的樣本都會被選擇,在選擇的樣本中找到IOU最大值即為correct。當對定位要求較高時,可以設置比較高的閾值,相應的樣本選擇會發生變化,S1也會發生變化,這樣做的優點是:
  1. output的時候,NMS需要一個預設置的參數;而duplicate removal模塊是自適應學習參數的。
  2. 通過設置不同的 閾值,可以將模塊變成多個二分類問題,並取其中最高的值作為輸出,作者經過試驗,證明這種方式較單一閾值的方式更可靠。
  3. 作者發現閾值的設置和最後的指標有某種聯繫。例如mAP0.5在

為0.5時的效果最好,mAP0.75的t同理,而mAP使用多個 閾值效果最好。

FAQ:

4.NMS和soft-NMS的比較:

NMS:在被檢測圖片中產生一系列的檢測框B以及對應的分數S。當選中最大分數的檢測框M,他被從集合B中移出並且放入最終的檢測結果集合D中。與此同時,集合B中任何與檢測框M的IOU大於閾值的候選框都會被移除。NMS最大的問題就是它將相鄰檢測框的分數強制的置為0,在這種情況下,如果一個真實物體在重疊區域出現,則會導致對該物體的檢測失敗並降低了演算法的平均檢測率

Soft-NMS:和NMS相比,我們換一種思路,如果我們只是通過一個基於與M重疊程度相關的函數來降低相鄰檢測框的分數而非剔除,雖然分數會被降低,但相鄰的檢測序列仍然在物體檢測序列之中,這就是Soft-NMS的思想,簡單來講,如果一個檢測框與M有大部分的重疊,它會有很低的分數;而如果檢測框與M只有小部分重疊,那麼它原有的檢測分數不會受到太大的影響


推薦閱讀:
相关文章