基于改進SSD的車輛小目標檢測方法
來源:《應用光學》,作者李小寧等
?摘?要:地面車輛目標檢測問題中由于目標尺寸較小,目標外觀信息較少,且易受背景干擾等的原因,較難精確檢測到目標。圍繞地面小尺寸目標精準檢測的問題,從目標特征提取的角度提出了一種特征融合的子網絡。該子網絡引入了重要的局部細節信息,有效地提升了小目標檢測效果。針對尺度、角度等的變換問題,設計了基于融合層的擴展層預測子網絡,在擴展層的多個尺度空間內匹配目標,生成目標預測框對目標定位。在車輛小目標VEDAI(vehicle detection in aerial imagery)數據集上的實驗表明,算法保留傳統SSD(single-shot multibox detector)檢測速度優勢的同時,在精度方面有了明顯提升,大幅提升了算法的實用性。
關鍵詞:計算機視覺;目標檢測;深度學習;車輛小目標;特征融合
引言
地面目標檢測任務[1]中,由于目標外觀信息較少[2-3],易受復雜背景干擾等原因,較難精確檢測到目標[4]。目前,基于深度學習的目標檢測算法[5-6]包括基于候選區域方法及基于回歸的方法[7]。Girshick等人最先提出R-CNN(Region-CNN)[8]檢測方法,但其存在對同一區域多次重復提取的問題。之后的Fast-RCNN[9]算法僅對原圖像進行一次特征提取操作,由于生成候選框的Selective Search 算法[10]耗時較多,檢測速度較慢。基于區域推薦方法的另一個主流框架是Ren 等人提出的Faster R-CNN[11]。2016年,Liu Wei 等人提出了基于回歸的檢測方法SSD[12](single-shot multibox detector),去掉了區域推薦和重采樣等步驟,僅在單個步驟完成預測,顯著提升了檢測速度。
為解決小目標檢測難點,本文提出了一種基于擴展融合層的目標檢測框架,引入了重要的局部細節信息。此外,本文設計了基于融合層的擴展層預測子網絡,在擴展層多個尺度空間內匹配目標,生成目標預測框。為解決過擬合問題,文章采用了數據集增廣,BN(batch normalization)[13]層歸一化處理的方法。最后,將本文方法與幾種主流目標檢測算法在VEDAI[14]車輛小目標數據集上進行了對比實驗。
1 相關工作
1.1 傳統SSD 算法
2016 年Wei Liu 提出的SSD 模型結構包括基礎網絡,附加提取層和預測層3 個部分。傳統SSD模型網絡結構如圖1 所示。基礎網絡部分提取的特征圖將作為附加提取層的輸入。
圖1 傳統SSD 模型網絡結構圖
Fig.1 Network structure of conventional SSD model
此外,增加了conv6_1、conv6_2、conv7_1、conv7_2、conv8_1、conv8_2、conv9_1、conv9_2 共8 層附加層。附加層對基礎網絡層提取的特征圖做進一步的卷積運算。選取其中6 層特征層作為預測層,分別在預測層的每個位置上生成固定寬高比的邊界框預測結果。
1.2 傳統FPN 方法
Tsung-Yi Lin 等人提出FPN(feature pyramid networks)[15],用于目標檢測包含2 個關鍵步驟:1) 在每個尺寸特征圖的基礎上,分別保留了一個包含最強語義信息的特征層。由這些特征層構建出具有層級的特征金字塔結構[16-18]。2) 采用自上而下的結構,對金字塔高層特征層逐層上采樣;再分別與下一層的特征圖橫向連接得到增強后的高層特征層。最后,對橫向連接金字塔的每個特征層分別計算目標類別得分和邊框回歸。
1.3 傳統方法檢測小目標存在的問題
傳統SSD 直接在不同特征層預測結果,忽略了不同層之間的聯系,丟失了部分重要信息,缺乏同時獲取局部細節信息和全局語義信息的能力。FPN 模型雖然通過橫向連接得到融合特征層,但其采用逐層融合的方法,大大增加了計算量,從而降低了模型的檢測速度。對小目標識別與檢測問題而言,模型忽略了不同特征層對目標預測貢獻的差異。
2 基于擴展融合特征的小目標檢測算法
為解決車輛小目標識別與精確定位的問題,本文提出了基于擴展融合特征的小目標檢測算法,基于融合淺層特征高邊緣信息和深層特征的高語義信息的思想,設計了一種輕量化的特征融合模塊。將融合特征層經額外的6 層卷積層擴展得到預測子網絡,以此作為依據預測目標。本文網絡結構中引入BN(batch normalization)層,以加速算法收斂,提升模型的泛化能力。本文算法的整體結構如圖2 所示。
圖2 基于擴展融合特征的目標檢測模型結構
Fig.2 Structure of object detection model based on extension of fused feature
2.1 特征層選擇
由于淺層特征圖具有更小的感受野,其對應產生的默認邊界框大小更適宜小目標檢測。但其缺乏目標分類重要的語義信息。深層特征雖包含更多語義信息,但感受野過大,對小目標定位不夠精確。因此,考慮在高層特征中引入淺層局部細節信息。本文采用VGG-16 卷積神經網絡作為特征提取網絡,表1 為部分特征層結構參數。
表1 部分特征層結構參數
Table 1 Structure parameters of partial feature layer
Conv4_3 層之前的特征層,雖然具有更高的分辨率,但包含較少的語義信息,考慮將Conv4_3 層作為淺層特征融合層。更深層的特征中,結合航拍數據集中車輛小目標特點,選取Conv7_2 層作為高層特征融合層。
2.2 特征融合子網絡設計
輸入圖像映射為相同尺寸(300×300)后,經卷積和池化等的計算,特征層尺寸逐層遞減。Conv4_3層特征層特征圖大小為38×38,維度為512 維,Conv7_2 層特征圖大小為19×19。將2 層特征圖變換為相同維度再進行連接,得到融合特征層。特征融合子網絡示意圖如圖3 所示。
圖3 融合子網絡示意圖
Fig.3 Schematic diagram of feature fusion sub-network
分別對Conv4_3 和Conv7_2 層采用1×1 卷積層變換通道,降低原特征層維度。再對Conv7_2_new 層采用雙線性插值方法,映射為同Conv4_3 相同維度,插值后的特征層Conv7_2_inter 維度為38×38×256。將兩層特征層連接得到融合層(維度為38×38×512)。結合淺層局部細節信息和深層高語義信息的融合層作為依據,預測小目標的位置及類別。
2.3 擴展預測子網絡設計
本文方法在融合層后增加BN 層以加速網絡收斂速度。BN 層前向傳導公式為
引入BN 層對輸入數據進行歸一化操作,消除了權值放縮帶來的影響,從而避免了梯度彌散現象,同時進一步提升了模型的泛化能力。傳統的SSD 及FPN 方法預測流程示意圖對比,如圖4所示。
圖4 SSD 及FPN 方法預測流程示意圖
Fig.4 Schematic diagram of prediction process of SSD and FPN
本文方法延續了特征金字塔的思想,在融合特征層后增加6 層卷積層,每層卷積層后緊跟一層ReLU 層。分別在擴展層的不同尺度空間內匹配目標,預測目標類別得分和邊框位置。本文方法的預測流程示意圖如圖5 所示。
圖5 本文方法的預測流程示意圖
Fig.5 Schematic diagram of prediction process of our method
在擴展預測子網絡中的6 層特征層做預測,對第k?層而言,默認邊界框的縮放比例計算公式如下:
式中:Smin=0.3,表示最低層的縮放比例為0.3,Smax=0.9,則最高層的縮放比例為0.9。假設原圖像大小M×N,a?為寬高比,則每個特征層對應默認邊界框的寬和高的計算公式如下:
3 實驗結果與分析
為驗證改進后算法在小目標檢測問題的效果,實驗在車輛小目標數據集VEDAI(vehicle detection in aerial imgery)進行實驗測試,并與當前主流的幾種深度學習目標檢測方法對比結果。
3.1 VEDAI 數據集
Sebastien Razakarivony 等于2016年提出的數據集VEDAI 為衛星航拍圖像,共包含1 210 張1 024×1 024 像素的圖像。平均每張圖像中車輛數量為5.5 個,且目標像素占圖像總像素的0.7%。圖像目標車輛尺寸小(約40×20 像素),方向隨機且光照變化大,是小目標檢測標準數據集之一。
3.2 模型訓練
模型訓練采用基于動量的SGD(stochastic gradient descent)算法(隨機梯度下降算法)。匹配策略中,最小jaccard overlap 值為0.5。硬件平臺為:NVIDAI Titan X GPU(12 GB 顯存),PC 機操作系統為Ubuntu 14.04,模型訓練框架為Caffe 框架,mini batch 尺寸為32。
初始學習率為0.000 5,20 000 次迭代后,學習率調整為5e-05,60 000 次循環后訓練終止。權值衰減系數為0.000 5,動量因子為0.9。
3.3 測試結果
測試階段選取數據集中248 張圖片作為測試集驗證檢測效果。召回率和mAP 是目標檢測2 個重要指標。召回率和準確率的計算公式分別如下:
式中:TP?代表分類正確的正樣例;FP?為分類錯誤的正樣例;FN?為分類錯誤的負樣例。準確率隨召回率變化構成PRC(precision-recall curve)曲線,平均精度mAP(mean average precision)則為曲線與坐標圍成的面積,計算公式如下:
將主流目標檢測方法與本文方法在VEDAI 數據集上進行實驗對比,結果如表2 所示。
表2 不同檢測模型在VEDAI 數據集上的檢測結果對比
Table 2 Comparison of detection results on VEDAI of different models
由表2 可知,對于VEDAI 數據集中像素為1 024×1 024 的圖像檢測,改進后模型達到最高的召回率和平均檢測精度(mAP),分別為74.6%和56.2%,其較傳統SSD 算法在車輛目標檢測精度上有了顯著提升(約10%)。表3 為不同檢測模型檢測速度對比結果,基于區域推薦的方法Fast R-CNN檢測速度最慢,為0.4 fps,而Faster R-CNN 較其略快,檢測速度為5.4 fps。基于回歸方法SSD(VGG-16)檢測速度為19.2 fps。圖6(a)為不同檢測模型檢測精度和速度分布圖。
表3 不同檢測模型檢測速度對比
Table 3 Comparison of detection speed of different models
圖6 不同檢測模型檢測結果對比
Fig.6 Comparison of detection results of different detection models
圖6(b)為改進SSD 算法與傳統SSD 算法隨迭代次數增加,檢測精度的變化趨勢。約在25 000次迭代后,檢測精度值保持平穩上升,由圖6 可知,改進后算法精度較傳統SSD 有了顯著的提升。圖7 展示了改進算法在VEDAI 數據集上的部分檢測結果。
圖7 VEDAI 數據集部分檢測效果
Fig.7 Partial detection results on VEDAI dataset
測試結果表明,本文提出的算法較傳統SSD等主流目標檢測算法,對VEDAI 數據集的平均檢測精度顯著提升,算法采用單個步驟內預測目標,保留了傳統SSD 算法檢測速度快的優勢。融合子網絡有效地利用了淺層特征層中豐富的局部細節信息及深層特征層的高語義信息,因此模型的泛化能力得到提升。
4 結論
為提高車輛小目標檢測效果,本文提出了基于擴展融合特征的小目標檢測方法。該方法結合小目標尺寸較小、依賴局部細節信息等特點設計了融合子網絡,融合了高局部信息的淺層特征信息與高語義信息的深層特征。此外,本文設計了基于擴展金字塔的預測網絡,在多個尺度空間匹配目標,提升了目標檢測效果。為解決模型過擬合問題,本文引入BN 層提高了模型的泛化能力。改進算法有效地提升了車輛小目標檢測精度,同時,具有更高穩定性和魯棒性。下一步,將對模型中權值進行研究,以提升算法在復雜背景下的檢測性能。
審核編輯:符乾江
評論
查看更多