又一新框架來襲,關系網絡用于目標檢測(文末附源碼)
目標檢測
目前大部分的目標檢測算法都是獨立地檢測圖像中的目標,如果模型能學到目標之間的關系顯然對于檢測效果提升會有很大的幫助,因此作者希望在檢測過程中可以通過利用圖像中object之間的相互關系或圖像上下文來優化檢測效果,這種關系既包括相對位置關系也包括圖像特征關系。 關于object的相對位置關系的利用是一個非常有意思的點,尤其是能夠實現相對位置關系的attention非常不錯的點子。
具體的做法借鑒了attention機制(Attention is all you need)的啟發,作者提出一個模塊: object relation module來描述目標之間的關系,從而以attention的形式附加到原來的特征上,最后進行回歸和分類,另外一個亮點是同時將這種attention機制引入NMS操作中,不僅實現了真正意義上的end-to-end訓練,而且對于原本的檢測網絡也有提升。
值得注意的是:object relation module和網絡結構的耦合度非常低,同時輸出的維度和輸入的維度相同,因此可以非常方便地插入到其他網絡結構中,而且可以疊加插入。
作者主要放在兩個全連接層后面和NMS模塊,如下圖中的紅色虛線框所示。 在下圖中作者將目前目標檢測算法分為4步:
- 特征提取主網絡
- 得 到ROI及特征
- 基于ROI做邊界框回歸和目標分類
- NMS處理,去除重復框
從作者的分步情況和源碼可以清晰地看出,這篇文章主要是基于Faster RCNN系列算法引入object relation module。
基本框架
提出的Relation Module是對[“Attention Is All You Need”]中提出的“Scaled Dot-Product Attention”模塊的改造,其主要作用是建立目標檢測任務中不同目標之間的關系,以提高目標檢測任務的準確率。
本文使用的是Faster RCNN框架,如下圖所示,假設Faster RCNN的RPN模塊篩選出N個候選區,在這里就默認每個候選區為一個目標,對每個目標提出其幾何特征和形狀特征。 其中幾何特征通過候選區的邊框的坐標進行計算,而形狀特征的來源為:Faster RCNN提取出候選框后,需要對每個候選框進行ROI pool 然后經過兩個全連接層生成最終的目標類別預測,而在這里形狀特征即為中間全連接層的輸出,為1維向量。 然后通過目標關系模塊建立任意兩個目標之間的關系。
在attention is all you need這篇文章中介紹了一個基本的attention模塊:scaled dot-product attention,如下所示:
假設輸入中有N個目標,那么N個目標的兩種特征集合如下所示,f A 是常規的圖像特征,f G 是位置特征。
簡單的來說公式2中的WV對應上面公式中的V,公式2中的wmn對應上面公式中的softmax()。
歸一化操作:
上面公式中的兩個變量wG和wA分別表示目標的位置特征權重(geometric weight)和圖像特征權重(appearance weight),后面通過如下公式分別得到。
為了使其適應于平移和尺度變換,使用了一個4維的相對幾何特征。
綜上,可以用下面的Algorithm 1來概括前面提到的公式算法,源碼中的實現基本上和Algorithm 1相同。
左圖是整體上的attention模塊和圖像特征fA的融合;右圖是attention模塊的詳細構建過程。
接下來我們說說怎么應用在目標檢測算法中了。
上圖是object relation module插入目標檢測算法的示意圖,左圖是插入兩個全連接層的情況,在全連接層之后會基于提取到的特征和roi的坐標構建attention,然后將attention加到特征中傳遞給下一個全連接層,再重復一次后就開始做框的坐標回歸和分類。 右圖是插入NMS模塊的情況,圖像特征通過預測框得分的高低順序和預測框特征的融合得到,然后將該融合特征與預測框坐標作為relation模塊的輸入得到attention結果,最后將NMS當作是一個二分類過程,并基于relation模塊輸出特征計算分類概率。
實驗
Table1主要做了3個驗證:
- 驗證引入位置特征(geometric feature)的有效性
- 驗證關系特征數量的影響
- 驗證relation module在兩個全連接層中的數量的影響
表2主要是驗證RM效果提升是否是因為參數量增加帶來的
關于在不同算法上引入RM的效果
論文地址: https://arxiv.org/pdf/1711.11575.pdf
源碼:h ttps://github.com/msracver/Relation-Networks-for-Object-Detection