楊肖,劉淼
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院)
每年由于霧氣和道路積雪引發(fā)的交通安全事故不勝枚舉,駕駛員通過道路廣播獲取天氣信息,如遇惡劣天氣可提前做出反應(yīng),但在一些沒有道路廣播的地方則會比較被動。本文提出了一種基于樹莓派平臺的實(shí)時(shí)霧氣和路面積雪檢測系統(tǒng),并基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)[1]的圖像識別技術(shù)進(jìn)行了檢測,即使在低功耗、低規(guī)格的情況,系統(tǒng)仍可以進(jìn)行實(shí)時(shí)檢測。本文比較并分析了4 個卷積神經(jīng)網(wǎng)絡(luò)模型(MobileNetV1[2],MobileNetV2[3],ResNet50[4],Inception V3[5])在工作站和樹莓派平臺上的檢測準(zhǔn)確性以及工作速度,表明MobileNet深度學(xué)習(xí)算法在樹莓派平臺上的工作速度要比ResNet50 和Inception V3 快,更適用于樹莓派。
(1)樹莓派4B 開發(fā)板
樹莓派開發(fā)板是一款基于ARM 的微型電腦主板[6],外觀如圖1 所示。以SD/MicroSD 卡為內(nèi)存硬盤,卡片主板周圍有1/2/4 個USB 接口和1 個以太網(wǎng)接口,可連接鍵盤、鼠標(biāo)和網(wǎng)線,同時(shí)擁有視頻模擬信號的電視輸出接口和HDMI 高清視頻輸出接口。以上部件全部整合在僅比信用卡稍大的主板上,具備所有PC 的基本功能,只需接通電視機(jī)和鍵盤,就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等功能,也是嵌入式深度學(xué)習(xí)的理想平臺。本文在樹莓派4B 上編寫和執(zhí)行代碼。
圖1 樹莓派開發(fā)板Fig.1 Raspberry Pi Development Boards
(2)TF 卡
樹莓派不自帶硬盤,所以應(yīng)自配一個TF 卡作為樹莓派的硬盤,推薦使用16 G 以上容量的TF 卡。
(3)攝像頭
系統(tǒng)需要一個能夠采集路面信息的設(shè)備,如圖2 所示。此設(shè)備具有1 000 萬像素的分辨率,視頻清晰度較好,可通過USB 連接到樹莓派。
圖2 攝像頭Fig.2 Camera
軟件支持可分為樹莓派操作系統(tǒng)安裝和編程環(huán)境搭建。
1.2.1 樹莓派操作系統(tǒng)
TF 卡作為樹莓派的系統(tǒng)硬盤,樹莓派可選操作系統(tǒng)很多,本文選用的是樹莓派官方操作系統(tǒng)Raspberry Pi OS,其優(yōu)點(diǎn)是安全可靠。
1.2.2 編程環(huán)境搭建
本文使用Python 作為編程語言[7],Python 普遍使用于深度學(xué)習(xí)領(lǐng)域,其優(yōu)點(diǎn)是擁有非常完善的基礎(chǔ)代碼庫和大量的第三方庫,如TensorFlow,OpenCV 和Numpy 等,第三方庫可大大減少編程工作量。Python 的不足之處一是運(yùn)行速度慢,二是代碼不能加密。
現(xiàn)有CNN 結(jié)構(gòu)已從AlexNet[8]發(fā)展到InceptionNet,ResNet 等,并且結(jié)構(gòu)越來越深,參數(shù)數(shù)量也越來越多,如深度殘差網(wǎng)絡(luò)(ResNet)的層數(shù)已經(jīng)多達(dá)152 層。此類網(wǎng)絡(luò)適用于高性能服務(wù)器或工作站,但不適用于低端、低功耗的嵌入式和移動設(shè)備,于是就出現(xiàn)了MobileNet 這種更輕量級、更快速的CNN 網(wǎng)絡(luò)。
MobileNetV1 的核心思想是用深度級可分離卷積(Depthwise separable convolution)[9]來代替標(biāo)準(zhǔn)卷積核,Depthwise separable convolution 的基本結(jié)構(gòu)如圖3 所示。
圖3 標(biāo)準(zhǔn)卷積和深度級可分離卷積結(jié)構(gòu)圖Fig.3 Standard convolution and depthwise separable convolution structure diagram
深度級可分離卷積把標(biāo)準(zhǔn)卷積分解為一個深度卷積(Depthwise convolution)和一個 1×1 的點(diǎn)式卷積(Pointwise convolution),分別起濾波和線性組合的作用,同時(shí)減少參數(shù)量和計(jì)算量。
深度級可分離卷積在計(jì)算量上與標(biāo)準(zhǔn)卷積的差別可通過式(1)—式(8)推導(dǎo)出來。
為分析方便假設(shè)輸入特征圖寬度和長度相同,特征圖大小為
式中:Qin——輸入特征圖大小;Hin——輸入特征圖的高度;H'in——輸入特征圖的寬度,且與Hin大小相同;M——輸入特征圖通道數(shù)。
假設(shè)輸出特征圖寬度和高度相同,且與輸入特征圖的寬高相同,則輸出特征圖大小為
式中:Qout——輸出特征圖大?。籋out——輸出特征圖高度;H'out——輸出特征圖寬度,且與Hout大小相同;N——輸出特征圖通道數(shù)。
那么,對于標(biāo)準(zhǔn)卷積核k×k,其計(jì)算量為
式中:W1——標(biāo)準(zhǔn)卷積核計(jì)算量。
對于深度卷積,其計(jì)算量為
式中:Wd——深層卷積計(jì)算量。
對于點(diǎn)式卷積,其計(jì)算量為
式中:Wp——點(diǎn)式卷積計(jì)算量。
故深度級可分離卷積總計(jì)算量為
式中:W2——深度級可分離卷積總計(jì)算量。
深度級可分離卷積和標(biāo)準(zhǔn)卷積計(jì)算量比值為
式中:V——深度級可分離卷積和標(biāo)準(zhǔn)卷積計(jì)算量比值。
式(7)可化簡為
用于檢測霧氣和路面積雪的算法結(jié)構(gòu)如圖4所示。首先,使用攝像頭采集道路圖像,將圖像輸入樹莓派,然后對圖像進(jìn)行預(yù)處理,再將預(yù)處理后的圖像分別作為霧氣和積雪數(shù)據(jù)訓(xùn)練的CNN 結(jié)構(gòu)的輸入。CNN 輸出最終通過二元分類器(Binary Classifier)對霧氣和積雪進(jìn)行分類,該過程通過樹莓派平臺完成。最后將檢測結(jié)果發(fā)送到服務(wù)器。
圖4 算法結(jié)構(gòu)圖Fig.4 Algorithm structure diagram
由于拍攝設(shè)備在采集圖像過程中受工作環(huán)境、電子元器件和電路結(jié)構(gòu)等影響,會引入各種噪聲。在圖像信號傳輸過程中,由于傳輸介質(zhì)和記錄設(shè)備等的不完善也會產(chǎn)生圖像噪聲。圖像噪聲會干擾圖片原本攜帶的信息,進(jìn)而影響算法的準(zhǔn)確性,通過圖像預(yù)處理來消除無關(guān)信息,改善圖像效果,突出圖像特征,便于計(jì)算機(jī)進(jìn)行識別和分析。根據(jù)圖像處理所在空間的不同,可以分為基于空間域的增強(qiáng)方法和基于頻率域的增強(qiáng)方法??臻g域即圖像本身,這種方法直接對圖像的像素進(jìn)行處理;頻率域則是以修改圖像的傅里葉變換為基礎(chǔ)。針對空間域和頻率,有多種方法實(shí)現(xiàn)圖像預(yù)處理[10]。
基于空間域有均值濾波和中值濾波等方法,均值濾波包括鄰域平均法和加權(quán)平均法等?;陬l域有低通濾波和高通濾波,低通濾波包括梯形低通濾波、指數(shù)低通濾波和理想低通濾波等[11];高通濾波包括梯形高通濾波、指數(shù)高通濾波和理想高通濾波等。
在模型訓(xùn)練和測試中,使用了40 000 張有霧氣圖像和正常圖像,以及40 000 張積雪圖像和正常圖像,其中36 000 張作為訓(xùn)練集,4 000 張用來測試訓(xùn)練模型。
用于訓(xùn)練的所有4 個模型均使用原始模型進(jìn)行了訓(xùn)練,而沒有進(jìn)行任何網(wǎng)絡(luò)修改。使用4 個NVIDIA GeForce GTX1080Ti 作為訓(xùn)練環(huán)境,設(shè)置初始學(xué)習(xí)率為0.001。在訓(xùn)練過程中,具有學(xué)習(xí)率降低和提前終止功能,如果在訓(xùn)練過程中的5 個訓(xùn)練輪數(shù)內(nèi)驗(yàn)證損失沒有改善,則學(xué)習(xí)率降低到1/5。測試訓(xùn)練好的模型的性能,測試結(jié)果見表1。
表1 各個模型的準(zhǔn)確率Tab.1 Accuracy of each model
測試使用上述4 000 張測試集圖片,在工作站上進(jìn)行。從表1 中數(shù)據(jù)可知所有4 個模型的準(zhǔn)確度均達(dá)到97%以上,說明各個模型性能較好,都可以較好地完成圖像識別工作。
將1 000 張道路圖像分別在工作站和樹莓派中進(jìn)行道路檢測,得出每個模型處理1 000 張圖像所需時(shí)間,并計(jì)算出每秒處理圖像的平均張數(shù),定義為FPS,數(shù)據(jù)見表2。
表2 各個模型在工作站和樹莓派上的運(yùn)行速度Tab.2 Running speed of each model on workstation and Raspberry Pi
可知,在工作站上,與MobileNetV1 的最短時(shí)間74.43 s 和Inception V3 的最長時(shí)間82.75 s 相差為8.32 s,但樹莓派上的結(jié)果顯示出很大差異,Inception V3 使用了2 246.71 s,對于MobileNetV1和MobileNetV2,所需的時(shí)間分別為637.67 s 和739.93 s,而FPS 的結(jié)果為1.57、1.35。這說明在低規(guī)格樹莓派平臺中,像InceptionV3 這種復(fù)雜的網(wǎng)絡(luò)并不適用,而MobileNet 這種輕量模型較適用。
本文設(shè)計(jì)的基于卷積神經(jīng)網(wǎng)路地道路霧氣和路面積雪的檢測系統(tǒng),對霧氣和路面積雪的檢測準(zhǔn)確率為97%以上。通過將MobileNetV1,MobileNetV2,ResNet50,Inception V3模型進(jìn)行對比,包括圖像識別準(zhǔn)確率對比和在工作站及樹莓派上的處理速度對比,證明MobileNet 這種輕量模型更適用于本系統(tǒng)。