胡明娣 許天倚 張中茂 楊 潔
(西安郵電大學通信與信息工程學院 陜西 西安 710121)(電子信息現場勘驗應用技術公安部重點實驗室 陜西 西安 710121)(陜西省無線通信與信息處理技術國際合作研究中心 陜西 西安 710121)
在偵破案件中,公安人員查取汽車作為犯罪工具的作案痕跡是調查犯罪事實的有力信息和證據。目前,車牌自動識別技術與市場需求的結合已很成熟[1-2]。然而,當車輛被用作犯罪工具時,車牌必然會遭受污損、遮擋和套牌等方法處理而無法被識別,此時就需要對車輛本身進行檢測。公安人員刑事偵查時獲取車輛圖像的渠道主要有兩個:一是高空架設的交通攝像頭,二是車輛行車記錄儀。犯罪嫌疑人駕駛車輛勢必會有意識避開交通攝像頭,因此可獲取來自交通攝像頭的車輛圖像資料中,絕大部分嫌疑車輛呈現遠距離小目標特點,并且圖像拍攝時受光照、環境及噪聲等影響,而行車記錄儀獲取的圖像存在拍攝質量不穩定的情況。
基于深度學習完成目標檢測任務的算法大致可以分成一步算法和兩步算法兩大類。兩步算法主要為R-CNN[3]系列算法。具體地,R-CNN采用卷積神經網絡提取圖像特征,使用選擇性搜索方法提取候選框,創造性地將CNN用于目標檢測相關任務中,R-CNN系列的巔峰之作Faster RCNN[4]在PASCAL VOC2007測試集上的mAP達到73.2%,但是兩步完成目標檢測任務的算法受到建議框提取階段計算復雜度的限制,與實時檢測間仍存在巨大鴻溝。為了平衡檢測效率與精度,一步目標檢測算法被提了出來。此類算法可以直接回歸得到檢測物體的坐標位置和分類得分,主要包括YOLO系列算法和SSD[5]算法。但由于SSD的網絡層中只有底層的conv4_3用于檢測小目標,小目標特征信息獲取不足,因此SSD無法有效檢測小目標。YOLOv1開創性地將目標預測框的坐標和寬高類似分類網絡那樣預測出來,在PASCAL VOC2007測試集上的mAP達到78.6%。但是YOLOv1因預測框個數限制,不能很好適用于密集型目標檢測和小目標檢測。YOLOv2將骨干網絡替換為Darknet-19[6]并在v1的基礎上引入批量歸一化[7]和預設框機制[8]等組件優化模型,顯著地提升了檢測速度,但因骨干網絡限制檢測精度并不理想。YOLOv3[9]集v1、v2所長并利用更深層的Darknet-53網絡提取圖像特征,獲得了目前最好的檢測精度與速度的平衡。
針對刑偵領域進行車輛目標檢測這一應用場景的特殊性,需要在實時檢測的同時確保其準確性,因此本文以YOLOv3目標檢測算法為基礎,針對其遠距離小目標檢測效果不好的問題,提出了反卷積YOLOv3算法。該算法對Darknet-53輸出的小尺度特征圖反卷積后與大尺度特征圖進行特征融合,提高了對小目標的表征能力,并用add代替concat進行特征融合增加了描述圖像每維度信息量;采用K-means++算法聚類分析自建車輛目標數據集后重設預設框,并通過二次訓練優化模型關鍵參數,得到更適用于刑偵領域的車輛目標檢測模型。在公安部重點實驗室現場勘驗圖片庫中與YOLOv3、SSD、Faster RCNN算法進行對比實驗,結果表明其精確度和召回率相較上述三種算法均有提升。
YOLOv3的骨干網絡是Darknet-53,從第0層一直到74層,由卷積塊(CBL)和殘差塊(res)[10]組成,卷積塊由卷積層(C)、批歸一化和激活函數(Leaky ReLU)三部分組成,其殘差塊來源于殘差神經網絡(Resnet)[11]的思想。每個殘差塊由多個殘差單元組成,通過輸入與兩個CBL單元進行殘差操作構建了殘差單元,有效解決了網絡層數過深可能導致梯度消失的問題。從75到105層為YOLO網絡的特征交互層,分為三個尺度,在每個尺度內通過卷積核的方式實現不同尺度間特征的交互,作用類似于全連接層但是通過卷積核(3×3和1×1)的方式實現了特征圖之間的局部特征交互,具體YOLOv3網絡結構圖如圖1所示。

圖1 YOLOv3網絡結構圖
YOLOv2采用K-means[12]聚類得到預設框的尺寸,YOLOv3延續了這種方法,為每種尺度設定3種預設框,總共聚類出9種尺寸的預設框。詳細特征圖與預設框的相關匹配如表1所示。

表1 特征圖與預設框匹配表
反卷積YOLOv3算法分為訓練階段和測試階段。訓練階段:用自建的具有更豐富車輛目標標注的數據集對預訓練后具有初始參數的卷積神經網絡進行二次訓練,得到車輛目標檢測模型;測試階段:在公安部重點實驗室現場勘驗圖片庫中測試得到檢測結果。反卷積YOLOv3的車輛目標檢測流程如圖2所示,整個流程包含以下四個步驟:(1) 設定好改進的YOLOv3算法網絡結構;(2) 利用COCO數據集對網絡進行預訓練,得到預訓練參數;(3) 利用自建數據集,對預訓練模型進行二次訓練,得到最終的車輛目標檢測模型;(4) 采用公安部重點實驗室現場勘驗的圖片對模型進行測試,得到檢測結果。

圖2 反卷積YOLOv3的車輛目標檢測流程
本文主要針對YOLOv3面向刑偵領域車輛目標檢測時對遠距離小目標檢測效果不好的問題進行改進。首先根據小目標特征信息不足問題對網絡結構進行改進;然后利用K-means++聚類分析自建數據集后重設預設框,使得模型在特定數據集上泛化能力更強;最后利用自建具有更豐富車輛目標標注的數據集訓練模型優化關鍵參數,最終得到更適用于刑偵領域的車輛目標檢測模型。
2.2.1網絡結構設計
通過對原始圖片進入YOLOv3神經網絡輸出的特征圖可視化分析,如圖3所示。可以看出,小目標檢測精度不高的原因在于高層特征圖的語義信息被削弱,也就是說52×52特征圖的語義信息不強。

圖3 原始圖片可視化分析
根據分析結果采取重復利用13×13和26×26特征圖的語義信息來提升特征圖對小目標的表達。首先,對原網絡輸出得到的13×13特征圖進行2倍的反卷積后與26×26輸出的特征圖進行特征融合,再將融合后的特征圖進行2倍的反卷積后與52×52的特征圖進行特征融合以得到更多小目標的特征語義信息,并將原網絡中上采樣[13](UNSampling)的方式替換為反卷積[14](Deconvolution)。上采樣是提高圖像分辨率的技術,常用的方式是重采樣和插值,具體為將輸入圖片設定為一個需要的大于原圖片的尺寸,使用如雙線性插值等插值方法對空白像素點進行插值來完成上采樣過程,如圖4所示。反卷積是一個恢復特征圖像素的過程,具體完成方式分為轉置卷積和空洞卷積。轉置卷積是將輸入圖像邊緣填充0,而空洞卷積如圖5所示,將原有的像素點,中間插入0,這樣可以還原更高像素的圖片。因此本文選擇空洞卷積的方式。可以看出,圖5中輸入特征圖尺寸為3×3,輸出特征圖為5×5,步長為2,填充為1,卷積核尺寸為3×3,可以得出反卷積過程中特征圖的輸入輸出關系如式(1)所示,其中:o為輸出,i為輸入,s為步長,k為卷積核大小,p為填充。可以看出,相比于上采樣的方法,反卷積不僅僅是臨近像素的填充,還多了一步參數學習的過程,可以在增大特征圖分辨率的同時,得到更充分的小目標特征信息。

圖4 上采樣示意圖

圖5 空洞卷積示意圖
o=s(i-1)+k-2p
(1)
除此之外,采用并行策略[15](add)代替系列融合[16](concat)來完成特征融合。add進行特征融合后描述圖像的維度并沒有增加,但每一維度下的信息量增加了,提高了描述圖像特征的信息量,顯然這對最終目標檢測是有益的。concat僅是通道數的合并,描述圖像本身的通道數增加了,而每一通道下的信息并沒有增加,concat每個通道對應著相應的卷積核。而add先將對應的特征圖相加,再進行下一步卷積操作,相當于增加了一個先驗信息,對應通道的特征圖語義類似,從而對應的特征圖共享一個卷積核。對于兩路輸入來說,如果是通道數相同且后面帶卷積的話,add等價于concat之后對應通道共享同一個卷積核。由于每個輸出通道的卷積核是獨立的,在只看單個通道的輸出時,假設兩路輸入的通道分別為A1、A2、…、Ac和B1、B2、…、Bc,C代表通道對應的卷積核。那么concat的單個輸出通道如式(2)所示(*表示卷積操作);add的單個輸出通道如式(3)所示。通過計算公式可以看出add的計算量要比concat的計算量小得多。
(2)
(3)
綜上所述,反卷積YOLOv3網絡結構如圖6所示。

圖6 反卷積YOLOv3網絡結構圖
2.2.2K-means++聚類重設預設框
目標檢測通過預設框去逼近標注框來準確檢測出圖像中的目標。從YOLOv2開始引入了Faster RCNN的預設框機制,預設框是一組寬高固定的初始候選框,初始預設框設定的尺寸大小是否切合具體場景對檢測精度有較大影響。YOLOv2利用K-means聚類算法對數據集中的目標框的寬高進行聚類,獲得一組固定的預設框。YOLOv3原始預設框由COCO數據集聚類而得,與刑偵領域車輛目標大小存在差距,部分預設框的尺寸設置并不合理。因此在這里針對車輛目標數據集,采用K-means++聚類分析重設預設框,以提高檢測的準確率。K-means++對K-means進行改進,最大化聚類中心之間的距離,使得距離當前聚類中心最遠的點被選取的概率達到最大,從而減少初始聚類中心對最終聚類結果的影響。具體步驟如下:(1) 從所有數據列表中隨機選擇一個點作為第一個聚類中心;(2) 對于列表中的每一個點計算與最近中心的距離D(x);(3) 選擇新的聚類中心,選擇標準是D(x)越大,被選取作為聚類中心的概率越大;(4) 重復步驟(2)-步驟(3)選取k個聚類中心;(5) 后續步驟和K-means算法相同。采用平均重疊度(Avg IOU)作為目標k值設定是否恰當的評判標準,對自建數據集進行聚類分析,當平均重疊度趨于平穩時為最佳k值。聚類的Avg IOU目標函數為:
(4)
式中:B表示目標中心;C表示簇的中心;nk表示第k個聚類中心中樣本的個數;n表示樣本的總個數;k表示簇的個數;IIOU(B,C)表示簇的中心框和聚類框的交并比。
先讀取數據集中目標的寬W、高H(歸一化)作為待分類數據,根據實驗經驗設置初始化聚類中心點個數k為1~12。如圖7所示,隨著k值的增大,目標函數變化越來越平穩,選取平穩處的k值為預測框的個數9,此時對應聚類中心的寬和高分別為(12,10)、(19,16)、(26,22)、(32,29)、(42,34)、(55,43)、(80,52)、(139,78)、(291,173)。

圖7 k值與AvgIOU值關系圖
在目標檢測網絡中,底層網絡一般是用于識別顏色、輪廓、紋理等特征的基礎結構,顯然大部分問題都由這些相同的基礎結構組成,淺層的特征對于不同任務具有一致性,因此可以選擇凍結這些層。通過設置各層的是否訓練參數,即可控制是否凍結該層,從而節省訓練時間。針對新的數據集的特點,訓練較高的網絡層。
本文預訓練模型為Darknet-53,預訓練模型參數權重來自于Darknet-53在COCO數據集下的訓練結果。然后利用自建車輛目標數據集二次訓練模型,在模型訓練過程中,不斷調整網絡中的參數,使損失函數的值達到最小,完成模型訓練。
實驗基于Windows 10系統,顯卡為NVIDA GeForce GTX 1070Ti,顯存8 GB NVIDIA,采用Keras框架。在訓練過程中,采用小批量隨機梯度下降法,每36個樣本更新一次權重參數。為減少內存占用,多次實驗后最終決定將64個樣本分割成8個大小為8的子樣本來進行訓練,迭代次數為12 000次。采用動量系數使訓練過程加速收斂;為防止過擬合,設置權重衰減系數,其中動量和權重衰減分別配置為0.9和0.000 5,學習率初始為10-3,最低的最終學習率為10-4。
大型公開數據集(如VOC2012、COCO等)的圖像中目標分類較多,含有車輛目標的圖片較少,對車輛目標的描述不夠。因此為了訓練出更適應刑偵領域下進行車輛目標檢測的模型,需要制作數據集,具體步驟如下:(1) 通過互聯網搜集不同型號、不同外觀、不同角度拍攝的車輛圖片600幅,部分圖片示例如圖8所示;搜集自西安市長安區西安郵電大學立交橋上與西安市雁塔區長安中路立交橋上拍攝的道路圖片來模仿實際交通攝像頭角度所得的刑偵圖像并采集行車記錄儀的圖片共4 000幅,部分示例如圖9所示,由圖9(a)可以看出交通攝像頭角度拍攝的圖片遠距離小目標占比突出。(2) 利用圖像標注工具Labelimg對4 600幅圖片中所有車輛目標進行標注,具體方法是在圖像中框選出所有的車輛目標,標注圖片部分示例如圖10所示,并得到VOC格式的xml文件。(3) 將xml文件轉換為“標簽+X+Y+W+H”格式的txt文件。(4) 根據VOC數據集的目錄結構放置生成的文件。(5) 訓練中,隨機改變圖片的亮度、對比度、飽和度、色調,對圖片進行隨機剪切和鏡像處理進行數據增強。

圖8 同一款車不同角度拍攝的圖片

(a) 模仿交通攝像頭角度采集圖片部分示例

圖10 標注圖片部分示例
在面向刑偵領域進行車輛目標檢測時,精確度與召回率較之檢測效率更為重要,因此本文使用召回率(R)和精確度(P)[17]來衡量訓練得到的車輛目標檢測模型的性能。召回率與精確度的取值范圍均為[0,1],計算公式如式(5)和式(6)所示。測試數據集來自公安部重點實驗室現場勘驗圖片庫,包含高空交通攝像頭拍攝的圖片以及行車記錄儀拍攝得到的圖片共100幅(與訓練集不重合)。
(5)
(6)
實驗分為如下三個部分。
1) 對比相同場景下各種算法的檢測效果。利用上述車輛目標數據集分別對YOLOv3、SSD、Faster RCNN與本文算法進行訓練后測試對比檢測效果。YOLOv3與本文算法加載同樣權重Darknet-53預訓練模型。Faster RCNN是RCNN系列算法中效果最好的算法,也是最具代表性的兩階段法;SSD同樣是具有很強代表性的一階段法。本文將目標檢測轉換為二分類問題,即需要盡可能檢測圖片中存在的車輛,且沒有將其他目標檢測成車輛。因此從測試集中分五組,每組隨機選取10幅圖片,對圖片中車輛目標個數進行統計以便后續計算精確度與召回率。四種算法的召回率、精確度分別如表2和表3所示,四種算法的檢測效果對比圖如圖11所示。

表2 不同算法檢測精確度對比 %

表3 不同算法檢測召回率對比 %
YOLOv3利用更深層的Darknet網絡提取圖像特征,并參考SSD的優點而得出,在車輛目標檢測時相比SSD、Faster RCNN具有更高的精確度和召回率。本文在YOLOv3基礎上重復利用13×13和26×26特征圖的語義信息來提升特征圖對小目標的表達并對關鍵特征融合模塊進行替換,加強參數學習,進一步提高了精確度和召回率。從表2和表3可以看出,本文算法相比YOLOv3精確度提高了約4百分點,召回率提高了約5百分點。從四種算法的檢測效果圖可以看出SSD對小目標檢測效果不佳,Faster RCNN檢測效果稍遜于YOLOv3,圖11(b)黑色框為本文算法較YOLOv3多檢測出的兩個車輛目標。

(a) YOLOv3檢測效果圖 (b) 本文算法檢測效果圖
2) 采用不同改進點訓練網絡時的檢測效果。為了進一步驗證本文算法中不同改進點的有效性,本文分別使用不同的改進點對網絡進行訓練后測試。采用的改進點及訓練之后的檢測結果如表4所示。

表4 采用不同改進點檢測效果

續表4
通過對表4中7種不同改進點的對比,發現重復利用13×13和26×26特征圖的語義信息來提升特征圖對小目標的表達可以對精確度有約3百分點的提高,召回率有約4百分點的提高。通過對改進點1、6進行對比,可以發現通過重設預設框使模型對車輛目標數據集泛化能力更強和對特征融合模塊的替換提高參數學習量對精確度與召回率均有約1百分點的提高。通過采用不同改進點的實驗證明本文算法可以有效提高車輛目標檢測的精確度和召回率。
3) 不同實際條件下本文算法的檢測效果。從包含100幅圖片的測試集中挑選8幅不同實際條件(光線、車流量)下的圖片來測試本文算法所得車輛目標檢測模型的性能。
(1) 交通攝像頭角度拍攝的實際不同條件圖片檢測效果圖如圖12所示。

(a) 車流量大、光線條件良好 (b) 車流量大、光線昏暗
(2) 行車記錄儀拍攝的實際不同條件圖片檢測效果圖如圖13所示。

(a) 車流量大、光線條件良好 (b) 車流量大、光線昏暗
可以看出,本文在面向刑偵領域不同實際條件下進行車輛目標檢測均有良好的效果,精確度和召回率均滿足實際要求。綜合考慮,本文算法是一個有效的面向刑偵領域的車輛目標檢測算法。
本文通過反卷積的方式重復利用13×13和26×26特征圖的語義信息并替換關鍵特征融合模塊提高了網絡對小目標的表征能力,對車輛目標數據集聚類分析后重設預設框訓練模型,使模型在面向刑偵領域進行車輛目標檢測時具有更強的泛化性。實驗證明,該算法的精確度、召回率較YOLOv3均有提升。通過測試實驗表明訓練出的模型對不同車流量、不同光線下的實際刑偵領域場景均具有很好的魯棒性,但通過大量的測試實驗發現,車輛密集、光線條件等因素仍對檢測效果有很大影響。接下來需在訓練集著重加入車流量大、光線條件不足的圖片以進一步提高模型的準確率,降低其他因素對檢測效果的影響。