Scale-Transferrable Object Detection(CVPR2018)閱讀筆記

scale-Transfer Object Detection閱讀筆記@skiery

原文翻譯

摘要

尺度問題一直存在與物體檢測的核心部分。在本工作總中,我們開發了一個新穎的Scale-Transferrable Detectino Network(STDN) (尺度變換檢測網絡)用於檢測圖片中的多尺度物體。傳統的方法只是簡單將圖片預測和來自不同網絡深度的多特徵圖進行對比,本文不同,所推出的網絡模型嵌入了super-resolution層(在本工作也叫做尺度變換層/模型),可以通過多次尺度檢測清晰的看到尺度間的相關性。

介紹

尺度問題一直是物體檢測的核心。爲了檢測不同尺度的物理,最基本的策略就是用圖像金字塔在不同尺度下去獲得目標的特徵。然而, 這種做法會大量的增加內存的佔用和計算的複雜度,進而會影響物體檢測的實時性。
近年來,卷積神經網路在計算機視覺任務(如image claasification圖片分類,semantic segmentation語義分割,和物體檢測)中取得了很大的進展。手工設計的特徵已經被卷積神經網絡計算獲得的特徵取代,極大的提高了物體檢測的能力。Faster R-CNN用某層計算得到卷積特徵映射(convolutional feature maps)來預測不同尺度和長寬比的候選區域(candidate region proposals)。
figure_1

(a)只用單尺度特徵進行預測;(b)使用高層和低層特徵映射
(c)從不同尺度的特徵映射進行預測;(d)本文的模型,可以直接潛入DenseNet去獲得不同尺度的特徵映射信息。

因爲感受野(receptive field)在每一層中是固定的,所以固定感受野與自然圖像中的不同尺度物體之間存在不一致。這可能會損害物體檢測的行能。如圖C,SD和MS-CNN使用來自CNN內不同層的特徵映射來預測不同尺度的物體。淺層特徵映射有用來檢測小物體的小感受,深層特徵映射用來檢測大物體的大感受野。然而淺層特徵映射所帶的語義信息更少,所以該方法影響小物體的檢測。FPN,ZIP和DSSD交叉使用所有尺度的特徵映射。如圖b所示,一個從高級到低級的結構使高層特徵映射信息和低層的結合起來,在所有尺度下產生了更多的語義特徵映射。然而,爲了提高檢測效果,特徵金字塔必須小心的建立,並且需要添加額外的層去計算因爲建立金字塔而需額外計算的損失。
figure_2

Scale-Transferrable Detection Network(STDN) for etecting multi-scale objects in images
本文使用了DenseNet-169作爲網絡的基礎。該圖顯示了DenseNet-169最後一個密集區域中的幾層。密集塊中每層的輸出具有相同的高度和寬度。本文使用尺度轉移層來獲取用於檢測小物體的高分辨率特徵圖,並使用合併圖層來獲得具有大感受野的特徵圖以檢測大物體。 這些層可以直接嵌入到基礎網絡中,而且計算開銷很小。 標度傳輸模塊保證了探測器的實時性能。

爲了獲得高級多尺度語義信息映射,並且不影響檢測器的速度,本文提出了尺度變換模型Scale-Transfer Module(STM)並且直接將其嵌入了一個DenseNet。DenseNet讓模型在不使用卷積神經網絡的情況下,獲取更有價值的低級和高級特徵信息。由於網絡結果密集,DenseNet的功能比普通卷積特徵更強大。STM由池化層和尺度變換層組成。池化層用來獲取小尺度特徵映射,尺度變換層用來獲取大尺度特徵映射。尺度變換層具有簡單有效的特點,最初提出來用來解決圖像超分辨率的問題,也有一些人用它來做語義分割。本文中用該層有效的擴展了物體檢測中特徵圖的分辨率。
本文使用scale-Transfeerable模型建立了一個單步物體檢測器Scale-Transferrable-Detection-NetWork(STDN)。上圖展示了本文所提出檢測器的模型結構。因爲DenseNet中最後一個密塊的最後一層有數量最多的通道,scale-transfer層通過壓縮通道的數量(如圖1)擴展了特徵圖的寬度和高度。該操作可以有效地減少下一個卷積層參數的數量。
STM天然與基層網絡相適應並且能實現端到端的訓練。本文認爲STM有兩個直接明顯的長處。首先,很自然的結合了DenseNet的特徵圖和我們自己的低層物體檢測特徵和高層語義特徵。本文可以證明該方法能提高物體檢測的準確度。其次, STM僅由池化層和高分辨率層組成,不需要額外的參數和計算。實驗結果說明了文中提出的框架可以準確的檢測物體並符合實時性的需求。

相關工作

最先進的物體檢測方法大都基於卷積神經網絡。如,SPPnet,Fast R-CNN,Faster R-CNN,Faster R-CNN,R-FCN,YOLO,都使用卷積神經網絡最頂層的特徵去檢測不同尺度的物體。然而,每層卷積網絡都有一個確定的感受野,只用單獨一層的特徵去預測不同尺度物體不是一最佳選擇。
進一步提高多尺度物體檢測準確率的方法基本有三類。其一是用多層特徵結合去檢測物體。其二使用不同曾的尺度特徵在各層去判斷檢測目標。最後一種是結合以上兩種方法。
對第一種類型的方法,ION使用跳過池化、在多層提取信息的方法,最終使用各層結合起來的信息檢測物體。HyperNet結合圖像深、中、淺層特徵生成規則檢測目標。YOLO_V2把低分辨率特徵通過層間傳遞集中到高分辨率的特徵中再在頂部運行這個擴展特徵檢測映射。這些方法的基本觀點都是去增強底層特徵和高層特徵的比較。
對第二種方法而言,SSD,MS-CNN和DSOD比較了從多個特徵映射得到的檢測去處理不同尺度的多個物體。例如,對小物體而言,使用淺層特徵,對於大物體而言,使用深層特徵。但由於語意信息的丟失,淺層網絡特徵會影響小物體檢測的性能。
最後一類方法是同時使用以上兩種方法。使用許多曾去預測不同尺度的物體,同事每個預測層的特徵包含了不同深度特徵的比較。FPN和TDM使用一個從上到下的結構建立高層語意信息特徵映射。DSSD使用一個沙漏結構傳遞預測使用的信息。這些方法都增加了額外獲取多尺度特徵的層,因此而引入的誤差不可忽略。
我們提出的方法時分類中的第三種,我們使用DenseNet去比較不同層,並且使用不同尺度模塊去獲取不同分辨率的特徵映射。我們的模塊可以在誤差很小的情況下直接嵌入DenseNet網絡中

3.STDN

該部分,我們首先介紹了我們特徵提取網絡組件的基礎網絡。我們使用DenseNet作爲我們的基礎網絡。在每一個dense模塊中,其特徵映射作爲接下來所有層的輸入。最後一個dense模塊的最後一層輸出有最多的通道並且很適合做我們Scale-Transfer尺度變換層的輸入,該層通過壓縮通道數目擴展特徵映射的長度和寬度。接着我們描述了scale-transfer模塊生成不同尺度的特徵映射。接下來,我們定義了整個物體檢測、定位預測網絡結構和網絡訓練的諸多細節。

3.1基本網絡:DenseNet

本文使用Dense-169座位我們的網絡基礎來做特徵提取,在ILSVRC CLSLOC數據集上做預訓練。DenseNet是一個深度學習監督網絡。在DenseNet的每個dense模塊中,每層的輸出包含了所有前面層的輸出,因此混合了輸入圖像的低分辨率和高分辨率特徵,非常適合做物體檢測。由DSOD得到了啓發,我們使用一個33的convolution layer和一個22的 mean pooling layer取代之前的輸入層(77convolution layer,stride = 2後跟一個33的max pooling layer)。第一個卷積層的步進是2,其他的爲1。三個卷積層的輸出分64路。我們稱這些層爲"stem block"。表1詳細描述了我們的網絡結構。實驗證明這種簡單的替換可以有效地提高物體檢測的準確率(見表3)。其中一個解釋可能是因爲原來的DenseNet-169層的輸入層就已經因爲兩次連續的下采樣丟失了許多信息。這會影響物體檢測,尤其是小物體的檢測。

3.2高效的Scale-Transfer模塊

figure3
尺度問題一直是物體檢測的核心,比較不同分辨率下不同特徵映射得到的預測對於多尺度物體檢測是有益處的。然而,如圖2,DenseNet中最後一個dense模塊,出了輸出的通道數目不同,所有的輸出都有相同的寬和高。如,當輸入圖片是300300的時候,DenseNet-169的最後一個dense模塊分佈爲99.最簡單的方法是用低層的高分辨率的特徵圖直接進行預測,像SSD的做法。然而,低水平的特徵圖缺乏物體的語義信息,這可能使物體檢測表現變差。簡化測試表現表中可見。
受到super-resolution方法的啓發,爲獲取不同分辨率的特徵圖,本文提出了一個模塊被稱爲scale-transfer模塊。scale-transfer模塊非常有效並且可以直接嵌入DenseNet中的dense block模塊。爲了獲得強健的語義信息特徵圖,本文使用了DenseNet的網絡結構,通過一系列的操作,直接把低分辨率的特徵轉換爲高分辨率的特徵。網絡頂層的特徵圖同時具有低分辨率細節信息和高分辨率的語義信息,因此可以提高物體定位和檢測的行能。
在這裏插入圖片描述
本文從最後一個Dense層獲得不同大小的特徵圖。在scale-transfer模塊中,我們使用平均池化層獲得低分辨率的特徵圖。對於高分辨率的特徵圖而言,我們使用一個成爲scale-transfer層的技術。
假設scale-transfer層輸入向量的分佈爲H x W x C · R(平方),r是上採樣參數。scale-transfer層中進行着一種元素週期性的重排。如圖三所示,scale-transfer層通過壓縮特徵圖所含通道數擴展了特徵圖的長度和寬度。
在這裏插入圖片描述
其中,I SR是高分辨率特徵圖,I LR是低分辨率特徵圖。與使用反捲積層時需要在卷積前先填0不同,scale-transfer層沒有額外的參數和計算開銷。我們將一個平均池化層和transfer-scale層合成爲一個scale-transfer模塊。將scale-transfer模塊直接嵌入DenseNet可以獲得六個不同尺度的特徵圖。接着使用這些特徵圖構建一個稱爲scale-transfer檢測網絡(STDN)的單步(one-stage)物體檢測器。圖二顯示了輸入爲300*300時不同大小的六個特徵圖的尺度。
scale-transfer層可以有效地減少DenseNet中dense的最後一層通道數目,也可以減少參數和下一個卷積預測層的計算消耗。這可以提高檢測器的速度。
利用DenseNet的優勢,特徵圖可以同時具有低層次細節信息和高層次的語義信息。實驗結果顯示scale-transferrable檢測器在準確率和檢測速度上表現均很好。

3.3物體定位模塊

STDN由基礎網絡和兩個任務子網組成。其中基礎網絡主要做特徵提取。第一個子網做物體分類,第二個子網做邊框定位和迴歸。在前文中已經對基礎網絡的細節有所描述。接下來細化兩個預測子網和訓練對象。

3.3.1Anchor Boxes

本文將一系列定義好的anchor boxes通過scale-transfer模塊和每個特徵圖相連接。anchor boxes的尺寸和SSD一樣(金字塔狀的特徵圖)。和DSSD一樣,在每個預測曾我們使用[1.6,2.0,3.0]的層比例。Anchors對IoU大於門限0.5的區域進行匹配。剩下的的anchors視爲背景。在匹配後,大部分預置的anchors時未匹配到東西的。我們使用負樣本排除的方法保證正負樣本的比例在3:1左右。

3.3.2分類子網

分類子網用來預測每個anchor屬於某一類的可能性。它包含了一個11的卷積層和兩個33的卷積層。每個卷積層前加一個batchnorm層和一個relu層。最後一個卷積層有K A個過濾器,其中K是物體的種類,A是每個預測區域中anchor的數量。分類的損失函數是softmax層基於多個種類置信度的softmax損失。

3.3.3邊框迴歸子網

該子網用於迴歸抵消每個anchor box,使之可以更匹配真實的物體。邊框迴歸子網和分類子網的大體結構相同,除了其中最後一個卷積層有4A個過濾器(並非K A個)。平滑L1損失函數用於定位的損失函數,邊框損失函數僅用於正樣本。

3.3.4訓練目標

訓練目標是將一個分類損失和定位損失混合的損失函數最小化:
在這裏插入圖片描述
其中a是anchor,I是圖片,theta是我們優化的參數。L cls是分類損失函數,L loc是定位損失函數,y a是類標籤,等於0時沒有相應的匹配類。p loc(I,a,theta)和p cls(I,a,theta)用來預測邊框的編碼和對應類。fai(b a,a)是一個對應anchor a的真實邊框的編碼。lambda是一個權衡係數。

3.3.5訓練設置

我們的檢測器是基於MXNet框架的。所有模型均使用SGD solver在NVIDIA TITAN Xp GPU上進行訓練。我們使用了近似SSD的訓練策略,包含了一個隨機數據擴展和旋轉,對於小物體的檢測有很大的幫助。

實驗

(略)(等做實驗需要的時候再去翻閱~就翻譯到這裏吧)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章