□文/時(shí)文忠 王忠榮
隨著社會(huì)的發(fā)展和人民生活水平的提升,汽車保有量在不斷的快速增長(zhǎng),從一些大城市的車輛限號(hào)和限行可以看出來(lái),交通監(jiān)管面臨巨大的壓力。各種交通卡口和紅綠燈路口都安裝了智能監(jiān)控,隨著人工智能的發(fā)展,這些繁重的工作可以借助計(jì)算機(jī)視覺(jué)來(lái)輔助處理。讓計(jì)算機(jī)自動(dòng)處理這些圖像數(shù)據(jù),最重要的就是需要定位圖像中車輛的位置,即車輛檢測(cè)。本文將深入研究目前的一些目標(biāo)檢測(cè)算法并提出本文的檢測(cè)算法。
隨著目標(biāo)檢測(cè)精度和速度要求越來(lái)越高,傳統(tǒng)方法已經(jīng)不能滿足需求了。近年來(lái),深度學(xué)習(xí)技術(shù)得到了廣泛的應(yīng)用,產(chǎn)生了一系列目標(biāo)檢測(cè)算法,例如兩階段目標(biāo)檢測(cè)算法,Girshick等在2014年提出的R-CNN算法一舉奪得當(dāng)年P(guān)ascal VOC比賽的冠軍。SPP-Net提出空間金字塔池化,F(xiàn)ast R-CNN[3]在R-CNN中加入RoIPooling層調(diào)整特征圖的尺寸,F(xiàn)aster R-CNN提出RPN取代以前的選擇性搜索方法來(lái)更快的生成更準(zhǔn)確的候選框,所有步驟由卷積神經(jīng)網(wǎng)絡(luò)完成,F(xiàn)aster R-CNN是第一個(gè)端到端的兩階段目標(biāo)檢測(cè)方法。另外一大類是單階段檢測(cè)算法,以SSD(Single Shot MultiBox Detector)系列、YOLO(You Only Look Once)系列、RetinaNet等為典型代表,基于全局回歸和分類的框架,從圖像像素直接映射到目標(biāo)邊界框和類別概率,可以極大較少開(kāi)銷提升效率,目前大多數(shù)單階段行人檢測(cè)器都可以做到實(shí)時(shí)檢測(cè)。
在深度學(xué)習(xí)領(lǐng)域,一個(gè)深度學(xué)習(xí)模型由三大部分組成,網(wǎng)絡(luò)、損失函數(shù)和數(shù)據(jù),網(wǎng)絡(luò)用于提取特征,數(shù)據(jù)用于模型擬合,損失函數(shù)決定如何訓(xùn)練。同理,對(duì)一個(gè)模型的改進(jìn)也可以從這三個(gè)方面入手:首先網(wǎng)絡(luò)方面,改進(jìn)車輛檢測(cè)算法的網(wǎng)絡(luò),在三個(gè)方面影響檢測(cè)性能:網(wǎng)絡(luò)深度、下采樣率和感受野大??;其次數(shù)據(jù)方面,本文使用在圖像分類領(lǐng)域表現(xiàn)很好的mixup數(shù)據(jù)增廣方法;最后損失函數(shù)方面,本文使用焦點(diǎn)損失和困難樣本挖掘提升效果。
目前的公開(kāi)數(shù)據(jù)集不多,本文通過(guò)采集大量交通卡口的視頻和圖像數(shù)據(jù),然后使用一些目標(biāo)檢測(cè)工具進(jìn)行人工標(biāo)注。本文使用自建和公開(kāi)數(shù)據(jù)集共計(jì)25000張圖像,按照9:1的比例劃分為檢測(cè)模型的訓(xùn)練集和驗(yàn)證集。
在數(shù)據(jù)預(yù)處理方面,本文使用了常見(jiàn)的數(shù)據(jù)增廣方法,比如隨機(jī)裁剪,隨機(jī)翻轉(zhuǎn),隨機(jī)旋轉(zhuǎn)(-30-+30度),另外還使用了一種在圖像分類領(lǐng)域表現(xiàn)較好的mixup數(shù)據(jù)增廣方法。
在目標(biāo)檢測(cè)網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)部分,在Darknet基礎(chǔ)上進(jìn)行改進(jìn),得到擴(kuò)張卷積暗網(wǎng)絡(luò),由48層1*1卷積或者3*3卷積網(wǎng)絡(luò)構(gòu)成的全卷積網(wǎng)絡(luò),在網(wǎng)絡(luò)最后一個(gè)模塊使用Dilated Convolution(擴(kuò)張卷積),擴(kuò)張卷積的最大優(yōu)點(diǎn)在于不做池化或者下采樣的操作,可以增大感受野,讓每個(gè)卷積輸出都包含較大范圍的信息,同時(shí)盡可能保留較大的特征圖和圖像的空間信息,這對(duì)于小目標(biāo)檢測(cè)非常關(guān)鍵。對(duì)于目標(biāo)檢測(cè)問(wèn)題,使用擴(kuò)張卷積可以極大的保留空間信息。使用擴(kuò)張卷積時(shí),由于特征圖不減小,這會(huì)極大增加計(jì)算量,與一般的網(wǎng)絡(luò)結(jié)構(gòu)不同,DDN網(wǎng)絡(luò)在最后一個(gè)模塊里,所有卷積的通道數(shù)都設(shè)置為256。實(shí)驗(yàn)證明,該卷積層通道數(shù)是256(記為DDN-256網(wǎng)絡(luò))和通道數(shù)是1024(記為DDN-1024網(wǎng)絡(luò))相比,精度幾乎沒(méi)有下降或下降極少(由實(shí)際數(shù)據(jù)集決定),卻極大減少了計(jì)算量。另外,在最后一個(gè)模塊中只有4個(gè)殘差模塊,在這里使用Bottleneck結(jié)構(gòu)(瓶頸結(jié)構(gòu)),通過(guò)在每個(gè)模塊的首尾分別添加1*1的卷積可以進(jìn)一步減少計(jì)算量,加快預(yù)測(cè)速度,同時(shí)可以增加網(wǎng)絡(luò)的深度和增加非線性,提升網(wǎng)絡(luò)精度。
整個(gè)DPDN網(wǎng)絡(luò)以DDN網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),檢測(cè)部分借鑒FPN思想,使用特征融合的手段進(jìn)行多層檢測(cè),整體思路可以概括為,使用淺層的大的特征圖檢測(cè)小目標(biāo),使用深層的含更多語(yǔ)義信息的特征圖檢測(cè)大目標(biāo)。在FPN中,通過(guò)融合深層的含有較多語(yǔ)義信息的特征和淺層的語(yǔ)義信息較少的特征,可以更好地定位各種尺度的目標(biāo)。
在網(wǎng)絡(luò)的損失函數(shù)的分類部分加入了Focal loss(焦點(diǎn)損失)和OHEM(Online hard example mining,在線困難樣本挖掘)方法,檢測(cè)部分使用YOLO方法里面的L2損失函數(shù)。在線困難樣本挖掘方法是在計(jì)算損失的時(shí)候重點(diǎn)關(guān)注比較難的樣本,即損失比較大的那些樣本,通過(guò)加權(quán)的方式來(lái)處理不同大小的損失。焦點(diǎn)損失可以讓網(wǎng)絡(luò)更加關(guān)注難識(shí)別的樣本,設(shè)計(jì)加權(quán)損失函數(shù),減少簡(jiǎn)單樣本損失在總的損失中的比例,進(jìn)行難例挖掘,可以進(jìn)一步提升精度。式1為焦點(diǎn)損失公式。
上式中pt表示目標(biāo)檢測(cè)結(jié)果中類別的識(shí)別概率,取值0~1之間,log自然對(duì)數(shù),γ表示焦點(diǎn)參數(shù),是一個(gè)0~1之間的數(shù),αt是一個(gè)調(diào)制系數(shù),是一個(gè)0~1之間的數(shù),用來(lái)控制正負(fù)樣本在總的損失中的比重。
使用預(yù)訓(xùn)練模型,先把DDN單獨(dú)在ImageNet上訓(xùn)練分類模型,用來(lái)初始化骨干網(wǎng)絡(luò),后面檢測(cè)部分的一些層使用隨機(jī)初始化方法。本方法是單階段訓(xùn)練方法,依賴預(yù)先設(shè)置的錨框(anchors),根據(jù)實(shí)際數(shù)據(jù)集調(diào)整anchors 的尺寸分布,該分布由K-means算法得到,使用(1-IoU)作為距離度量,其中IoU表示先驗(yàn)候選框與標(biāo)記框之間面積的交并比。對(duì)數(shù)據(jù)進(jìn)行左右翻轉(zhuǎn)、隨機(jī)裁剪、色彩抖動(dòng)等數(shù)據(jù)增強(qiáng)操作,不斷調(diào)整學(xué)習(xí)率、批量大?。╞atch_size)、優(yōu)化方法等超參數(shù)來(lái)訓(xùn)練DPDN網(wǎng)絡(luò)。
實(shí)驗(yàn)結(jié)果如表1所示,對(duì)比方法有Faster R-CNN和YOLO方法,在檢測(cè)速度和精度兩個(gè)重要維度進(jìn)行對(duì)比,可以看到本方法全面優(yōu)于上述兩種算法。
表1 實(shí)驗(yàn)結(jié)果對(duì)比表
本文方法的車輛檢測(cè)結(jié)果展示如圖1所示。
▲圖1 本文方法檢測(cè)結(jié)果
本文在YOLO基礎(chǔ)上設(shè)計(jì)新的目標(biāo)檢測(cè)網(wǎng)絡(luò)DPDN。本方法的骨干網(wǎng)絡(luò)是DDN,在末端卷積模塊使用殘差網(wǎng)絡(luò)的瓶頸結(jié)構(gòu),引入擴(kuò)張卷積,在不減小特征圖的同時(shí)增大感受野,同時(shí)減少卷積通道數(shù),在損失函數(shù)方面引入焦點(diǎn)損失函數(shù),可以讓模型更關(guān)注困難樣本。改進(jìn)檢測(cè)網(wǎng)絡(luò)和設(shè)計(jì)更合適的候選框。在檢測(cè)部分,設(shè)計(jì)了一個(gè)新的檢測(cè)網(wǎng)絡(luò),因?yàn)楣歉删W(wǎng)絡(luò)使用了擴(kuò)張卷積,最后兩個(gè)模塊的特征圖的尺寸相同,可以不用做上采樣。最終本文方法取得了較好的檢測(cè)結(jié)果。