單志勇,宮加輝
(東華大學(xué),上海201600)
隨著城市化進(jìn)程的不斷加快,交通管理系統(tǒng)是當(dāng)前交通領(lǐng)域需要研究的熱點(diǎn)問題。車輛目標(biāo)檢測是交通管理系統(tǒng)的重要組成部分之一,廣泛應(yīng)用在智能監(jiān)控系統(tǒng)和智能停車系統(tǒng)等領(lǐng)域中。車輛目標(biāo)檢測應(yīng)用在智能交通監(jiān)控系統(tǒng)中可以加快救援速度和分析馬路擁堵情況,極大的緩解了交通壓力。車輛目標(biāo)檢測應(yīng)用在智能停車系統(tǒng)中,通過對停車場內(nèi)的停車情況進(jìn)行分析,可以緩解停車難的問題??梢姡囕v目標(biāo)檢測在交通管理系統(tǒng)中的應(yīng)用極大地提高了交通管理的效率。所以,優(yōu)化車輛目標(biāo)檢測問題對增強(qiáng)交通管理系統(tǒng)具有重要意義和應(yīng)用價(jià)值。
傳統(tǒng)的目標(biāo)檢測算法流程圖如圖1所示。首先輸入需要檢測的圖片,采用滑動(dòng)窗口的方式進(jìn)行候選框的選取,其次,采用基于人工設(shè)計(jì)特征提取[1]的算法,如HOG(Histogram of Oriented Gradient)[2]對候選框進(jìn)行特征提取;然后使用分類器,如SVM[3]等進(jìn)行判定,在經(jīng)過分類器判定后獲得的候選框會(huì)有一部分重疊,因此,需要在經(jīng)過NMS[4]將重疊的部分篩選合并找到目標(biāo)物體的最佳位置,得到最終的檢測結(jié)果。
圖1 傳統(tǒng)目標(biāo)檢測算法流程圖
傳統(tǒng)目標(biāo)檢測的不足主要體現(xiàn)在候選框和特征提取部分。選取候選框采用的是滑動(dòng)窗口的方式,若滑動(dòng)窗口的大小和步長的變化不合理,則會(huì)產(chǎn)生大量冗余的候選框,降低了目標(biāo)檢測的速度;特征提取的方法是基于人工設(shè)計(jì)的,特征提取過程中極易受到個(gè)人主觀性的影響,降低了目標(biāo)檢測的準(zhǔn)確率。
2014年,Ross Girshick等人提出了R-CNN[5]算法,這一算法明顯提高了目標(biāo)檢測的速度。R-CNN算法在傳統(tǒng)算法模型的基礎(chǔ)上進(jìn)行兩個(gè)方面的調(diào)整:一是采用選擇性搜索(Selective Search)[6]代替滑動(dòng)窗口的方式進(jìn)行候選框的選取,大約選取1000~2000個(gè)候選框,減少了計(jì)算量;其二是采用CNN代替人工設(shè)計(jì)特征提取特征圖,有效避免了人為主觀性的影響。
2015年Ross Girshick提出了Fast R-CNN[7],彌補(bǔ)了R-CNN算法中輸入圖像需固定尺寸的不足。Fast R-CNN算法的輸入圖像的尺寸是任意的,并且是直接對整張圖像卷積,減少了重復(fù)計(jì)算;采用ROI Pooling層固定特征的尺寸,以便讓特征圖以合適的尺寸輸入到全連接層;采用Softmax層輸出目標(biāo)的類別。Fast R-CNN算法只需單個(gè)模型即可完成目標(biāo)檢測,極大地提高了檢測效率。
2016年Ross Girshick在R-CNN和Fast R-CNN的基礎(chǔ)上提出了Faster R-CNN[8]。Faster R-CNN算法采用RPN(Region Proposal Network)代替選擇性搜索法提取候選框,并把提取候選框,選取特征圖和判定目標(biāo)類別和位置放置在同一個(gè)網(wǎng)絡(luò),解決了模型結(jié)合慢的問題,檢測效率和準(zhǔn)確率都滿足了目標(biāo)檢測的要求,極大地提高了目標(biāo)檢測的綜合性能。
本文主要內(nèi)容就是研究改進(jìn)的Faster R-CNN算法在實(shí)際車輛目標(biāo)檢測的場景中應(yīng)用,主干網(wǎng)絡(luò)選取了VGG16[9]預(yù)訓(xùn)練模型,訓(xùn)練和測試的樣本集來自UA-DETRAC數(shù)據(jù)集,使用訓(xùn)練集訓(xùn)練目標(biāo)檢測模型,使用測試的樣本集對得到的模型進(jìn)行測試。實(shí)驗(yàn)結(jié)果表明使用改進(jìn)的Faster R-CNN算法進(jìn)行車輛目標(biāo)檢測具有較高的泛化能力,同時(shí)也提高了車輛目標(biāo)檢測的準(zhǔn)確度和效率。
Faster R-CNN網(wǎng)絡(luò)主要由以下四個(gè)內(nèi)容組成:卷積層、RPN層、RoI Pooling層和坐標(biāo)回歸層。其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示。卷積層采用VGG16預(yù)訓(xùn)練模型來提取特征,其網(wǎng)絡(luò)結(jié)構(gòu)由13個(gè)Conv層、13個(gè)ReLU層和4個(gè)Pooling層組成。在整個(gè)VGG16模型中,每經(jīng)過一次Pooling層的輸出都是輸入的1/2。生成的feature map被共享于RPN層和RoI Pooling層;PRN層利用Softmax和bounding box判斷anchors所屬類別和修正anchors的邊框,以便獲得更準(zhǔn)確的區(qū)域建議框;ROI Pooling層的輸入來自卷積層生成的feature map和RPN層的區(qū)域建議框,該層的作用就是將輸入固定到統(tǒng)一大小并輸出至坐標(biāo)回歸層的全連接層;坐標(biāo)回歸層則是用來判斷目標(biāo)的類別和坐標(biāo)位置。
圖2 Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)圖
Faster R-CNN模型進(jìn)行訓(xùn)練時(shí)采用的訓(xùn)練圖片的尺寸是恒定的,這在一定程度上降低了目標(biāo)檢測的效率。本文提出了多尺度訓(xùn)練,在960×540、900×500、800×480三種不同尺寸的訓(xùn)練圖片中隨機(jī)選取進(jìn)行訓(xùn)練,能有效提高車輛目標(biāo)檢測的魯棒性。
Anchor是RPN網(wǎng)絡(luò)中的一個(gè)重要概念,它與滑窗法設(shè)置的窗口大小類似,都是預(yù)設(shè)圖像的參照框。原始Faster R-CNN網(wǎng)絡(luò)中Anchor是在RPN網(wǎng)絡(luò)的3×3卷積層生成的,每個(gè)錨點(diǎn)對應(yīng)三種尺度縮放比和三種寬高比分別為[128,256,512]、[1:2,1:1,2:1]的9種Anchor。改進(jìn)后的RPN增加了1:3、3:1兩種候選區(qū)域的比例。改進(jìn)前后的對比圖如圖3所示。
圖3 改進(jìn)前后對比圖
RPN是Faster R-CNN網(wǎng)絡(luò)的核心部分,是一個(gè)完整的卷積神經(jīng)網(wǎng)絡(luò)。RPN作用在特征提取網(wǎng)絡(luò)輸出的特征圖像上,首先是經(jīng)過一個(gè)卷積層選取錨點(diǎn),生成anchor;然后分成兩路,一路輸入分類層利用Softmax判斷anchor的類別,在進(jìn)行Softmax的前后都對輸出做了Reshape,以便Softmax進(jìn)行二分類和減少計(jì)算的復(fù)雜度;一路輸入邊框回歸層用來判斷anchors的邊框位置,計(jì)算anchor的位置與真實(shí)框位置的偏移量并進(jìn)行調(diào)整獲取位置更準(zhǔn)確的anchor;分類層和邊框回歸層的輸出共同輸入Proposal,Proposal根據(jù)Img_info提供的信息和NMS算法篩選大約2000個(gè)更準(zhǔn)確的anchor。
RoI Pooling使得原始圖片的大小可以是任意的,減少了原始圖片在縮放成固定大小時(shí)帶來的信息損失;RoI Pooling可以將不同尺寸的圖片生成的特征圖轉(zhuǎn)換為固定尺寸的特征圖,幫助全連接層以及分類層更好地吸收。
RoI利用Max Pooling將寬和高為(w×h)的RoI窗口用(W×H)的子窗口進(jìn)行分割,得到約等于個(gè)子窗口。利用Max Pooling計(jì)算每個(gè)子窗口的最大像素點(diǎn),形成一個(gè)W×H的Feature map。
Faster R-CNN中的損失分為回歸損失和分類損失兩大類,分類損失是Softmax,回歸損失是Smooth L1造成的損失。其總的損失函數(shù)表達(dá)式如下:
RPN和ROI的分類損失表達(dá)式相同,均是交叉熵?fù)p失。但RPN損失是二分類交叉熵?fù)p失,ROI損失是多分類交叉熵?fù)p失。其表達(dá)式如公式(2)所示。
其中,Ncls為總的anchor的數(shù)量;在RPN分類損失函數(shù)中,pi為第i個(gè)anchor的預(yù)測分類概率;p*i為標(biāo)簽,當(dāng)anchor為positive時(shí),p*i=1,當(dāng)anchor為negative時(shí),是二分類交叉熵?fù)p失函數(shù),其表達(dá)式如公式(3)所示。
RPN和ROI的回歸損失函數(shù)均是由Smooth L1 Loss計(jì)算的,Smooth L1 Loss解決了在預(yù)測值和真實(shí)值很接近的時(shí)候發(fā)生梯度爆炸以及函數(shù)在0點(diǎn)不可導(dǎo)影響收斂的問題。Smooth L1 Loss的表達(dá)式如公式(4)所示,函數(shù)圖像如圖4所示?;貧w損失函數(shù)的表達(dá)式如公式(5)所示。是第i個(gè)anchor的真實(shí)框的參數(shù)化坐標(biāo)。
圖4 Smooth L1函數(shù)圖像
隨著車輛目標(biāo)檢測受到了國內(nèi)外學(xué)者的深入研究,如今可供選擇的車輛檢測數(shù)據(jù)集也很多,主要包括KITTI、N-CARS、CompCars和UA-DETRAC等。KITTI數(shù)據(jù)集采主要是行駛在卡爾斯魯厄的鄉(xiāng)村公路和高速公路上的車輛,數(shù)據(jù)采集場景在國外,而本實(shí)驗(yàn)研究的車輛目標(biāo)檢測的應(yīng)用場景主要是在國內(nèi)的街道上,與本實(shí)驗(yàn)的實(shí)際場景存在偏差。N-CARS和CompCars數(shù)據(jù)集主要應(yīng)用在汽車分類,缺少本實(shí)驗(yàn)中需要的在道路擁堵、光照太強(qiáng)等不同條件下的稀有數(shù)據(jù)集。UA-DETRAC數(shù)據(jù)集既是在國內(nèi)24座城市拍攝的,也具有道路擁堵、光照強(qiáng)度不同的稀有數(shù)據(jù)集,與本實(shí)驗(yàn)所需實(shí)際場景基本相符。
因此,本實(shí)驗(yàn)所用數(shù)據(jù)集均截取至UA-DETRAC數(shù)據(jù)集。其中訓(xùn)練集有10572張,測試集有6705張圖片。部分圖像如圖5所示。本實(shí)驗(yàn)所選取的10572張訓(xùn)練集和6705張測試集均有相應(yīng)的標(biāo)注文件。
圖5 UA-DETRAC數(shù)據(jù)集
本實(shí)驗(yàn)中訓(xùn)練所用的硬件配置如下:采用NVIDIA GeForce GTX 1080 TI GPU加速,搭建運(yùn)行環(huán)境PyTorch 1.6.0、CUDA 10.1以及cuDNN 7,編程語言選擇了Python,用Python 3.6.9運(yùn)行程序。由于所用程序數(shù)據(jù)集標(biāo)注格式采用的是VOC2007數(shù)據(jù)集所用標(biāo)注格式,因此,在訓(xùn)練之前本實(shí)驗(yàn)先將所用數(shù)據(jù)集標(biāo)注文件的格式改為了VOC2007數(shù)據(jù)集標(biāo)注文件的格式。訓(xùn)練過程中采用VGG16預(yù)訓(xùn)練模型,預(yù)訓(xùn)練模型的參數(shù)權(quán)重是VGG16在ImageNet[10]下訓(xùn)練好的,初始學(xué)習(xí)率設(shè)置為0.001,當(dāng)?shù)螖?shù)達(dá)到9之后,就將學(xué)習(xí)率設(shè)置為原來的0.1,即0.0001;本實(shí)驗(yàn)在GPU加速下訓(xùn)練迭代14次,得到車輛目標(biāo)檢測的模型。
本實(shí)驗(yàn)的檢測結(jié)果均是在Visdom下的可視化窗口呈現(xiàn)的,圖6是原始圖片的標(biāo)簽圖、圖7是原始圖片的預(yù)測圖、圖8是算法改進(jìn)后的5種loss、圖9是Faster R-CNN算法改進(jìn)前后的評估指標(biāo)mAP的對比圖。由圖7可以看出車輛檢測的概率均在0.9以上,但存在漏檢的情況。該情況可能是受到天氣條件、遮擋以及光照變化等因素的影響導(dǎo)致的,也可能是數(shù)據(jù)集在進(jìn)行預(yù)處理時(shí)導(dǎo)致的原始圖片的信息損失以至于無法識(shí)別出來車輛,還有可能是因?yàn)樵紙D片是在監(jiān)控視頻中截取出來的虛化嚴(yán)重?zé)o法清晰識(shí)別出車輛。由圖8可知,roi_loc_loss的損失最大,rpn_cls_loss的損失最小,總損失函數(shù)最終控制在0.176左右,圖8表明了適當(dāng)?shù)脑黾訕颖緮?shù)據(jù)集有利于降低車輛目標(biāo)檢測的損失和提高車輛目標(biāo)檢測的準(zhǔn)確率。由圖9可知,基于改進(jìn)后的Faster R-CNN算法的車輛目標(biāo)檢測的map最終穩(wěn)定在90.56%,而基于Faster R-CNN算法的車輛目標(biāo)檢測的map最終穩(wěn)定在90.50%,mAP提高了0.06%。
圖6 標(biāo)簽圖
圖7 檢測效果圖
圖8 5種損失函數(shù)
圖9 mAP對比圖
本文利用了公開UA-DETRAC數(shù)據(jù)集,基于改進(jìn)的Faster R-CNN算法完成了對實(shí)際場景中的車輛目標(biāo)檢測,有效避免了傳統(tǒng)目標(biāo)檢測中出現(xiàn)的過于依賴人工特征提取的問題,有效地提高了車輛目標(biāo)檢測的準(zhǔn)確率和速度,為車輛目標(biāo)檢測在智能監(jiān)控和無人駕駛等領(lǐng)域的應(yīng)用奠定了基礎(chǔ)。雖然檢測的準(zhǔn)確率和速度已經(jīng)有了很大的提高,但仍然存在錯(cuò)檢、漏檢以及無法做到實(shí)時(shí)檢測的情況。因此,未來車輛目標(biāo)檢測的難點(diǎn)就在于如何盡可能減小光照、天氣等外部因素的干擾,以及如何做到實(shí)時(shí)檢測。