国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種改進的SSD算法及其在車輛目標檢測中的應用

2021-11-15 11:48:42韓雁鵬譚光鴻
計算機應用與軟件 2021年11期
關(guān)鍵詞:高層標簽卷積

韓雁鵬 侯 進 譚光鴻 羅 朔

(西南交通大學信息科學與技術(shù)學院 四川 成都 611756)

0 引 言

近年來,隨著深度學習技術(shù)的出現(xiàn)與不斷發(fā)展,目標檢測模式也由傳統(tǒng)的手工提取特征的方式轉(zhuǎn)變?yōu)樯窠?jīng)網(wǎng)絡自主學習以提取目標圖像特征。與傳統(tǒng)的目標檢測算法相比,神經(jīng)網(wǎng)絡提取的特征更加抽象與復雜,特征有更好的表達能力,這也是深度學習與目標檢測結(jié)合的主要原因之一。而對于無人駕駛來說,目標檢測技術(shù)的發(fā)展也進一步提高了無人駕駛環(huán)境感知能力,使得無人駕駛車輛可以更加快速安全地對道路環(huán)境做出實時反應。

Girshick等[1]提出了基于卷積神經(jīng)網(wǎng)絡的目標檢測模型R-CNN,使用CNN(Convolutional Neural Network)對候選區(qū)域進行分類,這也是深度學習方法在目標檢測領(lǐng)域中的首次系統(tǒng)應用。目前,基于深度學習的目標檢測方法主要分為兩類:雙步(two-stage)目標檢測算法,這些算法將目標檢測分為兩個階段,首先使用RPN(Region Proposal Network)來生成待檢測目標信息,然后再使用一個神經(jīng)網(wǎng)絡檢測模型對待檢測目標的位置信息和類別信息進行檢測,典型代表為: Faster R-CNN[2]、FPN[3]、Mask R-CNN[4]等;單步(one-stage)目標檢測算法,與雙步模型相比,單步算法不使用 RPN網(wǎng)絡,只使用單個目標檢測網(wǎng)絡模型來直接預測目標的位置和類別信息,因此,單步目標檢測算法通常具有更高的檢測速度,并且可以實現(xiàn)端到端的目標檢測。典型代表算法為:SSD[5-6]、YOLO系列[7-9]等。SSD算法運行在單塊Nvidia GTX 1080Ti顯卡上檢測速度可達到53幀每秒(輸入圖像尺寸為300×300像素)。但是對于無人駕駛汽車來說,由于功耗、空間以及成本等原因,目標檢測等環(huán)境感知算法需要搭載在一些內(nèi)存受限的嵌入式設備上,并在檢測結(jié)果可接受的情況下達到實時檢測的效果,所以本文進一步優(yōu)化算法以提高目標檢測算法的檢測效率。

本文提出了一種改進的SSD目標檢測算法,以實現(xiàn)更高效率的車輛目標檢測,方便以后搭載至無人駕駛車輛設備。本文使用Udacity道路環(huán)境數(shù)據(jù)集中的車輛信息作為訓練和檢測的目標,并且對SSD的模型結(jié)構(gòu)進行改進。SSD算法使用VGG[10]網(wǎng)絡結(jié)構(gòu)進行特征提取,該模型結(jié)構(gòu)雖然有較好的表現(xiàn),但是結(jié)構(gòu)臃腫、參數(shù)量較大,導致模型檢測速度不高。本文算法設計了一個目標檢測網(wǎng)絡結(jié)構(gòu),對高層特征圖不進行降采樣,以保留待檢測物體的位置信息,同時加入空洞卷積提高模型高層卷積層的感受野,提高對于小目標的檢測能力,并且使用深度可分離卷積層來替換原始標準卷積層降低參數(shù)量并提高檢測速率。利用K-means[11]聚類算法對目標候選框的寬高比維度進行聚類分析。實驗結(jié)果表明,本文算法對車輛目標檢測的平均精準度達到了58.01%,檢測速度達到了86.26幀每秒,相比原始SSD算法均有較大提升。

1 SSD算法介紹

SSD算法同時結(jié)合了單步檢測算法和雙步檢測算法一些機制。首先采用了YOLO回歸的思想,簡化神經(jīng)網(wǎng)絡模型的設計,減少模型計算復雜度,來提高算法的實時性; 然后采用了Faster R-CNN中錨點(anchors)機制,通過設計不同縱橫比預選框,對不同尺寸的目標進行回歸預測。與其他單步目標檢測算法相比,SSD這種局部特征提取的方法在目標檢測方面有更好的表現(xiàn)。除此之外,SSD算法針對不同尺度的目標檢測問題,采取了多尺度目標特征提取的方法,即對低層和高層的多尺度特征信息均進行檢測,該設計提高了SSD算法對小目標的檢測效果。

SSD的模型結(jié)構(gòu)如圖1所示,主要分為兩部分。第一部分是位于前端的深度學習網(wǎng)絡模型,主要作用是提取目標的初始特征,同時提高網(wǎng)絡對目標的感知能力。這部分網(wǎng)絡結(jié)構(gòu)使用一些去除了分類層的分類網(wǎng)絡模型,分類模型一方面可以有效進行特征提取,有利于后續(xù)模型的檢測任務,另一方面可以利用遷移學習減少模型訓練時間[12]。第二部分是位于后端的多尺度特征檢測網(wǎng)絡,通過級聯(lián)的神經(jīng)網(wǎng)絡將不同尺度的特征進行分類得到了初步檢測結(jié)果(類別與位置信息),并且加入低層卷積層(Conv4_3)的特征來提高SSD算法對小目標的檢測效果,最后使用非極大抑制NMS(Non-Maximum Suppression)得到最終檢測結(jié)果。

圖1 SSD網(wǎng)絡結(jié)構(gòu)示意圖

2 改進的SSD模型

2.1 數(shù)據(jù)集目標框的聚類分析

SSD算法引入了Faster R-CNN中所使用的錨點框思想,通過對初始錨點框的設置,可以提高網(wǎng)絡對目標的檢測精度和速度。而本文主要檢測類別為車輛,其預測框的長寬比與通用的目標檢測數(shù)據(jù)集有較大區(qū)別,所以本文使用K-means聚類算法對Udacity無人駕駛數(shù)據(jù)集中的目標框的寬高比進行聚類,并以此來進行模型參數(shù)設置。根據(jù)模型結(jié)構(gòu),選取k=3,即選取三個聚類中心,對數(shù)據(jù)集標簽數(shù)據(jù)的寬高比聚類結(jié)果如表1所示。

表1 標簽數(shù)據(jù)寬高比K-means聚類結(jié)果

根據(jù)此聚類結(jié)果可將SSD算法中的長寬比參數(shù)(aspect_ratios)對應設置為[1.03,1.58,2.67]。

2.2 深度可分離卷積

原始SSD算法使用VGG網(wǎng)絡模型結(jié)構(gòu)來提取圖像特征,通過多層特征來進行分類和位置檢測。但是VGG模型卷積層過深,參數(shù)量巨大,雖然在大型GPU上有較高的檢測速度,但是對于無人駕駛汽車來說顯然計算代價過大。因此本文改進了特征提取部分,使用了MobileNet[13]的深度可分離卷積結(jié)構(gòu),降低參數(shù)量,并減少了卷積層數(shù),大大減少了計算量。深度可分離卷積結(jié)構(gòu)的思想就是將一個標準卷積層分解為深度可分離卷積(depthwise conv)和1×1的卷積,這樣可以有效減少卷積運算時的參數(shù)量。深度可分離卷積的結(jié)構(gòu)如圖2所示。

圖2 標準卷積與深度可分離卷積結(jié)構(gòu)

可以看到,卷積核大小為D,卷積核數(shù)量為M,輸出特征圖數(shù)量為N,則使用標準卷積的計算開銷為:

D×D×M×N

(1)

而使用深度可分離卷積的計算開銷為:

D×D×M×1+1×1×M×N

(2)

兩者比值為:

(3)

本文使用的卷積核邊長為3,而一般模型特征圖數(shù)量N較大(本文為32、64、128等),相比可以省略。所以與標準卷積相比,深度可分離卷積可以將計算開銷減少至1/9左右,較大程度提升模型檢測效率。

2.3 高層卷積不降維

目前主流的單步目標檢測算法都直接使用一些常見分類算法的網(wǎng)絡模型,如VGG[10]、ResNet[14]、DenseNet[15]等,這些分類算法模型為了獲得更多的類別信息,往往使用深層的神經(jīng)網(wǎng)絡,這也會導致模型需要不斷地進行降采樣。但是目標檢測任務與分類任務不同,目標檢測還需要提供待檢測物體的位置信息,而隨著不斷的降采樣,網(wǎng)絡模型的感受野不斷擴大,高層特征圖會缺失目標的部分位置信息。雖然原始SSD算法提取低層的特征信息,但是依舊無法徹底解決小目標檢測難問題。

本文算法設計了一種目標檢測的網(wǎng)絡模型,對高層特征圖不進行降采樣,增加網(wǎng)絡高層輸出特征的分辨率,保留低層特征圖的位置信息,來提高對小目標的檢測效果,如圖3所示。

圖3 模型結(jié)構(gòu)對比圖

由圖3(b)可知,本文算法在高層不進行降采樣,由此高層特征圖保留了大量的目標位置信息,提高了檢測精度。但這同時也會導致兩個問題:1) 由于減少降采樣,導致高層特征圖分辨率過高,模型參數(shù)量大量增加,模型檢測速度降低;2) 高層感受野下降,導致模型對一些大型目標物體檢測精度下降。所以本文算法減小網(wǎng)絡高層的寬度,減少因增大分辨率帶來的額外計算量。并且引入空洞(dilated)卷積[14]增加網(wǎng)絡高層的感受野,空洞卷積示意圖如圖4所示。

圖4 空洞卷積結(jié)構(gòu)示意圖

空洞卷積可以在不增加計算量的同時擴大模型感受野,同樣采用3×3的卷積核,圖4(b)空洞卷積的感受野擴大到了5×5,而選取更大的rate,可以獲得更大的感受野,如圖4(c)所示,感受野達到了7×7??斩淳矸e可以有效地提高高層卷積層的感受野大小,但由于其在檢測中會省略掉一些圖像連續(xù)信息,對一些小目標的檢測產(chǎn)生影響,所以本文算法模型僅在高層加入了部分空洞卷積層。

2.4 本文算法結(jié)構(gòu)

本文算法卷積網(wǎng)絡模型采用類似MobileNet的網(wǎng)絡結(jié)構(gòu),模型第一層為步長為2的常規(guī)卷積層,對輸入圖像進行降采樣處理,并且增加初始特征圖通道;然后使用6層深度可分離卷積,提取初始圖像特征,其中將第六層的特征圖作為低層信息輸入至模型預測部分,以此增加模型對小目標的檢測效果,并使用兩層池化層進行降采樣;最后使用6層深度可分離卷積,進一步提取圖像信息,其中最后四層不進行降采樣,以保留物體位置信息,并且加入兩層空洞卷積來提高高層卷積層的感受野。模型結(jié)構(gòu)如圖5所示,圖中未注明的模塊均為深度可分離卷積模塊。

圖5 本文算法模型結(jié)構(gòu)圖

本文模型在所有卷積層后均使用批量歸一化(Batch Normalization)和ELU激活函數(shù),并且加入了L2正則化。本文網(wǎng)絡模型具體參數(shù)如表2所示,其中Size指卷積核尺寸×輸出通道數(shù),Stride指步長,本文模型使用了步長為2的卷積層來代替池化層。

表2 網(wǎng)絡模型結(jié)構(gòu)參數(shù)表

3 數(shù)據(jù)集與評價指標

3.1 數(shù)據(jù)集處理

本文主要研究目標是道路車輛,所以常規(guī)的多類別目標檢測數(shù)據(jù)集無法達到使用要求。因此本文搜集了Udacity無人駕駛道路環(huán)境數(shù)據(jù)集,并對數(shù)據(jù)進行了相關(guān)處理,使其更好地應用于無人駕駛算法訓練及驗證。Udacity無人駕駛數(shù)據(jù)集對連續(xù)視頻圖片進行了仔細的標注,主要有汽車、行人、信號燈等類別。整個數(shù)據(jù)集分為兩個子數(shù)據(jù)集,分別有9 423和15 000幅圖片,分辨率都是1 920×1 200像素,兩個子數(shù)據(jù)集的標注文件稍有不同。由于本文訓練需求,將圖像調(diào)整為480×300像素大小,并將數(shù)據(jù)集中的不同類別的車輛標簽如car(汽車)、track(卡車)等類別歸類為同一車輛類別,最終數(shù)據(jù)標簽只保留車輛類別。因為Udacity數(shù)據(jù)集標注不夠嚴謹,出現(xiàn)大量的重復標簽,所以對標簽信息進行處理,抑制掉重復標簽,最終刪除了約15%的標簽且只保留車輛類別。抑制條件為檢測所有的數(shù)據(jù)標簽,根據(jù)各個標簽框與其他標簽框的IoU值來進行篩選。IoU定義如下:

IoU=(a∪b)÷(a∩b)

(4)

式中:a、b為同一圖片的不同標簽框,IoU即為兩標簽框的交并集比值,當其大于某一閾值則認為兩個框是同一個物體的標簽(本文閾值設置為0.9)。處理前與處理后對比如圖6所示,最終數(shù)據(jù)集標簽保留了車輛類別標簽,并且去除了大量重復標簽,平均每幅圖片有6.6個車輛目標。

(a) 處理前

(b) 處理后圖6 數(shù)據(jù)集圖片處理結(jié)果圖

3.2 評價指標

目標檢測常用評價指標準確率(P)和召回率(R)來衡量模型檢測能力,其計算公式為:

(5)

(6)

式中:TP(True Positive)表示正確檢測的目標個數(shù);FP(False Positive)表示錯誤檢測的目標個數(shù);FN(False Negative)表示未檢測的目標個數(shù)。

準確率即查準率,衡量目標檢測模型對待檢測物體的分類能力,準確率越高,表示模型對于目標的分類能力越強。召回率即查全率,衡量模型對目標的檢測能力,召回率越高,表示模型對目標的分辨能力越強。

同時目標檢測還使用平均準確度AP值(Average precision)反映模型對某一類別的識別能力。平均準確率從準確率和召回率兩個方向同時衡量算法性能,是目標檢測模型的主要評價指標。

4 實驗與結(jié)果分析

4.1 模型訓練

對改進后的SSD算法進行訓練,初始學習率設置為0.001,衰減系數(shù)為0.000 5,同時Keras框架可以根據(jù)訓練情況來動態(tài)減小學習率,本文在訓練模型中監(jiān)控val_loss(驗證損失)參數(shù),當其經(jīng)歷10個epoch(訓練輪次)不下降后學習速率減半。同時利用數(shù)據(jù)增強,如隨機對圖像進行旋轉(zhuǎn)、翻轉(zhuǎn)、亮度等操作對數(shù)據(jù)集中的圖像進行增強。

本文實驗硬件環(huán)境:CPU為Intel I7- 6800K,內(nèi)存32 GB,顯卡為NVIDIA GeForce GTX1080Ti。軟件環(huán)境:操作系統(tǒng)ubuntu16.04,python 3.5,Keras框架。

最終算法訓練過程中損失值的收斂曲線如圖7所示,大約經(jīng)過230個epoch后,損失值基本穩(wěn)定。從此參數(shù)的收斂情況分析可知,改進的模型訓練結(jié)果比較理想。

圖7 訓練結(jié)果圖

4.2 改進部分驗證實驗

為了更好地體現(xiàn)改進部分的效果,本文通過控制變量的方法,對于初始模型不改變模型結(jié)構(gòu),逐步加入改進內(nèi)容,并計算模型AP值。其中,IoU閾值設置為0.5,即只有置信度大于0.5檢測結(jié)果被認為是正確的。

實驗結(jié)果可知,使用基礎(chǔ)模型結(jié)構(gòu)的算法AP值僅為26.07%,而使用K-means算法對模型預設參數(shù)進行優(yōu)化可以有效提升模型對車輛目標的檢測效果,AP值提升至36.27%。繼續(xù)加入空洞卷積以及高層不降維結(jié)構(gòu)均可以有效提高模型檢測效果,最終模型的AP值達到58.01%。由此實驗可以有效證明本文的改進部分可以有效提高模型檢測效果。

4.3 對比實驗與結(jié)果分析

首先分別使用原始SSD算法與改進算法對Udacity數(shù)據(jù)集進行訓練與驗證,計算其對目標的準確率和召回率。

實驗測試集一共有4 750幅道路環(huán)境圖片,共有30 992個待檢測目標,使用兩種目標檢測算法在該測試集進行測試,實驗結(jié)果如表3所示。

表3 不同算法目標檢測結(jié)果的對比

與原始SSD算法相比,本文改進算法對于車輛目標的檢測準確率由76.86%提高到81.19%,召回率由50.28%提高到61.56%。從這兩項指標來看,本文算法的檢測結(jié)果均優(yōu)于原始SSD算法。

在Udacity數(shù)據(jù)測試集上分別使用原始SSD算法與本文改進算法比較車輛目標的平均準確度。計算結(jié)果如圖8所示。

(a) SSD算法[5]

(b) 本文算法圖8 不同算法AP曲線對比圖

由圖8的AP曲線可以看出,本文算法在召回率達到0.6之后準確率才有明顯下降,而原始SSD算法在召回率達到0.5之后就開始有明顯下降趨勢,這說明本文算法相比于原始SSD算法在達到相同準確率條件下召回率更高,也就意味具有更強的檢測能力。最終本文算法對車輛目標檢測的平均準確度為58.01%,原始SSD算法僅為46.65%。

選取Udacity數(shù)據(jù)測試集中的部分場景圖片,分別使用本文算法與SSD算法進行對比實驗,對比檢測結(jié)果如圖9所示。

(a) 真實標簽 (b) 本文結(jié)果 (c) SSD結(jié)果圖9 Udacity數(shù)據(jù)集測試實驗結(jié)果對比圖

可以看到,本文算法在強光條件以及陰影條件下都可以有效地完成車輛檢測。第三列中的虛線框表示SSD算法漏檢的目標,由此可以看出本文算法對于一些特殊橫縱比的車輛目標的檢測結(jié)果明顯優(yōu)于原始SSD算法。

最后本文對比了兩種算法的實時性,實驗條件為GPU:GTX1080ti,通過Python腳本來對整個測試集的圖片進行檢測,最終求出單幅圖片平均耗時和每秒傳輸幀數(shù)。實驗結(jié)果如表4所示,本文算法在檢測速度上要優(yōu)于SSD算法。

表4 不同算法目標檢測性能的對比

5 結(jié) 語

目前主流的目標檢測算法大都需要高性能顯卡來輔助計算,難以部署至無人駕駛車輛。本文提出的改進算法使用高層特征圖不進行降采樣的模型結(jié)構(gòu),保留待檢測物體的位置信息,加入空洞卷積提高模型感受野,提高了本文算法對于小目標的檢測和定位能力。同時使用輕量化模型結(jié)構(gòu),削減了模型卷積層數(shù),并使用深度可分離卷積層來替換原始標準卷積層降低參數(shù)量,使得檢測速率大大提高。最終實驗結(jié)果表明,本文算法對車輛目標檢測的平均精準度達到了58.01%,檢測速度達到了86.26幀每秒,相比原SSD算法有較大提升。本文算法也可以方便部署在無人駕駛車輛的低功耗設備上。但是本文僅實現(xiàn)了道路車輛的實時目標檢測,下一步工作將實現(xiàn)多類別的道路環(huán)境目標檢測,進一步提高模型的檢測能力。

猜你喜歡
高層標簽卷積
高層動態(tài)
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
無懼標簽 Alfa Romeo Giulia 200HP
車迷(2018年11期)2018-08-30 03:20:32
不害怕撕掉標簽的人,都活出了真正的漂亮
海峽姐妹(2018年3期)2018-05-09 08:21:02
基于傅里葉域卷積表示的目標跟蹤算法
某超限高層結(jié)構(gòu)設計
江西建材(2018年4期)2018-04-10 12:36:56
標簽化傷害了誰
高層樓宇滅火裝備
太空探索(2015年9期)2015-07-12 12:54:45
基于多進制查詢樹的多標簽識別方法
計算機工程(2015年8期)2015-07-03 12:20:27
临安市| 卓尼县| 五指山市| 旬阳县| 庄浪县| 息烽县| 德州市| 海伦市| 阿拉善盟| 延安市| 华安县| 永平县| 黎城县| 天台县| 信宜市| 旬阳县| 赣州市| 卢氏县| 辛集市| 原阳县| 隆安县| 河东区| 康乐县| 商洛市| 罗平县| 会泽县| 肇源县| 康平县| 从江县| 桑植县| 永丰县| 沙田区| 德兴市| 会宁县| 巩留县| 中山市| 皋兰县| 兴海县| 容城县| 上蔡县| 天等县|