黃俊潔 陳念年 范 勇
(西南科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 四川綿陽 621010)
近幾年,隨著我國交通逐漸發(fā)達(dá),交通車輛種類繁多,其數(shù)量也在高速增長,對(duì)智能交通系統(tǒng)建設(shè)的需求日益增多。車輛目標(biāo)檢測(cè)是智能交通系統(tǒng)中的關(guān)鍵技術(shù),也是計(jì)算機(jī)視覺領(lǐng)域的熱點(diǎn)之一。由于在實(shí)際場(chǎng)景中車輛通常處于復(fù)雜環(huán)境里,如背景變化、目標(biāo)遮擋、陰影以及拍攝角度和高度不同導(dǎo)致的車輛自身形變和尺度變化等問題,都是目前車輛目標(biāo)檢測(cè)技術(shù)面臨的主要難題。
車輛目標(biāo)檢測(cè)技術(shù)是先通過特征提取方法獲得圖像中的特征,然后利用分類器對(duì)特征進(jìn)行分類,從而實(shí)現(xiàn)圖像中車輛的定位與識(shí)別。經(jīng)典的特征提取算法有HOG(Histrogram of Gradient)和SIFT(Scale-invariant Feature Transform)等,這些手工定義的特征被提取后,輸入到分類器進(jìn)行識(shí)別,常用的分類器有支持向量機(jī)(Support Vector Machine,SVM)和迭代器(AdaBoost)等?;诙喑叨茸冃尾考P退惴?Deformable Part Model,DPM)[1]是傳統(tǒng)檢測(cè)算法的代表,該算法將物體劃分成多部件,利用部件之間的聯(lián)系來描述物體,在目標(biāo)檢測(cè)上取得了良好的效果??但槴樀萚2]對(duì)可變性部件模型進(jìn)行了改進(jìn),減少模型參數(shù),提升了檢測(cè)速度,但是在遮擋情況下效果較差。傳統(tǒng)檢測(cè)算法主要是適應(yīng)某種特定的識(shí)別任務(wù),需要研究人員具有豐富的經(jīng)驗(yàn),進(jìn)行特征的篩選,其泛化性、魯棒性較差,難以有效解決實(shí)際的車輛檢測(cè)問題。
隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,引入深度學(xué)習(xí)方法的目標(biāo)檢測(cè)技術(shù)在精度和速度上得到了突破性的進(jìn)展。與傳統(tǒng)的手工特征相比,利用深度學(xué)習(xí)技術(shù)提取的特征具有更豐富的語義信息,對(duì)實(shí)際場(chǎng)景的干擾因素具有更好的魯棒性。目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)大致分為兩類,第一類為兩階段(two-stage)檢測(cè)方式,其代表算法為RCNN[3],F(xiàn)ast RCNN[4],F(xiàn)aster RCNN[5]等系列算法,該類算法需要先提取候選區(qū)域框,然后對(duì)候選區(qū)域的特征進(jìn)行分類,定位目標(biāo)的位置;第二類為一階段(single-stage)檢測(cè)方式,其代表算法為YOLO[6-8],SSD[9]等算法,該類算法將檢測(cè)任務(wù)簡(jiǎn)化為回歸問題,即在輸入圖像中多個(gè)位置上回歸出目標(biāo)的位置和類別,大大加快了檢測(cè)速度,增加了實(shí)時(shí)性。相對(duì)第二類算法,第一類算法具有精度上的優(yōu)勢(shì),但是只使用主干網(wǎng)絡(luò)的最后一層的單尺度特征圖進(jìn)行分類與定位,單一的感受野不能很好地適應(yīng)多尺度的目標(biāo),容易忽略小目標(biāo),造成小目標(biāo)漏檢。隨后出現(xiàn)的目標(biāo)檢測(cè)技術(shù)解決了遺留的問題。FPN[10](Feature Pyramid Network)算法通過引入特征金字塔,將不同層的特征組合成不同尺度的語義特征,以解決多個(gè)尺度上的檢測(cè)問題。MS-CNN[11]算法利用卷積神經(jīng)網(wǎng)絡(luò)每層具有不同感受野的特征圖的特性,對(duì)于不同的輸出層設(shè)計(jì)不同尺度的目標(biāo)檢測(cè)器,完成多尺度下的檢測(cè)問題。Florian等[12]提出了一種基于單目圖像檢測(cè)車輛并預(yù)測(cè)3D信息的框架Deep MANTA,能克服大的物體的大小變化,提供更高的準(zhǔn)確度,并保持高分辨率。深度學(xué)習(xí)的方法應(yīng)用于車輛檢測(cè)有諸多的優(yōu)勢(shì)和實(shí)際的應(yīng)用價(jià)值[13]。
大多數(shù)基于深度學(xué)習(xí)的車輛檢測(cè)算法都是通過圖像的全局特征進(jìn)行檢測(cè)識(shí)別,但在車輛種類繁多且其外觀極其相似的情況下,容易造成誤檢現(xiàn)象,而且隨著卷積層的不斷加深,算法對(duì)目標(biāo)的平移可變性逐漸減弱。本文針對(duì)處于復(fù)雜環(huán)境的多類車輛,提出一種融合全局特征和局部特征的檢測(cè)方法。通過特征金字塔構(gòu)建多尺度特征,進(jìn)而生成不同尺度的候選目標(biāo)區(qū)域;引入全局特征和局部特征,增加檢測(cè)網(wǎng)絡(luò)模型的平移可變性,使得算法對(duì)目標(biāo)尺度、遮擋等影響因素更具有適應(yīng)性。在UA-DETRAC數(shù)據(jù)集以及構(gòu)建的施工場(chǎng)景數(shù)據(jù)集上,與多種主流方法分別進(jìn)行對(duì)比實(shí)驗(yàn),從達(dá)到的各項(xiàng)性能指標(biāo)來看,本文方法具有更優(yōu)的檢測(cè)性能。
本文算法采用與Faster RCNN類似的兩階段(two-stage)檢測(cè)算法,主要由區(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Networks)生成候選區(qū)域框和Fast RCNN檢測(cè)器兩部分組成。整個(gè)處理網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。為了避免單尺度特征圖造成的漏檢現(xiàn)象,采用FPN算法提取的多尺度特征金字塔作為RPN的輸入,提高候選區(qū)域框的質(zhì)量。通過融合全局特征和局部特征進(jìn)行檢測(cè)任務(wù),其中全局特征包含圖像的上下文信息和整體結(jié)構(gòu)信息,而局部特征主要是提取目標(biāo)部件特征,并在特征圖中植入空間位置信息,增加目標(biāo)內(nèi)部的部件變化敏感性,可以解決出目標(biāo)的形變問題。最后使用加權(quán)融合的方式將兩部分特征結(jié)合,輸入到分類器中實(shí)現(xiàn)定位識(shí)別。
1.1.1 多尺度候選區(qū)域生成
卷積神經(jīng)網(wǎng)絡(luò)從低級(jí)層到高級(jí)層具有逐漸增強(qiáng)的語義信息,利用這種層級(jí)結(jié)構(gòu)可以構(gòu)建高語義的特征金字塔網(wǎng)絡(luò)FPN。FPN算法的網(wǎng)絡(luò)由全卷積構(gòu)成,輸入一張任意的圖像,在各個(gè)特征層分別輸出不同尺度的特征圖。該網(wǎng)絡(luò)有3個(gè)傳播方向:自底向上、自頂向下以及橫向連接。網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖1 本文車輛目標(biāo)檢測(cè)算法框架模型Fig.1 The framework model of vehicle target detection algorithm
圖2 特征金字塔網(wǎng)絡(luò)Fig.2 Feature pyramid network
自底向上方向是指?jìng)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò)前饋傳播方向,逐層計(jì)算出不同尺度以及語義遞增的特征圖,包含的定位信息較多,如圖2所示,由基礎(chǔ)網(wǎng)路ResNet-50中的5個(gè)卷積層(Conv2,Conv3,Conv4,Conv5,Conv6)分別輸出的特征圖{C2,C3,C4,C5,C6},與原輸入圖像的縮放比例為{4,8,16,32,64}。自頂向下方向是通過上采樣逐層恢復(fù)出較高分辨率的特征圖。雖然上采樣的特征圖較為粗糙,缺乏細(xì)節(jié)信息,損失了目標(biāo)的空間信息,但是具有更強(qiáng)的語義信息。因此,通過橫向連接將兩種特征圖按照相同尺度進(jìn)行結(jié)合,生成對(duì)應(yīng)空間分辨率的特征圖{P2,P3,P4,P5,P6},實(shí)現(xiàn)特征互補(bǔ)。
本文算法在Faster RCNN的基礎(chǔ)上將FPN算法生成的特征金字塔取代單一特征層作為RPN的輸入,實(shí)現(xiàn)在不同大小感受野上檢測(cè)多尺度目標(biāo),以提高目標(biāo)檢測(cè)精度。算法中特征金字塔每層對(duì)應(yīng)的RPN網(wǎng)絡(luò)生成不同尺度的錨框,如特征圖{P2,P3,P4,P5,P6}分別對(duì)應(yīng)生成尺度為{322,642,1282,2562,5122}的錨框。如果一個(gè)錨框的重疊度(IOU,Intersection over Union)大于設(shè)定的閾值threshold,則給這個(gè)錨框標(biāo)記成1,表示正樣本,反之將其標(biāo)記為0,表示負(fù)樣本。根據(jù)錨框的預(yù)測(cè)得分從大到小排序,選擇前N個(gè)錨框映射回原圖像,如有超出圖像邊界的錨框,需進(jìn)行裁剪超出部分。最后使用非極大值抑制算法對(duì)這些錨框進(jìn)行篩選,選擇得分靠前的Ns個(gè)錨框作為候選目標(biāo)區(qū)域框傳給檢測(cè)部分。
1.1.2 上下文信息
在實(shí)際場(chǎng)景中目標(biāo)總是處于某種環(huán)境中,環(huán)境會(huì)對(duì)目標(biāo)產(chǎn)生影響,目標(biāo)與環(huán)境之間的相互作用信息即為上下文信息。通常捕捉目標(biāo)與場(chǎng)景之間的上下文信息對(duì)目標(biāo)進(jìn)行識(shí)別、處理,有助于將目標(biāo)從復(fù)雜的環(huán)境中區(qū)分出來,提高識(shí)別的精確度。在本文算法中,從基于多尺度特征圖生成的候選目標(biāo)區(qū)域周圍選取特定區(qū)域,提取上下文信息。如圖3所示。紅色框表示候選目標(biāo)特征塊,藍(lán)色框表示包含了目標(biāo)和周圍背景的特征塊,上下文信息將在候選目標(biāo)周圍的背景中提取。經(jīng)過ROI池化層提取對(duì)應(yīng)區(qū)域的特征后,采用一個(gè)1×1的卷積層進(jìn)行歸一化,然后由全連接層進(jìn)行處理,最后進(jìn)行特征融合。
圖3 上下文信息提取框架圖Fig.3 Context information extraction framework
在生成的候選區(qū)域框的基礎(chǔ)上將背景區(qū)域包含進(jìn)來,擴(kuò)大特征圖的感知區(qū)域,使得網(wǎng)絡(luò)模型學(xué)習(xí)到更多的環(huán)境信息,能更好地從復(fù)雜背景中將目標(biāo)區(qū)別出來。
當(dāng)卷積神經(jīng)網(wǎng)絡(luò)變深后經(jīng)最后一層卷積層輸出的特征圖變得很小,但感受野變得很大,所以目標(biāo)在輸入的圖像上發(fā)生小偏移,在最后得到的特征圖中將會(huì)感知不到,平移可變性變得很差,識(shí)別出來的位置準(zhǔn)確度也會(huì)很差。采用位置敏感感興趣區(qū)域池化層(Position-Sensitive ROI Pooling)提取局部特征,通過在特征聚集時(shí)人工地引入空間位置信息和部件特征,增加網(wǎng)絡(luò)對(duì)目標(biāo)位置和部件變化的敏感程度。
圖4 局部特征提取框架圖Fig.4 Local feature extraction framework
如圖4所示,由最后一個(gè)1×1的卷積層生成n×k×k個(gè)位置敏感得分圖,經(jīng)過位置敏感感興趣區(qū)域池化層將結(jié)果聚集起來,處理生成n個(gè)k×k大小的位置敏感得分圖,為了降低后續(xù)層的計(jì)算量,實(shí)驗(yàn)中設(shè)定n=10。k×k大小的特征圖表示把感興趣區(qū)域劃分成k×k的網(wǎng)格,其中每個(gè)顏色的立方塊表示目標(biāo)不同部件存在的概率值,對(duì)應(yīng)感興趣區(qū)域的上左、上中、上右、中左等不同位置。得到位置敏感得分圖之后,因局部特征和全局特征維度上存在不一致的情況,采用一個(gè)1×1的卷積層進(jìn)行歸一化。
本文的整個(gè)網(wǎng)絡(luò)模型能夠?qū)崿F(xiàn)端到端的訓(xùn)練,為了達(dá)到車輛的檢測(cè)與類型識(shí)別的同時(shí)實(shí)現(xiàn)效果,利用多任務(wù)損失函數(shù)對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行學(xué)習(xí),損失函數(shù)定義為:
(1)
本文分別對(duì)兩套數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn)驗(yàn)證,一個(gè)源自于公共數(shù)據(jù)集UA-DETRAC(簡(jiǎn)稱UA數(shù)據(jù)集),另一個(gè)是本文構(gòu)建的數(shù)據(jù)集(簡(jiǎn)稱SC數(shù)據(jù)集)。UA數(shù)據(jù)集是車輛檢測(cè)和車輛跟蹤的大規(guī)模數(shù)據(jù)集,拍攝于北京和天津的道路過街天橋,包含不同天氣、不同尺度、不同遮擋度的圖像共82 085張,實(shí)驗(yàn)中選取55 817張圖像為訓(xùn)練數(shù)據(jù),其余部分作為測(cè)試數(shù)據(jù)。SC數(shù)據(jù)集是本文搜集的工程車目標(biāo)數(shù)據(jù)集,主要是從工程施工場(chǎng)景采集獲得,車輛類型包括吊車(Crane)和挖掘機(jī)(Digger),共有1 924張圖像。為避免由于訓(xùn)練數(shù)據(jù)較少造成的卷積網(wǎng)絡(luò)模型過擬合問題,對(duì)SC數(shù)據(jù)集進(jìn)行了數(shù)據(jù)增強(qiáng),通過翻轉(zhuǎn)、平移、灰度變換等操作,將數(shù)據(jù)集擴(kuò)大至原來的2倍。經(jīng)過手工標(biāo)注車輛類型和位置信息后,選取其中的3 078張圖像作為訓(xùn)練數(shù)據(jù),770張圖像作為測(cè)試數(shù)據(jù)。
在訓(xùn)練本文算法模型時(shí),需先對(duì)模型參數(shù)進(jìn)行初始化,算法使用ResNet-50網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),使用在ImageNet數(shù)據(jù)集訓(xùn)練得到的參數(shù)作為初始值,其他部分的參數(shù)則是隨機(jī)初始化。訓(xùn)練步驟如下:
(1)將所有圖像數(shù)據(jù)按照PASCAL VOC 2007數(shù)據(jù)集格式進(jìn)行轉(zhuǎn)換;
(2)根據(jù)訓(xùn)練樣本數(shù)量,對(duì)小樣本數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng);
(3)采用隨機(jī)梯度下降法對(duì)公式(1)的損失函數(shù)進(jìn)行優(yōu)化,獲得最優(yōu)的網(wǎng)絡(luò)模型參數(shù)。
訓(xùn)練過程中,學(xué)習(xí)率設(shè)為0.001,UA數(shù)據(jù)集訓(xùn)練迭代次數(shù)為70 000次,SC數(shù)據(jù)集訓(xùn)練迭代次數(shù)為40 000次,分別經(jīng)過約20 h的訓(xùn)練,獲得最終的模型參數(shù)。
實(shí)驗(yàn)使用的軟硬件平臺(tái)為:Linux操作系統(tǒng) Ubuntu 16.04,Intel Xeon E5-1630 v3@3.7 GHz 四核處理器,16 GB內(nèi)存,Nvidia GTX 1080Ti 11 GB 顯卡。實(shí)驗(yàn)程序在Caffe框架[14]下使用Python語言編程實(shí)現(xiàn)。
為了驗(yàn)證本文算法模型的有效性,將本文算法與多種當(dāng)前主流算法的性能進(jìn)行實(shí)驗(yàn)對(duì)比,對(duì)比的算法包括YOLOV2,YOLOV3,SSD,R-FCN[15]。采用平均精度(Average Precision)和平均精度均值(mean Average Precision)作為定量評(píng)估指標(biāo),并繪制出PR(Precision-Recall)曲線,直觀地顯示出樣本總體上的查全率和查準(zhǔn)率。
表1給出的是UA數(shù)據(jù)集上訓(xùn)練得到的檢測(cè)結(jié)果。實(shí)驗(yàn)中,根據(jù)檢測(cè)定位框和人工標(biāo)注定位框之間的IOU值來確定是否檢測(cè)到了目標(biāo),在實(shí)驗(yàn)中設(shè)置IOU的閾值為0.5,只有當(dāng)大于閾值時(shí)將檢測(cè)結(jié)果視為正確目標(biāo)。從表1的對(duì)比數(shù)據(jù)可得,本文算法的AP次于YOLOV3算法,但其他幾種算法的性能指標(biāo)則明顯低于本文算法。YOLOV3算法是YOLO,YOLOV2算法的改進(jìn)版本,與本文算法類似,其通過多尺度預(yù)測(cè)的方式提高對(duì)小目標(biāo)的檢測(cè)精度。在Car目標(biāo)上,YOLOV3的AP值比本文算法高1%,其原因主要是普通車輛形變簡(jiǎn)單,YOLOV3的主干網(wǎng)絡(luò)提取的特征能更好擬合目標(biāo)。
表1 不同算法在UA數(shù)據(jù)集下的檢測(cè)性能Table 1 Detection performance of different algorithms under UA data set
圖5和圖6為UA數(shù)據(jù)集中典型的場(chǎng)景,在目標(biāo)重疊情況下,本文算法能更準(zhǔn)確地檢測(cè)出目標(biāo),這一點(diǎn)優(yōu)于其他算法。
圖5 5種算法在場(chǎng)景一的檢測(cè)效果對(duì)比圖Fig.5 Comparison of the detection effects of the five algorithms in the first scene
圖6 5種算法在場(chǎng)景二的檢測(cè)效果對(duì)比圖Fig. 6 Comparison of the detection effects of the five algorithms in the second scene
表2顯示的是SC數(shù)據(jù)集的檢測(cè)性能結(jié)果。SC數(shù)據(jù)集較于UA數(shù)據(jù)集更難,原因是施工場(chǎng)景的背景更為復(fù)雜、多樣,并且作為檢測(cè)目標(biāo)的工程車輛與普通車輛相比,在形態(tài)、尺度上變化更大。圖7和圖8顯示了不同算法在典型的施工場(chǎng)景下的檢測(cè)效果。
表2 不同算法在SC數(shù)據(jù)集下的檢測(cè)性能Table 2 Detection performance of different algorithms under SC data set
圖7 5種算法在場(chǎng)景一的檢測(cè)效果對(duì)比圖Fig.7 Comparison of the detection effects of the five algorithms in the first scene
圖8 5種算法在場(chǎng)景二的檢測(cè)效果對(duì)比圖Fig.8 Comparison of the detection effects of the five algorithms in the second scene
從表2的結(jié)果可得,本文算法的mAP值和AP值均高于其他算法。從圖7和圖8中可以看出,在復(fù)雜的野外施工場(chǎng)景中,本文算法能夠準(zhǔn)確地檢測(cè)到目標(biāo),而其他算法均存在明顯的漏檢現(xiàn)象,且R-FCN算法在圖7(d)和圖8(d)中都出現(xiàn)了誤檢。
在圖9的PR曲線中采用平衡點(diǎn)(查準(zhǔn)率=查全率,BEP)作為度量方式,算法曲線與虛線部分相交處為平衡點(diǎn),點(diǎn)值越大,說明該算法的性能越好。如圖9所示,本文算法性能優(yōu)于其他算法。實(shí)驗(yàn)表明本文結(jié)合全局特征和局部特征進(jìn)行目標(biāo)檢測(cè)任務(wù),可以有效地提高算法模型的檢測(cè)精度和召回率,更好地用于各種復(fù)雜場(chǎng)景的車輛檢測(cè)。
圖9 不同算法在工程車數(shù)據(jù)集上的PR曲線Fig.9 PR curves of different algorithms on the engineering vehicle dataset
本文將全局特征和局部特征融合實(shí)現(xiàn)車輛檢測(cè)任務(wù),并在工程車數(shù)據(jù)集和公共車輛數(shù)據(jù)集UA-DETRAC上訓(xùn)練測(cè)試,證明了本文算法對(duì)不同清晰度、不同遮擋程度、不同尺度大小和不同形變程度的場(chǎng)景均有良好的魯棒性,運(yùn)行效率上每幅圖像處理速度在0.3 s左右,能很好地處理實(shí)際場(chǎng)景中的實(shí)時(shí)性問題。本文算法在夜間弱光照條件下檢測(cè)效果不是很理想,需進(jìn)一步提高檢測(cè)精度。