目標檢測乾貨 | 多級特徵重複使用大幅度提升檢測精度(文末附論文下載)

計算機視覺研究院 發佈 2023-01-07T15:06:46.424728+00:00

目前,在zero-shot學習中仍存在一些需要解決的問題,如domain shift problem, hubness problem和semantic gap問題。

計算機視覺研究院專欄

作者:Edison_G

近年來,在利用深度卷積網絡檢測目標方面取得了顯著進展。然而,很少有目標檢測器實現高精度和低計算成本。

公眾號ID|ComputerVisionGzq

一、簡要

近年來,在利用深度卷積網絡檢測目標方面取得了顯著進展。然而,很少有目標檢測器實現高精度和低計算成本。今天分享的乾貨,就有研究者提出了一種新的輕量級框架,即多級特性重用檢測器(MFRDet),它可以比兩階段的方法達到更好的精度。它還可以保持單階段方法的高效率,而且不使用非常深的卷積神經網絡。該框架適用於深度和淺層特徵圖中包含的信息的重複利用,具有較高的檢測精度。

二、背景

(a)僅使用單尺度特徵進行預測,(b)整合來自高級和低級特徵圖的信息,(c)從不同尺度的特徵圖生成預測,(d)就是今天分享的多層特徵重用模塊可以獲得不同尺度的特徵圖。

  • Shot learning

在深度學習領域,特別是目標檢測領域,數據集的建設是至關重要的。進行了許多優秀和有價值的研究,改進了多元數據集的理論和實踐。有研究者創建了一種有效的從Web學習方法來解決問題的數據集偏差,沒有手動注釋。這可能提供了一種幫助zero-shot學習的方法。zero-shot學習研究的主要問題是目標分類問題和目標檢測問題。目前,在zero-shot學習中仍存在一些需要解決的問題,如domain shift problem, hubness problem和semantic gap問題。zero-shot學習通常將視覺特徵嵌入其他模態空間,或將多個模型空間映射到一個共同的潛在空間,使用最近鄰思想對看不見目標進行分類,這對目標檢測器有很高的需求。

One-shot學習的目的是從一個或只有少數的訓練圖像中學習有關目標類別的信息。與zero-shot學習不同,One-shot學習依賴於先驗知識,比如物體識別,它需要對形狀和外觀的先驗知識。

三、新框架

  • SSD分析

SSD和Yolo一樣都是採用一個CNN網絡來進行檢測,但是卻採用了多尺度的特徵圖,其基本架構如下圖所示。下面將SSD核心設計理念總結為以下三點:

(1)採用多尺度特徵圖用於檢測

所謂多尺度採用大小不同的特徵圖,CNN網絡一般前面的特徵圖比較大,後面會逐漸採用stride=2的卷積或者pool來降低特徵圖大小,這正如上圖所示,一個比較大的特徵圖和一個比較小的特徵圖,它們都用來做檢測。這樣做的好處是比較大的特徵圖來用來檢測相對較小的目標,而小的特徵圖負責檢測大目標,如下圖所示,8x8的特徵圖可以劃分更多的單元,但是其每個單元的先驗框尺度比較小。

(2)採用卷積進行檢測

與Yolo最後採用全連接層不同,SSD直接採用卷積對不同的特徵圖來進行提取檢測結果。對於形狀為 的特徵圖,只需要採用 這樣比較小的卷積核得到檢測值。

(3)設置先驗框

在Yolo中,每個單元預測多個邊界框,但是其都是相對這個單元本身(正方塊),但是真實目標的形狀是多變的,Yolo需要在訓練過程中自適應目標的形狀。而SSD借鑑了Faster R-CNN中anchor的理念,每個單元設置尺度或者長寬比不同的先驗框,預測的邊界框(bounding boxes)是以這些先驗框為基準的,在一定程度上減少訓練難度。一般情況下,每個單元會設置多個先驗框,其尺度和長寬比存在差異,如圖5所示,可以看到每個單元使用了4個不同的先驗框,圖片中貓和狗分別採用最適合它們形狀的先驗框來進行訓練,後面會詳細講解訓練過程中的先驗框匹配原則。

SSD的檢測值也與Yolo不太一樣。對於每個單元的每個先驗框,其都輸出一套獨立的檢測值,對應一個邊界框,主要分為兩個部分。第一部分是各個類別的置信度或者評分,值得注意的是SSD將背景也當做了一個特殊的類別,如果檢測目標共有 個類別,SSD其實需要預測 個置信度值,其中第一個置信度指的是不含目標或者屬於背景的評分。後面當我們說 個類別置信度時,請記住裡面包含背景那個特殊的類別,即真實的檢測類別只有 個。在預測過程中,置信度最高的那個類別就是邊界框所屬的類別,特別地,當第一個置信度值最高時,表示邊界框中並不包含目標。第二部分就是邊界框的location,包含4個值 ,分別表示邊界框的中心坐標以及寬高。但是真實預測值其實只是邊界框相對於先驗框的轉換值(paper裡面說是offset,但是覺得transformation更合適,參見R-CNN)。先驗框位置用 表示,其對應邊界框用 $表示,那麼邊界框的預測值 其實是 相對於 的轉換值:

習慣上,我們稱上面這個過程為邊界框的編碼(encode),預測時,你需要反向這個過程,即進行解碼(decode),從預測值 中得到邊界框的真實位置 :

然而,在SSD的Caffe源碼實現中還有trick,那就是設置variance超參數來調整檢測值,通過bool參數variance_encoded_in_target來控制兩種模式,當其為True時,表示variance被包含在預測值中,就是上面那種情況。但是如果是False(大部分採用這種方式,訓練更容易?),就需要手動設置超參數variance,用來對 的4個值進行放縮,此時邊界框需要這樣解碼:

綜上所述,對於一個大小 的特徵圖,共有 個單元,每個單元設置的先驗框數目記為 ,那麼每個單元共需要 個預測值,所有的單元共需要 個預測值,由於SSD採用卷積做檢測,所以就需要 個卷積核完成這個特徵圖的檢測過程。

新框架(MFRDet)

如上面所述,有許多利用嘗試觀察和充分利用金字塔特徵。圖(b)顯示了最常見的模式之一。這種類型經過了歷史驗證,大大提高了傳統檢測器的性能。但是這種設計需要多個特徵合併過程,從而導致大量額外的計算。

今天分享的框架提出了一種輕量級、高效的多級特徵重用(MFR)模塊(如圖(d)所示)。該模塊能夠充分利用不同尺度的特徵圖,集成了深、淺層的特徵,提高了檢測性能。特徵重用模塊可簡要說明如下:

S的選擇:

在初步設計它們時,需要考慮以下幾個關鍵因素。首先,應該選擇要重用的圖層。在傳統的SSD中,作者部署了conv4_3、fc7和另外四個SSD層進行預測。6個選定的特徵地圖的比例表包括38×38、19×19、10×10、5×5和1×1。在不同的SSD中,這些層是獨立的,今天這個研究者不同意。研究者相信,小尺度特徵圖中存在的語義信息在尺度變換後的檢測中仍然有效。選擇了六個預測層和conv5_3層作為框架要重用的源層。從下表中,可以得出一個明確的結論,即重用conv3_3將降低檢測精度。高解析度特徵圖沒有足夠的高級語義信息,因此放棄了對其信息的重用。

Ti的轉換策略:

在傳統的SSD中,規模為38×38、語義信息很少的淺層conv4_3負責小目標識別。conv4_3層被設置為需要包含更深層語義信息的基本層。策略因特徵圖的標準而不同。首先,對每個源層應用Conv1×1來減小特徵尺寸。然後,在Conv1×1層後,通過雙線性插值,將尺度小於38×38的層(四個SSD_layers和fc7層)放入相同大小的38×38中。這樣,所有的源特性都會轉換為相同的大小。

Ψt的選擇:

在轉換策略Ti的過程完成後,創建了新的變換特徵圖。它們是conv4_3、conv5_3、fc7、conv8_2、conv9_2、conv10_2和conv11_2。有兩種方法可以將新轉換的特徵映射合併在一起。通過實驗驗證,這兩種方法都能得到良好的結果。從上表中,可以了解到連接似乎更適合我們的模型。

四、實驗

在coco數據集上的檢測可視化結果

© THE END

轉載請聯繫本公眾號獲得授權

計算機視覺研究院學習群等你加入!

計算機視覺研究院主要涉及深度學習領域,主要致力於人臉檢測、人臉識別,多目標檢測、目標跟蹤、圖像分割等研究方向。研究院接下來會不斷分享最新的論文算法新框架,我們這次改革不同點就是,我們要著重」研究「。之後我們會針對相應領域分享實踐過程,讓大家真正體會擺脫理論的真實場景,培養愛動手編程愛動腦思考的習慣!

計算機視覺研究院

公眾號ID|ComputerVisionGzq

論文下載| 回復「MFR」獲取論文下載

關鍵字: