《Relation Networks for Object Detection》論文筆記
論文鏈接:https://arxiv.org/abs/1711.11575
論文代碼:暫未公布
Summary of background
??在深度學習興起前,目標檢測領域不少改進方法都是在經典檢測模型上加入對象的上下文信息和對象間的關係以提升目標檢測的性能,但這種方式在深度學習的架構中似乎不怎麼起作用(以前我也想過這種改進方法,但深度學習發展的還真像煉丹,直接丟原始數據訓練效果反而更好),這是由於深度學習發展到如今仍然是一個黑盒模型,主流的觀點認為卷積神經網路具有很大的感受野,在網路訓練時已經學習到了對象的上下文信息。
??這篇文章算是將關係模型應用到CV領域很成功的文章了,由於是受到谷歌在NLP方向的文章《Attention is All You Need》的啟發,文中的許多變數公式都與谷歌的文章對比。谷歌的文章中完全基於Attention,而沒有使用任何神經網路的結構,卻取得了state-of-the-art的效果。由於我對NLP不怎麼了解,在看這篇文章前還沒有看過谷歌的文章。不過這篇文章的思路很有趣,相信從Attention模型的巧妙和CNN強大的特徵提取能力結合這個角度出發,會有更多值得期待的改進。
Object Relation Module
??在之前使用CNN進行目標檢測的方法中,都是每個對象被單獨識別,而這篇文章將一組對象同時做了Relation Module處理,即一個對象上融合了其他對象的關係特徵,好處在於豐富了特徵,而且Relation Module處理前後,維度不會發生變化,這意味著該模型可以擴展到經典的任意基於CNN的目標檢測框架中。該模型的模塊示意圖如下:
??其中對每一個對象有幾何特徵(四維的bbox),外觀特徵(文中為1024維),給定N個對象的輸入集合對於第n個對象,則它的關係特徵為
??其中為顯性轉換,為關係權重,表示該對象受到其他對象的影響。
??分母是對分子的 歸一化,為外觀權重,用點積dot計算
??其中與用於將原始特徵和投影到子空間,以測量它們之間的匹配程度。為幾何權重,
其中的計算分為兩步
將兩個對象的幾何特徵嵌入到高維表示中,記為,計算目標m和n的相對位置,這是一個四維的向量,分別表示中心點的坐標和寬高。
將4維的相對位置矩陣映射到64維向量,再與$W_G$做內積,然後再通過ReLU激活函數。
??式(1)中的表示第n個對象提取的一個關係特徵(relation feature),一個對象會提取$Nr$種關係特徵(作者的論文中是16種),然後將種關係特徵concat起來,再與原來第n個對象本身的特徵相加,得到融合關係特徵後的特徵,公式如下:
??為了匹配關係特徵和對象本身的特徵間的維度,能對起到降維的作用。
Relation Networks For Object Detection
??這篇文章是將提出的relative module應用於目標檢測,目前基於CNN的目標檢測架構包含4個步驟
現在大數據集(一般是ImageNet)上預訓練網路模型;
提取候選區域特徵
實例檢測
去除重複檢測框
??作者基於relative module的特性,將relative module用於每個全連接層之後,並且替代常用的NMS演算法去除重複檢測框。如下圖所示
Relation for Instance Recognition
??在原本的RCNN模型中,經過ROI Pooling處理後,會經過兩個全連接層後再進行邊界框回歸和目標分類,步驟如下圖
??由於relative module處理特徵後,特徵的維度不會發生變化,因此可以在每個全連接層後接一個relative module。則實例檢測的流程變為:
??在上式中,R1和R2表示為relative module重複的次數。Instance Recognition的檢測示意圖如下圖所示。
Relation for Duplicate Removal
??作者首先指出NMS由於是貪心演算法且需要手工選擇參數,是一個次優選擇,然後說明Duplicate Removal問題實際是一個二分類問題,即對於每一個ground truth object,只有一個檢測框是正確的,其餘的檢測框都可認為是duplicate。??作者提出的這個模塊的輸入是instance recognition的輸出,也就是一系列檢測對象,每個對象都有1024維的特徵,攜帶的信息有Bbox和分類分數,從下圖可以看到模塊的輸出是和的乘積,接下來看看的計算方法。這個模塊的具體步驟如下
首先作者指出將分類分數轉換為rank更有效,而不是具體的數值。然後將rank和1024維的appearance feature轉換為128維(通過上圖中的和)
將融合後的特徵通過relation module改變所有對象的外觀特徵
將每個轉換的特徵通過線性分類(下圖中的),再通過Sigmoid將輸出歸一化到[0,1]之間。
??relation module是上述步驟的核心,因為使用relation module可以是整合Bbox,原始的appearance feature和分類分數,使整個目標檢測框架仍然是一個端到端的模型。
??緊接著面臨的任務就是如何判斷哪個detected object是正確,哪些是duplicate。作者首先設置了一個閾值,輸出大於該閾值的都會保留,然後在保留的detected object中,選擇IOU最大的作為正確的保留,其餘為duplicate。
Experiments
??實驗部分數據集是具有80個類別的COCO數據集,CNN模型用的ResNet-50和ResNet101。
Relation for Instance Recognition
??首先看Instance Recognition的實驗,首先比較了單純2fc的Instance Recognition,和2fc+RM(relation module),比較了RM的多種參數。
??從上圖可以看到,使用rank這個策略確實能使準確率提升,但作者沒有解釋這是為什麼。
Relation for Duplicate Removal
多種網路模型,多種參數比較
Relation module究竟學習到了什麼
??作者提出的Relation module是一個很好的研究點,遺憾的是文中沒有很好的解釋Relation module學到了什麼,作者說這個不在文章的討論範圍。為了對文章所提出的模型給出一個直觀的解釋,作者分析了Relation module中最後一個fc之後的RM中的關係權重,如下圖所示,藍色代表檢測到的物體,橙色框和數值代表對該次檢測有幫助的關聯信息。
作者提出的問題
1.只有一個樣本被劃分為correct,會不會導致嚴重的正負樣本不均衡? 答案是否定,網路工作的很好,這是為什麼呢?因為作者實際運行發現,大多數的object的$s0$得分很低,因此$s0$和$s1$就很小,從而導致 $L=-log(1-s0s1)$ 和梯度 $frac{partial L}{partial S1}$ 都會比較小。2.設計的兩個模塊功能是否矛盾?因為instance recognition要儘可能多地識別出high scores的物體,而duplicate removal的目標是只選擇一個正樣本。作者認為這個矛盾是由$s0$和$s1$來解決的,instance recognition輸出的高$s0$可以通過較低的$s1$來調節。3.duplicate removal是一個可以學習的模塊,和NMS不同,在end2end訓練中,instance recognition輸出的變化會直接影響到該模塊,是否會產生不穩定性?答案也是否定的,實際上,作者發現end2end的訓練方式更好,作者認為這是由於不穩定的label某種程度上起到了平均正則化的作用。


TAG:字跡模糊 |