馬 飛 ,劉 禎 *
(1.湖北文理學(xué)院 純電動(dòng)汽車動(dòng)力系統(tǒng)設(shè)計(jì)與測試湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 襄陽 441053;2.湖北文理學(xué)院 汽車與交通工程學(xué)院,湖北 襄陽 441053)
環(huán)境感知、行為決策以及動(dòng)力控制三大模塊大體組成無人駕駛車輛系統(tǒng)的總體架構(gòu)。其中無人車“智能”的核心模塊是行為決策。動(dòng)力控制模塊對無人車進(jìn)行運(yùn)動(dòng)控制的基準(zhǔn)來自于行為決策模塊對周圍環(huán)境及自車信息的綜合[1],因此可以說行為決策模塊是無人車的大腦。組成行為決策模塊的方法主要有兩大類,一類是基于規(guī)則的行為決策方法,例如有限狀態(tài)機(jī)法,此方法的優(yōu)點(diǎn)有邏輯清楚、實(shí)用性強(qiáng)等;另一類是基于深度學(xué)習(xí)的決策方法[2]以及基于決策樹[3],支持向量機(jī)(SVM)[4]等機(jī)器學(xué)習(xí)的決策方法。由于不同道路的環(huán)境差異較大,而基于規(guī)則的行為決策模型泛化能力差,因此難以滿足車輛在隨機(jī)道路上行駛時(shí)所產(chǎn)生的復(fù)雜決策,基于深度學(xué)習(xí)的決策方法,在經(jīng)過海量道路數(shù)據(jù)訓(xùn)練后的網(wǎng)絡(luò)模型能達(dá)到較高的泛化能力以及極強(qiáng)的靈活性,因而現(xiàn)在多在實(shí)際落地場景中被采用。但是無論采用哪種決策方法,其決策質(zhì)量的好壞極大程度取決于車輛感知層輸入數(shù)據(jù)的好壞。一般來說,感知層的數(shù)據(jù)來源有三大部分:(1)基于雷達(dá)、攝像頭等車載傳感器所獲得的局部環(huán)境信息。(2)基于GPS、SLAM(Simultaneous Localization And Mapping)[5]等方法獲取的自車定位信息。(3)地理地圖信息和任務(wù)信息[6]。其中實(shí)時(shí)反映無人車運(yùn)行狀況的信息為基于雷達(dá)、攝像頭等獲取的局部環(huán)境信息。而車載激光雷達(dá)有對遠(yuǎn)距離小目標(biāo)的探測效果不佳、信息處理量體積大等缺陷,又因?yàn)樯疃葘W(xué)習(xí)方法對圖像處理有著獨(dú)特的優(yōu)越性,因此現(xiàn)階段無人車對于上述任務(wù)的完成多使用單/雙攝像頭來實(shí)現(xiàn)。通過從攝像頭得到原始圖像數(shù)據(jù)直接傳遞給深度卷積神經(jīng)網(wǎng)絡(luò)算法模型,網(wǎng)絡(luò)模型將對圖像信息進(jìn)行處理,提取出其中豐富的圖像特征以及語義信息后輸出。本文通過對比兩類應(yīng)用于目標(biāo)檢測算法的卷積神經(jīng)網(wǎng)絡(luò)模型,提出YOLO 實(shí)時(shí)目標(biāo)檢測系列算法在交通道路上對于目標(biāo)檢測的應(yīng)用過程示例,為下層決策系統(tǒng)提供準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域一個(gè)熱點(diǎn)任務(wù),其目的是在圖像數(shù)據(jù)中找出目標(biāo)物體的位置邊框以及對目標(biāo)物體的所屬類別進(jìn)行分類[7]。如今目標(biāo)檢測相關(guān)算法已經(jīng)被應(yīng)用于各行各業(yè)之中。例如在車輛無人駕駛領(lǐng)域被應(yīng)用于道路檢測[8]、行人檢測[9]、交通異常事件檢測[10]等;在醫(yī)藥領(lǐng)域被用于醫(yī)藥空瓶表面氣泡檢測[11]、對牙齦炎早期跡象的預(yù)防檢測[12]、對病人進(jìn)行醫(yī)學(xué)診斷[13]等,事實(shí)上目標(biāo)檢測神經(jīng)網(wǎng)絡(luò)模型還在安檢安防領(lǐng)域[14-17],光學(xué)遙感領(lǐng)域[18-20]有著較為廣泛的應(yīng)用。
大體來說,目標(biāo)檢測算法根據(jù)是否提前生成候選框而分為兩大類。一類是傳統(tǒng)的目標(biāo)檢測算法,一類是基于深度學(xué)習(xí)的目標(biāo)檢測算法。傳統(tǒng)目標(biāo)檢測算法往往通過人工設(shè)計(jì)的特征來選擇生成候選框,這導(dǎo)致了在網(wǎng)絡(luò)的訓(xùn)練過程中會產(chǎn)生很多冗余的窗口,整體計(jì)算步驟繁多,造成網(wǎng)絡(luò)的檢測速度慢,實(shí)時(shí)性差[21]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法省去了提前生成候選框這一步驟,而將對圖像數(shù)據(jù)的特征提取、對目標(biāo)物體的類別分類和位置預(yù)測都結(jié)合到了一個(gè)過程進(jìn)行,使得目標(biāo)檢測這一過程簡化為一種端到端的問題[22]。這對網(wǎng)絡(luò)模型的檢測速度提升有著較為樂觀的提升,但是精度有著些許的降低?;诠I(yè)實(shí)際場景中對實(shí)時(shí)性的高要求,如今多采用基于深度學(xué)習(xí)的目標(biāo)檢測算法模型。
在2012 年,Hinton 等人提出AlexNet 網(wǎng)絡(luò)并取得當(dāng)年的ILSVRC 圖像分類比賽冠軍以后,基于卷積神經(jīng)網(wǎng)絡(luò)的圖像算法就開始在圖像處理問題上大放異彩。2014年,經(jīng)過兩年的融合改進(jìn),Grishick 等人提出R-CNN[23]網(wǎng)絡(luò)模型。該網(wǎng)絡(luò)模型結(jié)構(gòu)示意圖如圖1 所示。
圖1 R-CNN 網(wǎng)絡(luò)結(jié)構(gòu)圖[23]
R-CNN 工作的大概流程為,首先對輸入圖像進(jìn)行候選區(qū)域的提取,然后利用CNN 對每個(gè)區(qū)域進(jìn)行定長特征向量的抽取,最后利用SVM 進(jìn)行目標(biāo)分類。對于圖像分類任務(wù)來說,R-CNN 首次應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)并借鑒了滑框的思想對區(qū)域圖像信息進(jìn)行識別。
2015 年,Ren 等人在對前兩類R-CNN 網(wǎng)絡(luò)進(jìn)行優(yōu)化設(shè)計(jì)以后提出了Faster R-CNN[24]。在Faster R-CNN中,作者真正意義上實(shí)現(xiàn)了將圖像候選框的生成,圖像特征的提取,對目標(biāo)物體的位置回歸與所屬類別的分類都整合到一個(gè)網(wǎng)絡(luò)模型中去。這些步驟極大程度地提高了網(wǎng)絡(luò)模型的檢測速度,讓Faster R-CNN 成為當(dāng)時(shí)第一個(gè)準(zhǔn)實(shí)時(shí)目標(biāo)檢測網(wǎng)絡(luò)模型。
自基于深度學(xué)習(xí)的目標(biāo)檢測算法被提出以來,使用該方法構(gòu)建的網(wǎng)絡(luò)模型不斷地被應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域,并且在該領(lǐng)域取得了很多不錯(cuò)的成績[25]。YOLO 目標(biāo)檢測系列算法因?yàn)槠涓邥r(shí)效性,高準(zhǔn)確性,輕量性脫穎而出,在工業(yè)中現(xiàn)已被用于施工場景的安全帽實(shí)時(shí)檢測,高壓開關(guān)設(shè)備異常發(fā)熱點(diǎn)目標(biāo)檢測,衛(wèi)星圖像船只實(shí)時(shí)檢測等領(lǐng)域[26-30]。
YOLO 系列算法的初衷就在于解決傳統(tǒng)目標(biāo)檢測算法速度慢、時(shí)效性差等問題。YOLO 目標(biāo)檢測算法系列的發(fā)展從2016 年開始,其正式版到現(xiàn)在已經(jīng)迭代到了YOLOv4。YOLOv1 算法模型由 Redmon 提出[31],相對于傳統(tǒng)目標(biāo)檢測算法,YOLOv1 算法模型的檢測速度已有極大地提升,達(dá)到了45f/s。YOLOv1 算法的工作流程如圖2所示。
圖2 YOLOv1 算法工作流程圖[31]
從圖中可以看出,YOLOv1 算法模型省略了傳統(tǒng)目標(biāo)檢測算法模型中提前生成候選框的步驟,這是提升其檢測速度的一大措施。在2017 年,Redmon 又提出了YOLOv2[32]。在 YOLOv2 算法模型中,Redmon 主要對 v1階段模型進(jìn)行了一系列的改進(jìn),使得算法模型的輸出在原有高速的基礎(chǔ)上提升了對目標(biāo)物體的定位準(zhǔn)確性,經(jīng)過改進(jìn)后的算法模型MAP 具有顯著提高。
2018 年,Redmon 繼續(xù)在 YOLOv2 算法模型的基礎(chǔ)上提出了YOLOv3 實(shí)時(shí)目標(biāo)檢測算法[33]。在YOLOv3 算法中,Redmon 更換了前兩代模型的骨干網(wǎng)絡(luò)模型,改為采用DarkNet-53。這個(gè)做法使模型在保留原有高檢測速度的同時(shí),進(jìn)一步提升了檢測精度。YOLO 系列目標(biāo)檢測網(wǎng)絡(luò)的最后一次迭代發(fā)生在2020 年,Bochkovskiy 等人提出了YOLOv4[34]。YOLOv4 網(wǎng)絡(luò)模型相對于前三代網(wǎng)絡(luò)模型最大的改變在于其開始考慮網(wǎng)絡(luò)模型在現(xiàn)實(shí)場景下的部署問題。YOLOv4 中提出了一種讓用戶自己訓(xùn)練高效目標(biāo)檢測網(wǎng)絡(luò)模型的方法,只需要使用一張1080Ti 或者2080Ti 的GPU。Redmon 還對YOLOv4 網(wǎng)絡(luò)模型做了一系列的微調(diào),例如更換新的骨干網(wǎng)絡(luò),使用正則化、數(shù)據(jù)增強(qiáng)等,這些步驟使得YOLOv4 在前四代模型中的性能達(dá)到了最優(yōu)。
根據(jù)對上述幾類目標(biāo)檢測算法模型的說明及對照,得出幾類目標(biāo)檢測算法模型的適用場景對照表如表1 所示。
表1 幾類目標(biāo)檢測算法模型的適用場景對照表
對于無人車在道路上實(shí)時(shí)運(yùn)行的場景,無人車需要不斷注意周邊的車輛以及行人,另外無人車還需要對其行駛路面的車道線、路口邊的交通標(biāo)志、道路前方發(fā)生的事故進(jìn)行檢測[35],之后感知模塊將車載傳感器收集到的數(shù)據(jù)向決策模塊傳遞,決策模塊接收后采用內(nèi)置的決策算法向動(dòng)力控制模塊輸出信號,車輛自主實(shí)現(xiàn)避障,轉(zhuǎn)變車道線等功能,保障車內(nèi)乘員的生命安全。如今基于算力更強(qiáng)大的嵌入式設(shè)備,深度學(xué)習(xí)計(jì)算卡,GPU,以及Autoencoder 預(yù)訓(xùn)練和并行計(jì)算等技術(shù)的發(fā)展,使得在移動(dòng)端設(shè)備上訓(xùn)練并使用深度神經(jīng)網(wǎng)絡(luò)成為現(xiàn)實(shí)[36]。本文提出一種基于YOLOv4 神經(jīng)網(wǎng)絡(luò)無人駕駛平臺的解決方案如圖3所示。
圖3 基于YOLOv4 的無人駕駛平臺解決方案
借鑒于NVIDIA 構(gòu)建的Driven-er 平臺[37]。該方法首先在線上平臺利用高質(zhì)量的數(shù)據(jù)集對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,然后將訓(xùn)練好的網(wǎng)絡(luò)模型部署到車載嵌入式計(jì)算平臺。與此同時(shí),利用無人駕駛平臺提供算法庫支持,實(shí)現(xiàn)無人車無線更新功能。無人車在道路上行駛時(shí),車載攝像頭獲取前方道路圖像數(shù)據(jù),之后向后傳遞給預(yù)先部署在車載式嵌入計(jì)算平臺的計(jì)算卡中,YOLOv4 神經(jīng)網(wǎng)絡(luò)模型對傳遞過來的圖像數(shù)據(jù)進(jìn)行卷積、池化等操作提取圖像特征,之后輸出前方車輛的位置信息。當(dāng)手動(dòng)進(jìn)行轉(zhuǎn)向時(shí),方向盤角度傳感器得到一個(gè)旋轉(zhuǎn)角,之后利用網(wǎng)絡(luò)預(yù)測的旋轉(zhuǎn)角與之形成Loss Function。最后網(wǎng)絡(luò)反向傳播,并調(diào)整權(quán)重,形成一個(gè)閉環(huán)控制系統(tǒng),其工作流程如圖4所示。
圖4 使用YOLOv4 進(jìn)行道路目標(biāo)檢測的車輛示意圖
由于深度學(xué)習(xí)算法對圖像處理的高效性,使得無人車可以利用單/雙目攝像頭實(shí)現(xiàn)對自動(dòng)控制的需求,減輕了傳統(tǒng)方法對昂貴的雷達(dá)、激光掃描儀等車載傳感器的依賴性。值得一提的是,2020 年華為諾亞方舟實(shí)驗(yàn)室的一篇論文中提出了一種新型的端側(cè)神經(jīng)網(wǎng)絡(luò)架構(gòu),稱之為GhostNet[38]。該網(wǎng)絡(luò)包含一種全新的神經(jīng)網(wǎng)絡(luò)基本單元Ghost 模塊,被用來處理神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)所產(chǎn)生的冗余特征圖。其基本思想就是利用一種更加廉價(jià)的方法來生成那些極其相似的特征圖,而這些特征圖在原神經(jīng)網(wǎng)絡(luò)中是以卷積等操作生成的,因此Ghost 模塊減少了神經(jīng)網(wǎng)絡(luò)的計(jì)算成本,同時(shí)保持可比的性能。在效率和準(zhǔn)確性方面,使用提出的新模塊構(gòu)建的GhostNet 均優(yōu)于最新的輕量神經(jīng)網(wǎng)絡(luò)。
本文對無人車如何實(shí)現(xiàn)“智能”進(jìn)行了解釋,并對幾種主流的目標(biāo)檢測算法進(jìn)行了概述。對目標(biāo)檢測算法進(jìn)行了詳細(xì)地描述。從實(shí)現(xiàn)無人車自主決策的角度來說,機(jī)器視覺以及深度學(xué)習(xí)等方法將會扮演重要的角色。如今已不乏尋求純視覺作為自動(dòng)駕駛解決方案的大廠,例如Tesla、百度的Apollo Lite、華為、蔚來等。雖然神經(jīng)網(wǎng)絡(luò)作為圖像處理有獨(dú)特的優(yōu)勢,但是其仍然存在一些問題和技術(shù)瓶頸。比如如何處理神經(jīng)網(wǎng)絡(luò)的黑盒性、如何在訓(xùn)練集很小的情況下對網(wǎng)絡(luò)進(jìn)行訓(xùn)練以及如何更好的利用目標(biāo)檢測算法對無人車決策模塊進(jìn)行優(yōu)化等,對于這些現(xiàn)存問題的解決將會是未來深度學(xué)習(xí)領(lǐng)域和無人駕駛視覺領(lǐng)域融合研究的重點(diǎn)。