吳樂平,竇祥星
(南京旭上數(shù)控技術(shù)有限公司,江蘇南京,211100)
車輛檢測和車型分類具有廣闊的應(yīng)用前景,例如,車輛類型分類已廣泛應(yīng)用于智能交通系統(tǒng)中的交通流統(tǒng)計,并且在解決城市車輛管理,城市交通管制等問題中發(fā)揮著關(guān)鍵作用。
交通車輛監(jiān)控中常見的車輛檢測與分類方法主要有基于傳統(tǒng)SIFT特征提取方法實現(xiàn)特征匹配分類,采用基于Harris特征與SIFT特征結(jié)合的方式實現(xiàn)車型識別[1],采用空間金字塔特征并結(jié)合Adaboost分類器的方式對車輛進行檢測[2];基于高斯混合模型的移動車輛檢測方法,通過粒子群編碼,采用粒子群與云模型的混合模型實現(xiàn)車型分類;基于車牌分類方法[3],基于方向梯度直方圖特征(HOG)的SVM監(jiān)控視頻分類方法。通過使用車前輪廓,擋風(fēng)玻璃,后視鏡和車牌的特征來實現(xiàn)車輛類別分類[4]。
雖然上述算法在目標(biāo)檢測分類任務(wù)中已經(jīng)取得了良好的效果,但由于一些不同車型具有相似的外觀特征,而且車輛識別尺度只在車輛目標(biāo)分類層面,并且只能實現(xiàn)對特定角度拍攝的車輛圖像進行檢測和分類,上述方法難以滿足車輛檢測識別要求。本文提出的基于Faster R-CNN的卷積神經(jīng)網(wǎng)絡(luò)車輛檢測和分類方法滿足了道路車輛檢測分類的要求[5],實現(xiàn)從不同角度檢測車輛,并對車輛進行檢測和分類。
為了驗證模型在車輛分類測試中獲得更好的泛化能力,車輛分類系統(tǒng)需要能夠識別在不同的顏色,視覺和場景下的同類型車輛。為了驗證模型在車輛分類測試中獲得更好的泛化能力,車輛分類系統(tǒng)需要能夠識別在不同的顏色,視覺和場景下的同類型車輛。斯坦福大學(xué)的車輛分類數(shù)據(jù)集包含從自然場景或網(wǎng)絡(luò)上收集的16,185張圖像,其中有8,144張經(jīng)過校驗的訓(xùn)練圖像和8,041張測試圖像[6],這些圖像包含196種車型。然而,我們發(fā)現(xiàn)該數(shù)據(jù)集中相同車型的訓(xùn)練圖片很少,并且相同車型分類準確度較低。因此,我們將這196種車型分為 7大類,即大眾(Volkswagen),奧迪(Audi),雪佛蘭(Chevrolet),寶馬(BMW),福特(Ford),梅賽德斯 - 奔馳(Mercedes-Benz)等7種車型,從而擴大了每種車型的樣本數(shù)量。由于該數(shù)據(jù)集主要是從國外車輛圖片中收集的,包含國內(nèi)車型的樣本較少,因此利用國內(nèi)車輛類型的車輛數(shù)據(jù)集測試所提模型的泛化能力,我們在原有數(shù)據(jù)集中擴充3909輛國內(nèi)車輛圖像的數(shù)據(jù)。
本文所提的基于卷積神經(jīng)網(wǎng)絡(luò)的車輛檢測與分類模型是,首先通過區(qū)域分割從含有車輛的圖像背景區(qū)域提取車輛區(qū)域,去除背景噪聲以提高識別精度,然后利用卷積神經(jīng)網(wǎng)絡(luò)對大量車型標(biāo)簽圖像集的特征提取和分類訓(xùn)練,從而實現(xiàn)不同視角識別車輛類型的任務(wù)。此外,我們比較分析車輛檢測過程中的選擇精度[7],識別精度和實時性等性能指標(biāo)。在車輛檢測訓(xùn)練過程中,當(dāng)將參數(shù)“NegativeOverlapRange”(候選區(qū)域與圖像標(biāo)記區(qū)域之間的重疊比率作為負訓(xùn)練樣本的間隔)設(shè)置為 [0,0.3] 時,“PositiveOverlapRange”(候選區(qū)域與圖像標(biāo)記區(qū)域之間的重疊比率作為正訓(xùn)練樣本的間隔)為[0.7,1],車輛檢測的準確度最高。將檢測到的車輛區(qū)域?qū)⒈凰偷杰囕v類型分類網(wǎng)絡(luò)從而將車輛檢測和車輛類型分類模塊級聯(lián)起來[8]。本文提出的方法有助于避免車輛識別過程中背景區(qū)域的干擾,從而實現(xiàn)更精確的車型分類。我們比較分析了不同分類網(wǎng)絡(luò)模型的損失函數(shù)與精度曲線,以及各種車型的分類結(jié)果。
Faster R-CNN的提出解決R-CNN在目標(biāo)檢測和識別方面的一些問題,1)R-CNN檢測算法是分階段進行,提取候選幀耗時較長;2)訓(xùn)練階段數(shù)據(jù)存儲占用空間較大;3)目標(biāo)檢測速度慢。Faster R-CNN引入?yún)^(qū)域生成網(wǎng)絡(luò)(RPN), RoI 池化層等優(yōu)化措施,具體過程如下:1)使用區(qū)域生成網(wǎng)絡(luò)生成區(qū)域候選幀,和整個檢測網(wǎng)絡(luò)共享卷積特征,從而減少生成區(qū)域候選幀的耗費時間;2) RoI池化層將整個圖像直接歸一化到深度網(wǎng)絡(luò)中,只在網(wǎng)絡(luò)層的末端對每個候選區(qū)域進行處理,有效避免了對候選幀同一區(qū)域的特征進行多次卷積特征提取的冗余操作;3)深度網(wǎng)絡(luò)可以實現(xiàn)目標(biāo)分類和位置的精確調(diào)整,不需要額外存儲空間;4)通過RoI Pooling層我們已經(jīng)得到所有候選區(qū)組成的特征向量,然后送入全連接層和softmax計算每個候選框具體屬于哪個類別,輸出類別的得分,同時再次利用框回歸獲得每個候選區(qū)相對實際位置的偏移量預(yù)測值,用于對候選框進行修正,得到更精確的目標(biāo)檢測框定義兩個同級輸出,一個生成檢測目標(biāo)對象類別和“背景”類別,另一個是檢測目標(biāo)精確的邊界框位置。
Faster R-CNN算法,主要分為四個步驟:
(1)卷積層特征共享
作為一種基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法,利用基本卷積層提取輸入圖像的特征圖,并將其共享給后續(xù)的RPN層和全連通層。
(2)區(qū)域生成網(wǎng)絡(luò)(RPN)
RPN是一個完整的卷積網(wǎng)絡(luò),它輸出一組候選區(qū)域和每個候選區(qū)域?qū)儆跈z測目標(biāo)的得分。共享卷積層輸出卷積特征圖上的滑動小網(wǎng)絡(luò)完全連接到輸入卷積特征圖的n×n窗口。每個滑動窗口映射到一個低維向量,然后輸出到同級回歸層和分類層。對于尺寸大小為W×K的卷積特征,共有W×K個候選幀。
(3)目標(biāo)檢測網(wǎng)絡(luò)
目標(biāo)檢測部分主要是由空間金字塔池化網(wǎng)絡(luò)組成[9]。1)池化層被視為單層空間金字塔。2)對原始圖像只進行一次卷積,得到整幅圖像的特征,并加到候選框中。將每個候選幀的卷積特征輸入到下一層。利用固定H×W大小空間范圍,提取出H×W大小的RoI子窗口。并將這些子窗口通過最大池映射到相應(yīng)的網(wǎng)格單元。
(4)目標(biāo)分類
利用候選框的特征圖計算其分類類別,再通過邊界框回歸得到檢測框的最終精確位置。多任務(wù)RPN訓(xùn)練損失函數(shù)如公式(1)所示。
i是每一批樣本中一個候選框的索引,pi is是候選框i一個目標(biāo)的概率,the prediction probability of the target.如果候選框區(qū)域?qū)儆谇熬澳繕?biāo),則標(biāo)記為1,如果候選框區(qū)域是背景目標(biāo)則為0,vi是回歸邊框4個坐標(biāo)的參數(shù)向量,是前景目標(biāo)候選框區(qū)域的坐標(biāo)向量。
在實驗中,我們使用R-CNN和Faster R-CNN目標(biāo)檢測算法檢測前景目標(biāo)訓(xùn)練集圖像和前景目標(biāo)的車輛區(qū)域,并且這兩種檢測算法使用AlexNet卷積網(wǎng)絡(luò)模型,AlexNet結(jié)構(gòu)。
AlexNet網(wǎng)絡(luò)的前五層是卷積層,后三層是全連接層。卷積層由卷積層與池化層交替連接組成,卷積核最大尺寸為3×3,步長為2×2。在AlexNet中,池化層用于減少神經(jīng)元的數(shù)量,卷積網(wǎng)絡(luò)計算量并防治網(wǎng)絡(luò)過擬合。使用ReLU作為激活函數(shù)更容易計算網(wǎng)絡(luò)的前向傳播并反向梯度函數(shù),還有助于避免指數(shù)和除法等復(fù)雜計算。丟棄輸出小于0的隱藏層神經(jīng)元以增加網(wǎng)絡(luò)稀疏性并減輕過擬合。我們調(diào)整實驗中的AlexNet網(wǎng)絡(luò)結(jié)構(gòu),并輸出提取的車輛區(qū)域。
為了實現(xiàn)對車輛區(qū)域檢測后的車型分類識別,將車輛檢測算法得到的車輛前景區(qū)域引入到另一個卷積神經(jīng)網(wǎng)絡(luò)進行車型識別。卷積神經(jīng)網(wǎng)絡(luò)使用一定數(shù)量的卷積核并以一定的步長滑動對輸入圖像進行卷積操作以提取卷積層中的特征。每個卷積核關(guān)注檢測區(qū)域的不同特征,因此卷積操作可以獲得不同的特征映射。將這些特征映射傳遞到下層卷積層,然后下層卷積層使用一定數(shù)量的卷積核來提取上層的特征映射,此操作將重復(fù)進行,獲得卷積核的權(quán)重參數(shù)。然后將卷積層與全連接層相連,全連接層對提取的車型特征進行分類。利用基于深度卷積網(wǎng)絡(luò)的方法,可以提取到被傳統(tǒng)方法忽略的特征,可以明顯提高車型識別精度。在車型分類中,我們對AlexNet,Vggnet16,Vggnet19,GoogLenet,Resnet50,Resnet101等分類模型進行研究。為了進一步提高車型檢測識別的實時性,將從每次車型檢測中的車型檢測區(qū)域圖像,同時將檢測到的候選區(qū)域圖像一起截取,并送到車型分類網(wǎng)絡(luò)。
本實驗所用的計算機內(nèi)存為64G,GPU為Georce GTX 1080 Ti,軟件系統(tǒng)為matlab 2017b。數(shù)據(jù)集采用斯坦福大學(xué)提供的8041張圖片對測試模型進行測試。為了分析每個模型的具體訓(xùn)練過程,我們給出每個檢測分類網(wǎng)絡(luò)訓(xùn)練損失函數(shù)曲線和精度曲線。比較分析損失函數(shù)曲線和精度曲線,我們發(fā)現(xiàn)Resnet-101在所有模型中訓(xùn)練收斂最快,其最快的損失接近于零精度,其最快的準確度接近100%。
實驗結(jié)果表明,基于Faster R-CNN進行車輛目標(biāo)檢測方法,能夠?qū)⑻卣魈崛?,候選ROI區(qū)域邊界生成,線性回歸和分類集成一個網(wǎng)絡(luò)結(jié)構(gòu)中,從而大大提高了網(wǎng)絡(luò)的檢測速度,其檢測時間損耗只有原網(wǎng)絡(luò)的1/12。對于車輛分類識別網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練過程中我們略微調(diào)整幾個網(wǎng)絡(luò)和網(wǎng)絡(luò)參數(shù),并收集相關(guān)的訓(xùn)練實驗信息,比較和分析了R-CNN和Faster R-CNN兩種檢測結(jié)構(gòu)的準確率。在測試集得到的實驗結(jié)果如表1所示,精度計算公式如(2)所示。
其中,CR表示模型識別準確率,CN表示正確分類樣本數(shù),EN表示錯誤分類樣本數(shù),TN表示樣本總數(shù)。
為了更好地理解不同網(wǎng)絡(luò)結(jié)構(gòu)在級聯(lián)Faster R-CNN的情況下的車型分類和識別性能。針對不同卷積網(wǎng)絡(luò)模型車型類別的識別準確度,AlexNet的車型識別平均準確率為50.44%,Vggnet-16的車型識別平均準確率為74.05%,Vggnet-19的車型識別平均準確率為79.80%,GoogLenet的車型識別平均準確率為75.05%,Resnet-50的車型識別平均準確率為77.13%,Resnet-101的車型識別平均準確率為78.40%。
本文研究了基于卷積神經(jīng)網(wǎng)絡(luò)的城市交通視頻監(jiān)控中的車輛檢測與車型識別。實驗結(jié)果表明,通過增加訓(xùn)練數(shù)據(jù)集,修改參數(shù)和更換模型,有助于提高車輛識別分類率,減小識別時間。我們可以不斷補充和完善實際交通監(jiān)控中的訓(xùn)練數(shù)據(jù)集,進一步提高模型分類的準確性。在未來研究中,我們將考慮在實際交通流量檢測中驗證使用該方法,并進一步提高實時算法的準確性和魯棒性,從而更好地解決實際交通中的車輛檢測與車型識別問題。