丁 潔,劉晉峰,楊祖莨,閻高偉
(太原理工大學(xué) 電氣與動(dòng)力工程學(xué)院,太原 030024)
隨著國(guó)民經(jīng)濟(jì)的快速發(fā)展,近年來(lái)機(jī)動(dòng)車(chē)保有量大幅度增加,造成了嚴(yán)重的交通擁堵[1]。有關(guān)研究表明,擁堵發(fā)生時(shí)低速行駛的車(chē)輛會(huì)排放更多廢氣。當(dāng)車(chē)速為5 km/h以下時(shí),尾氣氮氧化物排放系數(shù)為7;而當(dāng)車(chē)速為35 km/h以上時(shí),尾氣氮氧化物排放系數(shù)為3[2]。
對(duì)于交通擁堵的檢測(cè),目前主要采用的是通過(guò)GPS定位檢測(cè)、微波檢測(cè)、紅外檢測(cè)和線(xiàn)圈檢測(cè)等物理檢測(cè)手段來(lái)獲取交通流參數(shù)[3],通過(guò)如車(chē)輛數(shù)量、車(chē)輛平均行駛速度等參數(shù)進(jìn)行交通擁堵判斷。然而,這些傳統(tǒng)方法均存在造價(jià)高、對(duì)路面破壞較大等問(wèn)題。
隨著計(jì)算機(jī)視覺(jué)的發(fā)展及公路上全路段視頻監(jiān)控的實(shí)現(xiàn),為基于視頻圖像的擁堵檢測(cè)提供可能[4]。目前基于視頻圖像的交通擁堵檢測(cè)方法大部分是對(duì)車(chē)輛數(shù)量進(jìn)行檢測(cè)。例如對(duì)感興趣區(qū)域進(jìn)行處理[5],提取車(chē)輛目標(biāo)以統(tǒng)計(jì)車(chē)輛數(shù),再根據(jù)車(chē)輛數(shù)進(jìn)行交通擁堵的判斷。再如,利用背景差分法和幀差法分析圖像的紋理變化情況,從而得出道路空間占有率和時(shí)間占有率以判斷道路擁堵的情況[6]。以上擁堵檢測(cè)方法易受環(huán)境變化的影響,如光照強(qiáng)度及路面反光等,無(wú)法應(yīng)用于不同的場(chǎng)景中。
近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)在圖像處理領(lǐng)域的應(yīng)用逐漸增多,其有著自動(dòng)提取圖像特征、魯棒性很強(qiáng)等優(yōu)點(diǎn)[7]。Lecun等[8]針對(duì)手寫(xiě)字符識(shí)別,首次提出了LeNet-5圖像識(shí)別模型,獲得了極佳的效果。Alex通過(guò)加深網(wǎng)絡(luò)層數(shù)、使用CUDA進(jìn)行訓(xùn)練等方式獲得了效果更好的AlexNet[9]。而后,谷歌提出的GoogLeNet與牛津大學(xué)提出的VGG(visual geometry group)模型以較小的卷積核尺寸增強(qiáng)了網(wǎng)絡(luò)的實(shí)用性及簡(jiǎn)潔性,分別獲得2014年ILSVRC競(jìng)賽的第一名、第二名,但是VGG在多個(gè)遷移學(xué)習(xí)任務(wù)中的表現(xiàn)優(yōu)于GoogLeNet[10]。之后基于CNN的分類(lèi)模型有了長(zhǎng)足發(fā)展,He等[11]在2016年提出了用于圖像識(shí)別的深度殘差模型ResNet,通過(guò)使用殘差結(jié)構(gòu)優(yōu)化了深層CNN模型。Howard等[12]于2017年提出了輕量級(jí)模型MobileNet,其通過(guò)深度可分離卷積優(yōu)化了模型結(jié)構(gòu),使檢測(cè)速度大大提高。目前,已有研究人員將經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用于道路擁堵識(shí)別中,如羅榮輝等[13]通過(guò)改進(jìn)AlexNet模型的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)檢測(cè)道路擁堵情況,檢測(cè)速度達(dá)到了0.012 s/幀,但是其存在模型臃腫、檢測(cè)速度較慢的缺點(diǎn)。因此,卷積神經(jīng)網(wǎng)絡(luò)在道路擁堵識(shí)別中的應(yīng)用仍有待發(fā)展。
基于以上研究,筆者提出一種利用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行道路擁堵判斷,實(shí)現(xiàn)對(duì)道路擁堵的準(zhǔn)確檢測(cè),并且檢測(cè)速度得到改進(jìn)。在文章第一部分設(shè)計(jì)了所使用的卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu),并對(duì)模型進(jìn)行訓(xùn)練。在第二部分進(jìn)行了對(duì)比實(shí)驗(yàn),利用多種卷積神經(jīng)網(wǎng)絡(luò)模型的分類(lèi)結(jié)果進(jìn)行比較,并對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了消融實(shí)驗(yàn)。第三部分對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了討論。
本文中所設(shè)計(jì)的基于CNN的分類(lèi)模型主要由3個(gè)模塊組成,如圖1所示分別為:圖片預(yù)處理模塊、卷積神經(jīng)網(wǎng)絡(luò)模塊和結(jié)果優(yōu)化模塊。下面將對(duì)模塊內(nèi)容進(jìn)行詳細(xì)介紹。
圖1 模塊組成Fig. 1 Module composition
圖片預(yù)處理模塊主要進(jìn)行的步驟為:
1)對(duì)圖片數(shù)據(jù)進(jìn)行增強(qiáng),包括了隨機(jī)翻轉(zhuǎn)、變換亮度等,以豐富數(shù)據(jù)集;
2)對(duì)圖像統(tǒng)一縮放為64×64大小,以便于輸入至卷積層中。
其中,訓(xùn)練集中某圖片操作結(jié)果如圖2所示。
圖2 圖片預(yù)處理效果圖Fig. 2 The preprocessing effect of a picture
本文中所設(shè)計(jì)的三層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 CNN模型結(jié)構(gòu)Fig. 3 CNN model structure
在圖3的結(jié)構(gòu)中,選用了5×5與3×3的小卷積核進(jìn)行特征提取,減少了參數(shù)數(shù)量,加快了訓(xùn)練與識(shí)別的速度。在每一層中使用Leaky-ReLU激活函數(shù)與Batch-Normalization。圖4為ReLU與Leaky-ReLU函數(shù)圖像,相較于普通使用的ReLU激活函數(shù),Leaky-ReLU更全面地保留了特征信息。
圖4 ReLU與Leaky-ReLU的函數(shù)圖像Fig. 4 Function image of ReLU and Leaky-ReLU
式(1)為L(zhǎng)eaky-ReLU函數(shù)公式,ai是(1,+∞)區(qū)間內(nèi)的固定參數(shù)。Leaky-ReLU給所有負(fù)值賦予一個(gè)非零斜率,保留了一定的特征效果。而結(jié)構(gòu)圖3中的Batch-Normalization層通過(guò)規(guī)范化卷積的輸出,使得激活函數(shù)的輸入值能進(jìn)入對(duì)輸入比較敏感的區(qū)域,避免了梯度消失問(wèn)題[14]。
(1)
本文中所設(shè)計(jì)的優(yōu)化模塊網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 優(yōu)化模塊結(jié)構(gòu)Fig. 5 Optimization module structure
在圖5的結(jié)構(gòu)中,F(xiàn)latten層可將卷積層3的輸出“壓平”,把多維輸入一維化,實(shí)現(xiàn)卷積層到全連接層的過(guò)渡;Dense層則為全連接層,對(duì)卷積的結(jié)果進(jìn)行特征的進(jìn)一步提取。其中,第一個(gè)Dense層含有128個(gè)神經(jīng)元,可將卷積層3中卷積層提取的局部特征進(jìn)行全連接,實(shí)現(xiàn)特征的融合;由于本文中針對(duì)的交通擁堵分類(lèi)是二分類(lèi)問(wèn)題,因此第二個(gè)Dense層只含有一個(gè)神經(jīng)元,作用為融合所有特征,便于之后進(jìn)行類(lèi)別概率計(jì)算。損失函數(shù)為二分類(lèi)交叉熵?fù)p失Sigmoid_cross_entropy,其公式為:
(2)
式中:t為Dense層的輸出,S(t)為輸出類(lèi)別概率,這樣就將卷積層的輸出變換為二分類(lèi)概率。
優(yōu)化模塊主要采用了DropOut算法以減輕過(guò)擬合的產(chǎn)生,并提高模型的泛化型。DropOut算法示意圖如圖6所示。
圖6 DropOut在神經(jīng)元中的作用Fig. 6 The role of DropOut in neurons
如圖6所示,左圖為未使用DropOut時(shí)正常的神經(jīng)網(wǎng)絡(luò)傳遞方式,其傳遞公式為:
(3)
圖6右圖為隨機(jī)放棄40%神經(jīng)元后的傳遞方式,其傳遞公式為[15]:
(4)
(5)
(6)
式中的Bernouli函數(shù)會(huì)生成隨機(jī)向量0或者1,起到DropOut的作用。
DropOut可以解決過(guò)擬合的原因在于[16]:
1)訓(xùn)練時(shí)可產(chǎn)生多種網(wǎng)絡(luò):在訓(xùn)練過(guò)程中,如果使用相同的數(shù)據(jù)去訓(xùn)練不同的網(wǎng)絡(luò),會(huì)得到不同的結(jié)果,那么將這些結(jié)果取平均后,可以有效避免過(guò)擬合。DropOut可以在每次訓(xùn)練時(shí)隨機(jī)放棄一些神經(jīng)元,模擬產(chǎn)生多種不同的網(wǎng)絡(luò)結(jié)構(gòu);
2)減少某些神經(jīng)元的敏感性:神經(jīng)網(wǎng)絡(luò)應(yīng)該在學(xué)習(xí)時(shí)更具有魯棒性,DropOut能讓一些神經(jīng)元不是每次都在網(wǎng)絡(luò)中出現(xiàn),這樣就有效減輕了網(wǎng)絡(luò)對(duì)特定信息的依賴(lài)。
在對(duì)模型進(jìn)行訓(xùn)練時(shí),使用9 457張圖片作為數(shù)據(jù)集,其中,5 000張圖片為訓(xùn)練集,2 320張圖片為驗(yàn)證集,2 137張圖片為測(cè)試集。所用圖片采集于山西省太原市街道內(nèi),數(shù)據(jù)集中包括了不同角度、不同光照條件下的場(chǎng)景圖片,如圖7所示,包含了不同角度、在白天夜晚?xiàng)l件下的場(chǎng)景。
圖7 不同角度、不同光照條件下的場(chǎng)景Fig. 7 Scenes under different angles and different lighting conditions
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時(shí),學(xué)習(xí)速率為0.001,每次迭代選擇32張訓(xùn)練集圖片進(jìn)行訓(xùn)練,訓(xùn)練輪次epochs=1 000,圖8為訓(xùn)練過(guò)程中的損失與準(zhǔn)確率指標(biāo)的展示。
圖8 訓(xùn)練過(guò)程Fig. 8 Training process
圖8結(jié)果表明,經(jīng)過(guò)1 000輪訓(xùn)練后,本文模型所達(dá)到的驗(yàn)證準(zhǔn)確率為99%。
為了驗(yàn)證優(yōu)化模塊的有效性,對(duì)模型結(jié)構(gòu)進(jìn)行了消融實(shí)驗(yàn),如表1所示,驗(yàn)證模型1不使用DropOut方法,其余結(jié)構(gòu)不變;驗(yàn)證模型2不使用Leaky-ReLU激活函數(shù)而使用普通的ReLU激活函數(shù),其余結(jié)構(gòu)不變。
表1 消融實(shí)驗(yàn)
對(duì)驗(yàn)證模型1、驗(yàn)證模型2在同樣的訓(xùn)練集下,以學(xué)習(xí)速率為0.001,每次迭代選擇32張訓(xùn)練集圖片進(jìn)行訓(xùn)練,訓(xùn)練輪次epochs=1 000,圖9、圖10為驗(yàn)證模型的訓(xùn)練結(jié)果展示。
圖9 驗(yàn)證模型1訓(xùn)練過(guò)程 Fig. 9 Training process of model 1
圖10 驗(yàn)證模型2訓(xùn)練過(guò)程Fig. 10 Training process of model 2
圖9、圖10表明,驗(yàn)證模型1、驗(yàn)證模型2在訓(xùn)練后均已收斂,且訓(xùn)練集的驗(yàn)證準(zhǔn)確率達(dá)99%以上。
本文的實(shí)驗(yàn)環(huán)境為Intel Core i7-8750H CPU(2.20 GHz)、Nvidia GeForce GTX 1050TI GPU(4G顯存)和16 GB RAM。對(duì)測(cè)試集中1 123張交通擁堵圖片、1 014張交通通暢圖片共計(jì)2 137張圖片進(jìn)行分類(lèi)后,所得結(jié)果如表2所示。
表2 本文模型分類(lèi)結(jié)果
由表2中測(cè)試集圖片的分類(lèi)結(jié)果可得本文使用的模型的分類(lèi)準(zhǔn)確率為98.1%。經(jīng)測(cè)試,分類(lèi)模型處理單張圖片的速度為0.004 s。
使用驗(yàn)證模型1對(duì)測(cè)試集圖片進(jìn)行分類(lèi)的結(jié)果如表3所示。
表3 驗(yàn)證模型1分類(lèi)結(jié)果
由表3中測(cè)試集圖片的分類(lèi)結(jié)果可得驗(yàn)證模型1的分類(lèi)準(zhǔn)確率為90.6%,效果明顯劣于使用了DropOut的本文模型。歸結(jié)其原因在于,對(duì)于使用了DropOut的網(wǎng)絡(luò)結(jié)構(gòu),其網(wǎng)絡(luò)在訓(xùn)練時(shí),相當(dāng)于進(jìn)行了訓(xùn)練數(shù)據(jù)的擴(kuò)充。這是由于總可以在訓(xùn)練集中找到一個(gè)樣本,使得該樣本在原始網(wǎng)絡(luò)上的輸出結(jié)果也能達(dá)到DropOut后的效果,所以每一次DropOut都相當(dāng)于增加了樣本,使得網(wǎng)絡(luò)能夠多尺度、更豐富地使用特征,分類(lèi)效果變得更好。
使用驗(yàn)證模型2對(duì)測(cè)試集圖片進(jìn)行分類(lèi)的結(jié)果如表4所示。
表4 驗(yàn)證模型2分類(lèi)結(jié)果
由表4中測(cè)試集圖片的分類(lèi)結(jié)果可得驗(yàn)證模型2的分類(lèi)準(zhǔn)確率為97.1%,效果略差于使用了Leaky-ReLU的本文模型。主要原因在于Leaky-ReLU相較于普通的ReLU激活函數(shù),通過(guò)給所有負(fù)值賦予一個(gè)非零斜率保留了更多的特征,因此分類(lèi)效果更佳。
為了進(jìn)一步表明所使用的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)的優(yōu)勢(shì),使用深度學(xué)習(xí)中經(jīng)典的VGG16、ResNetv1、InceptionV3和MobileNet模型進(jìn)行對(duì)比驗(yàn)證。VGG16、ResNetv1和InceptionV3均是廣泛應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)模型,其以網(wǎng)絡(luò)結(jié)構(gòu)規(guī)整、分類(lèi)性能良好應(yīng)用在各個(gè)領(lǐng)域。而MobileNet則是輕量化模型,更注重處理速度。使用訓(xùn)練集對(duì)VGG16、ResNetv1、InceptionV3和MobileNet模型進(jìn)行訓(xùn)練,學(xué)習(xí)速率為0.001,每次迭代選擇32張訓(xùn)練集圖片進(jìn)行訓(xùn)練。由于這些模型結(jié)構(gòu)比較龐大,為了保證網(wǎng)絡(luò)的收斂,增加了訓(xùn)練輪次,訓(xùn)練輪次epochs=100 000,并且在同一個(gè)測(cè)試集上進(jìn)行測(cè)試,其對(duì)交通擁堵的分類(lèi)結(jié)果如表5~8所示。
表5 VGG16分類(lèi)結(jié)果
由表5中測(cè)試集圖片的分類(lèi)結(jié)果可得利用VGG16模型的分類(lèi)準(zhǔn)確率為95.4%。經(jīng)測(cè)試,使用VGG16模型處理單張圖片的速度為0.027 s。
表6 ResNetv1分類(lèi)結(jié)果
由表6中測(cè)試集圖片的分類(lèi)結(jié)果可得利用ResNetv1模型的分類(lèi)準(zhǔn)確率為94.5%。經(jīng)測(cè)試,使用ResNetv1模型處理單張圖片的速度為0.017 s。
表7 InceptionV3分類(lèi)結(jié)果
由表7中測(cè)試集圖片的分類(lèi)結(jié)果可得利用InceptionV3模型的分類(lèi)準(zhǔn)確率為96.8%。經(jīng)測(cè)試,使用InceptionV3模型處理單張圖片的速度為0.025 s。
表8 MobileNet分類(lèi)結(jié)果
由表8中測(cè)試集圖片的分類(lèi)結(jié)果可得利用MobileNet模型的分類(lèi)準(zhǔn)確率為92%。經(jīng)測(cè)試,使用MobileNet模型處理單張圖片的速度為0.005 s。
將本文中所使用的模型稱(chēng)為Our-net。對(duì)比表2~8的結(jié)果,并計(jì)算FPS(frames per second)后如表9所示。
表9 分類(lèi)結(jié)果對(duì)比
由于本文所設(shè)計(jì)的模型卷積網(wǎng)絡(luò)層數(shù)較少,因此參數(shù)數(shù)量也較少。能在保持精確分類(lèi)的條件下,分類(lèi)速度大大優(yōu)于VGG16、ResNetv1和InceptionV3模型,F(xiàn)PS達(dá)到了250,比其他模型的最佳結(jié)果仍高50;而在維持分類(lèi)速度的條件下,分類(lèi)精度大大優(yōu)于MobileNet等模型,模型準(zhǔn)確率達(dá)到了98.1%,比其他模型的最佳結(jié)果仍高1.3%。
針對(duì)交通擁堵問(wèn)題,應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行道路圖片分類(lèi)。得到的結(jié)果表明,本文中設(shè)計(jì)的CNN模型的檢測(cè)效果大大優(yōu)于利用VGG16、ResNetv1、InceptionV3和MobileNet模型分類(lèi)方法,且檢測(cè)速度有較大的提高,能夠有效地對(duì)交通擁堵進(jìn)行判斷分類(lèi),最終交通擁堵檢測(cè)精度達(dá)到了98.1%,檢測(cè)速度達(dá)到250 FPS,為交通管理者進(jìn)行準(zhǔn)確道路管理提供了一個(gè)新的方案。