鮑先富,強贊霞,李丹陽,楊 瑞
(中原工學院,河南 鄭州 450007)
隨著社會車輛的快速增多,道路交通變得愈加復雜。為了提高道路安全,避免人為駕駛失誤造成不必要的交通事故,越來越多的研究學者開始對無人駕駛領域進行研究,其中包括目標識別在內的計算機視覺任務。在車輛行駛過程中,針對汽車、行人等關鍵目標的識別與檢測任務對車輛安全行駛和避障有著舉足輕重的作用,得益于近些年來深度學習的快速發展和硬件算力的巨大飛躍,基于深度學習的目標檢測算法取得的檢測效果受到各方學者的青睞。該文針對無人駕駛領域已有的關于車輛和行人的檢測和識別任務進行優化,針對車輛密集場所提高模型檢測精度,檢測算法以基于YOLOv3[1]目標檢測模型對目標檢測框架進行優化,其中的改進主要為:(1)對Darknet-53[2]主干網絡中的殘差模塊和基于步長為2的卷積下采樣方法進行改進;(2)為提升原YOLOv3目標檢測網絡對于不同尺度目標的檢測能力,該模型在原模型的基礎上加入自適應空間特征融合模塊(ASFF),在提升對不同目標尺度包容能力的同時提升網絡的檢測能力,降低對關鍵目標的漏檢率;(3)實驗在PASCAL VOC2007和PASCAL VOC2012數據集[3]上進行對比測試,取得了比原始YOLOv3檢測框架精度高12%的檢測效果,且對改進后主干網絡的推理速度沒有顯著影響。
傳統的目標檢測算法多是基于設計手工特征,通過觀察待檢目標進行人為設計特征學習方式,其算法檢測過程主要分為區域選擇、特征提取和分類器分類三個步驟。區域選擇一般通過滑動窗口的方式對圖像區域進行遍歷,其中滑動窗口的大小及長寬與檢測模型的檢測精度與速度密切相關。傳統特征提取算法主要包含SIFT[4]、HOG[5]等,這種傳統算法對于檢測目標的多樣性、光照強度、背景的復雜性具有較差的魯棒性。
自2013年以來,深度學習得到迅速發展和廣泛研究,其中基于深度學習的目標檢測算法分為:區域法和回歸法。基于區域提議方面的目標算法如Faster RCNN[6],由于實時檢測效果不夠理想,無法用于無人駕駛和檢測等領域。在基于回歸的單階段目標檢測算法中,張海濤等學者[7]基于SSD算法[8]引入注意力機制和擴大感受野的方式,增強高層特征圖所包含的高級特征信息,實現檢測效果的提升,但是其總體精度仍然較低;Redmon等學者[9]在YOLOv2的基礎上結合ResNet、特征金字塔等思想提出YOLOv3算法,該算法在實時性和檢測精度方面得到廣泛提升,但是在小目標和目標密集環境中存在漏選和目標重寫現象;顧恭等學者[10]在YOLOv3的基礎上通過增加主干網絡輸出特征圖數量,增加對不同尺寸目標的檢測能力;Bochkovskiy A等[11]在綜合許多已有學者研究成果的基礎上,通過組合不同的優化技巧對YOLOv3進行優化,使其精度達到新的高度。
綜合當今研究的優勢與不足,該文以YOLOv3目標檢測網絡為基礎作進一步改進,選擇YOLOv3目標檢測網絡基于如下原因:(1)YOLOv3為單階段目標檢測網絡,在實際檢測應用中能夠達到實時檢測效果;(2)為了單獨分析優化方法的效果,避免受YOLOv4中的多優化方式影響,單獨分析文中優化方法的優劣,所以不使用最新的YOLOv4作為基準網絡比較;(3)YOLOv3目標檢測模型對于密集、多尺度目標存在漏選特點、密集目標檢測回召率低等問題,使用該優化手段驗證對YOLOv3的改進程度和效果。
YOLOv3[1]是Redmom等學者于2018年提出的單階段目標檢測網絡,該算法主干網絡結構為Darknet-53[2],如圖1所示。該算法結合殘差網絡、特征金字塔多尺度檢測等一系列優秀的網絡設計思想,能夠達到較好的檢測效果和幾乎實時的檢測速度。主干網絡Darknet-53引入了ResNet[12]網絡模型中的殘差單元并進行重新組合,主干網絡中的殘差單元將傳遞的特征圖依次進行卷積核為3×3、步長為2的卷積操作和下采樣處理,再依次進行卷積核為1×1、步長為1,卷積核為3×3、步長為2的卷積處理,之后再與輸入特征相加,由此組成殘差單元。主干網絡Darknet-53通過殘差單元堆疊、卷積和下采樣處理得到不同尺度的特征圖,并通過上采樣和卷積處理結合不同尺度的特征圖,形成特征金字塔結構,從而實現不同尺度目標的檢測,有效避免由于網絡深度過高而造成的梯度消失問題。

圖1 Darknet-53結構
基于YOLOv3目標檢測框架和最新的目標檢測算法思想,該文以主干網絡DarkNet-53[2]為基礎對網絡結構進行修改,重新優化其中的殘差單元并引入組卷積和通道洗牌技術。組卷積技術是由Cohen T等學者[13]提出,主要是對輸入的特征圖進行通道分組,然后對每組特征圖分別進行卷積操作,如圖2左為傳統卷積技術,右為分組卷積技術。在分組卷積中,若輸入特征圖的大小為C×H×W,輸出的特征圖數量為N,如果要分為G個分組,則每組輸入特征圖輸入通道為C/G,每組輸出特征圖的數量為N/G,每個卷積核尺寸為C/G×K×K。假設卷積核的總數仍為N,每組卷積核為N/G,由于卷積核只與同組的輸入特征圖進行卷積操作,每個卷積組的總參數量為C/G×N×K×K,所以由計算對比可知,分組卷積比傳統卷積在參數量上減少為原來的1/G,其組操作如圖2右圖所示。分組1的輸出特征圖數量為2,使用2個卷積核,每個卷積核的輸入通道數為4,分組中每個卷積核計算所用通道數與輸入特征圖通道數相同,卷積核只和同組的輸入特征圖做卷積操作,而不與其他組的輸入特征圖做卷積操作。

圖2 普通卷積與分組卷積示意圖
YOLOv3網絡模型采用傳統卷積和深度可分離卷積(depth separable convolution,DSC)進行特征提取和特征篩選,其中可分離卷積對網絡結構存在性能瓶頸[14],如果直接在通道組內進行逐點卷積(point wise convolution,PWC),會導致各個通道內的信息不能進行相互流通交流。為了解決瓶頸問題,文中對主干網絡結構引入通道洗牌技術(channel shuffle,CS)[15]。通道洗牌技術[16]是一種組內卷積和整組卷積的折中解決方案,通過組合3×3和1×1卷積的方式進行深度可分離卷積。假設輸入的特征圖大小為h×w×c1,輸出的特征圖為h×w×c2,此處進行1×1逐點卷積的浮點運算量為:
F=h·w·c1+h·w·c2
(1)
由公式(1)知:當c1×c2遠大于9時,可以發現其可分離卷積的計算量增長主要在1×1逐點卷積上,引入分組卷積后,在組內進行1×1逐點卷積,對于分成g組的分組卷積的計算量為(FLOPs):
(2)
對比公式(1)和公式(2)可以發現,通道內分組后再進行卷積可以有效降低逐點卷積的計算量,同時為了解決深度可分離卷積的各特征圖通道之間信息溝通不暢的問題,檢測模型引進了通道洗牌技術。如果分組的特征圖尺寸為w×h×c1,其中c1=g×n,g表示分組卷積過程中的分組數,進行通道洗牌的操作如下:(1)將特征圖展開成g×n×w×h的四維矩陣,此處將w×h用s表示;(2)將g×h×s的矩陣分別對g軸和n軸進行轉置操作后,把得到的轉置結果矩陣進行平鋪,最后使用卷積核為1×1的組卷積操作,如圖3所示,先將得到的特征圖通道數目分為9個相同的通道數,并將得到的9個通道集合順序打散,將其與對應卷積核進行卷積操作后,將得到的特征圖恢復到開始之前的張量結構。

圖3 分組卷積和通道洗牌
深度卷積神經網絡如ResNet[14]和DenseNet[15]等類型的復雜網絡模型推理速度較慢,不能滿足實時檢測需求,為了更好地在移動設備上運行,模型設計需要考慮模型的參數規模和移動設備的內存大小。Ma N等學者結合Shufflenet和Mobilenet設計思路,提出了關于輕量級網絡的設計觀點[16],其中輕量級的神經網絡應當符合如下設計準則:(1)使用輕量級網絡模型中的深度可分割卷積(depthwise separable convolutions,DSV),在輸入通道和輸出通道采用相同通道大小的情況下可以最小化內存訪問量;(2)過量使用組卷積會增加模型的內存訪問量;(3)對于Inception類網絡的“多路”結構,會導致網絡結構的碎片化并降低網絡模型并行度;(4)網絡模型中的元素級操作雖然有較大的時間開銷,但具有很大的作用,能提升特征的可代表性。根據這四條輕量級網絡設計原則,文中對主干網絡DarkNet-53中的殘差單元進行修改,具體改進結構如圖4所示。

(a)ResNet殘差單元 (b)改進的殘差單元結構 (c)改進的下采樣方式
圖4 改進結構
原YOLOv3模型中所采用的主干網絡DarkNet-53的殘差單元如圖4(a)所示,在該結構單元采用逐元素操作相加方式(Add)對兩分支信息進行整合,這樣的元素級操作會增加主干網絡模型計算量[16]。如圖4(b)所示,改進后的殘差結構將其更改為通道連接操作(Concat),同時為增加各通道的信息交流,在結構中加入通道洗牌操作,先將輸入的網絡特征圖分為c′和c-c′,為了符合Ma N提出的網絡設計規則[16],一般c′=c/2。其中圖4(c)左網絡分支作為輸入特征圖的同等映射,對輸出特征圖進行復制,右分支對輸入特征圖連續進行3次卷積操作,令其輸入輸出通道數相等,對左右兩分支進行通道連接操作(Concat),并進行通道洗牌以保證殘差結構和特征圖內各通道的信息交流,舍去原網絡模型中使用步長為2的卷積下采樣方式,改為圖4(c)所示的下采樣方式,以此避免原特征圖中的信息丟失,并對其進行特征篩選和深加工。
為了充分利用高層特征的語義信息和底層特征的細粒度特征,文中結合基于特征金字塔(feature pyramid networks for object detection,FPN)思想改進而來的自適應空間特征融合金字塔(adaptive spatial feature fusion pyramid,ASFF)[17]。ASFF是一種特征混合的方法,可以在空間上學習其他尺寸特征圖的特征信息,并保留有用的特征信息。對于待融合的特征圖后的特征圖信息,網絡使用卷積操作將其他尺度大小的特征圖進行融合,此時通過使用上采樣和1×1卷積進行通道變換,將尺寸需要調到相同的大小,然后進行加權,通過訓練學習找到最好的參數組合。在每一個特征空間位置上,不同的特征會被自適應融合,如果有矛盾信息,通過訓練可通過小權重參數將其過濾掉。ASFF具備很多的優點,如實現成本低,幾乎不增加模型推理時間,對一般的主干網絡模型也具備一定的泛化能力,適用于類似YOLOv3等一系列具有特征金字塔結構的One-Stage目標檢測器。針對YOLOv3中提取的3個不同尺寸的特征圖,文中通過將三個不同尺度和權重的特征圖進行結合,將特征金字塔結構進行修改,有效提升了對不同尺寸目標的檢測精度,在一定程度上解決了模型的漏檢問題。

圖5 混合特征金字塔模型
針對來自不同層的特征進行融合,每一層有它對應的權重系數。為了確保在融合時不同層輸出的特征和通道數是相同的,當特征圖尺寸不相同的時候可以通過上采樣或者下采樣來進行調整,其中權重系數是由預定義尺寸的特征圖經過1×1卷積得到的,其各權重矩陣中權重因子的累加和為1,權重系數在[0,1]之間,特征融合的公式如(3)所示:
(3)
基于YOLOv3進行改進,文中在主干網絡基礎上對網絡殘差單元和下采樣方式進行優化,并將提取到的特征圖結合ASFF模型進行混合特征提取,殘差單元改進與組卷積、通道洗牌相結合是針對主干網絡的改進,ASFF是針對特征檢測層的特征提取優化,整體目標檢測框架是基于YOLOv3進行優化而來,如圖6所示。其中Stage2模塊由圖4(b)所示的改進殘差單元組成,且下采樣方法如圖4(c)模塊所示,Stage2部分是由改進的殘差單元重復4次得到的,Stage3由改進殘差單元重復8次得到,同理Stage4也是由改進后的殘差單元重復8次組合得到。由此,改進后的主干網絡(restruct network,RN)結構如圖6所示。

圖6 改進后的主干網絡模型
設置目標檢測的損失函數是為了讓候選框坐標、置信度、分類損失三者之間達到平衡,如果簡單地將各個損失相加,會存在以下問題:(1)不同維度的分類損失同等重要,簡單將其相加會將二者視為同等重要,這種做法不夠合理;(2)大目標物體的定位損失偏大,小目標物體的定位損失偏小,直接進行損失相加,會導致網絡發散無法收斂。為緩解這些問題,將各類損失進行加系數和變形的方式進行改寫,損失函數如公式(4)所示:

(4)

在訓練開始階段,實驗對模型進行如下設計:(1)對沒有目標的候選窗口的置信度損失賦予更小的損失權重,并記為λnoobj,在數據集PASCAL VOC中取0.5;(2)為了使模型更加重視有目標的單元格,并記為λcoord將這些損失錢賦予更大的權重,在PASCALVOC2007和2012數據集上訓練時設置為5;(3)侯選窗的置信度和類別損失初始設置為1,對不同大小侯選框進行預測,較大的侯選窗置信度預測存在偏大問題,為避免小候選窗預測值偏低的情形,將候選窗高寬取平方根代替原本的寬高值。
主干網絡是以DarketNet-53為基礎進行改進得到,整個檢測模型的優化效果是通過VOC2007和VOC2012數據集進行驗證和比較。在實驗部分,通過設置相同的初始化變量和超參,使用不同的方法對整個模型結構進行測試,通過不同的實驗結果對模型優化程度進行說明,并將改進后的目標檢測架構運用于車輛和行人的檢測過程,進行密集目標檢測測試。實驗環境:在Windows10系統環境下,使用16 GB RTX2080ti顯卡進行測試,深度學習框架采用Tensorflow-GPU1.4、CUDA10.2。
此次實驗使用的數據集是作為基準數據集之一的Pascal VOC2012和Pascal VOC2007,該數據集在目標檢測、圖像分割網絡對比實驗與模型效果評估中得到廣泛應用。Pascal VOC數據集主要是針對視覺任務中監督學習提供標簽數據,共有二十個類別數據,主要分為四個大類別,如人、常見動物、交通車輛、室內家具用品等。VOC數據集主要由Annotation、ImageSets、JPEGImages、SegmentationClass文件夾組成。Annotation文件夾是XML文件,是對JPEGImages文件中每個圖片的標注信息,一張圖片對應一個XML文件;ImageSets文件存放的是txt文件,這些文件將圖片切分為各種集合;JPEGImages文件夾存放該數據集所有的圖片;SegmentationClass文件夾適用于語義分割任務。文中主要使用VOC數據集進行目標檢測,通過將改進后的網絡模型與原模型效果進行對比,同時為了加大數據集容量,將VOC2007和VOC2012的數據集結合進行綜合訓練,并對訓練后的網絡模型進行評估。
文中分別對修改后的主干網絡(RestructNet)和混合特征金字塔模型(ASFF)進行測試,通過與YOLOv3的實驗結果進行對比,分別在平均精度(MAP)、總體損失(Total Loss)和每秒傳輸幀數(FPS)指標上驗證不同優化方法的檢測效果和處理速度。實驗結果如表1所示,修改后的主干網絡和自適應特征混合模型組合的方法對于模型檢測精度有明顯優化效果。由實驗結果可知,對原殘差單元的修改和主干網絡的重構對檢測精度有明顯的提升效果,在精度方面提升4.36%,其中混合空間特征金字塔模型的使用在精度方面提升3.0%,綜合精度提升8.31%,在不影響檢測速度的情況下,實現檢測模型精度方面的優化。

表1 實驗結果對比
為了與主流One-Stage目標檢測模型進行對比,文中在相同實驗環境和訓練參數下,與最新YOLOv4和其他YOLO系列目標檢測算法進行對比,分別比較推理速度(FPS)、在VOC2007+2012數據集上的測試精度(MAP)、網絡參數數量(Parameter)等指標,進一步說明該網絡模型的優化效果。通過實驗可知,結合殘差網絡的更改和混合特征融合金字塔優化后的網絡結構,大體可以達到和YOLOv4的精度,且模型推理速度及網絡參數數量較YOLOv4減少1.21 MB,整體精度較YOLOv3提高8.17%。

表2 與目前流行的One-Stage算法對比
在YOLOv3模型中,將特征圖直接輸入主干網絡結構的殘差單元,用分支結構將卷積處理的特征圖與原特征圖進行相加,這樣雖避免梯度爆炸和梯度消失問題,但新生成的特征圖包含了許多不必要的背景信息。通過使用圖4(b)所示的殘差單元進行改進,同時對兩個網絡分支進行信息處理,由實驗結果可知,檢測模型精度提升了8.07%。
由Hurtik P提出[18],原YOLOv3網絡模型對于密集目標存在漏選和標簽重寫問題[1],為了解決該問題,實驗基于數據驅動的金字塔特征融合方式,該方法通過學習在空間上過濾沖突信息以抑制梯度反傳時的不一致性,以此增加待檢目標尺度的容納性,同時降低推理開銷。通過使用統計的日志文件繪制訓練損失圖,如表2所示,使用ASFF的模型在測試集上的驗證損失明顯低于原YOLOv3模型的訓練損失,且比原模型具有更快的收斂速度,借助ASFF和組卷積優化殘差單元組合的方式,在VOC數據集上實現了60.28%的平均精度以及43 FPS的運算速度。為了更好地進行對比,訓練均未采用預訓練的主干網絡權重,因為改進的網絡結構沒有預訓練權重可供參考。

圖7 模型訓練收斂及精度提升變化
通過對殘差單元、下采樣方式進行修改,然后和ASFF進行組合得到新的檢測模型,通過實驗進行綜合測試,新的檢測模型可以在VOC2007和VOC2012得到60.28%的檢測精度。由圖7對比所示,為了發揮One-Satge目標檢測模型實時檢測的優勢,在不影響改進模型精度的條件下,主干網絡(beckbone network,BN)和檢測網絡(neck network,NN)對不必要的卷積層進行刪除,可明顯看出新模型較原YOLOv3模型,關于平均精度的提升和訓練的快速收斂情況,在每張圖(416×416)的檢測時間仍然可達43 ms幀率,與原YOLOv3模型相比,仍然可以達到實時性的檢測效果。
由實驗證明,通過引入組卷積和通道洗牌技術對殘差單元進行修改,和自適應空間特征混合(ASFF)組合的方法,可以取得明顯的優化效果。為了驗證在實際環境中改進后的目標檢測模型的檢測效果,文中將數據集COCO2017內的關于無人駕駛相關的檢測類別進行分離,對分離的數據集使用K-means方法產生錨框并進行矛框大小設置。實驗對分離后的數據集使用K-means方法進行錨框大小選取,通過聚類分出各個錨框的類別,然后分別對各個類別的錨框寬高取均值,得到目標的候選錨框大小分別為(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。改進后的模型在分離的數據集上進行訓練得到的檢測效果如圖8、圖9所示,訓練后的模型在密集車流下進行測試,改進后的目標檢測模型可以取得理想的檢測效果且能夠達到實時的檢測速度,原YOLOv3模型存在的密集目標漏選和標簽重寫現象[18]也得到改善。

圖8 YOLOv3測試效果

圖9 改進模型的測試效果
文中以YOLOv3為基礎進行改進,得到一種單階段實時目標檢測模型,旨在針對無人駕駛、安全監控等領域進行目標檢測和識別。首先,引入組卷積和通道洗牌技術,并對原Darknet-53網絡的殘差結構進行優化改寫,為了更多地保留特征圖的有效信息,使用了全新的下采樣方式對特征圖進行尺寸縮減;其次,為了克服原YOLOv3檢測模型對密集目標存在的漏選和標簽重寫問題,使用自適應特征混合金字塔對輸出的特征圖進行空間特征混合處理,加強不同尺寸的檢測特征圖之間的信息交流,以此加強對密集目標的檢測能力;最后,使用PASCAL VOC2007和VOC2012進行測試,改進后的目標檢測模型相較于YOLOv3提升了8.17%,取得了和YOLOv4大體相同的精度,并且可以達到實時的檢測速度。通過實驗進行測試,該模型可以有效地運用于交通監測和交通目標識別應用中,具有很強的應用性。