楚朋志 許博 肖雄子彥 趙偉明 薛萬坤
(上海交通大學學生創(chuàng)新中心,上海 200240)
由于在提高安全、效率及能源節(jié)約等方面具有極大的潛力,自動駕駛車輛將成為未來交通愿景的一個重要組成部分。智能傳感器、先進的數(shù)字地圖、無線通信技術(shù)以及電動車輛的進步,使得自動駕駛車輛能夠在普通城市道路上進行基本的自主行駛。
自動駕駛車輛主要利用攝像頭讓車輛具備感知環(huán)境的能力,攝像頭采集到實時視頻流之后,將其送入后端系統(tǒng)中完成對關(guān)鍵目標(如行人、斑馬線、障礙物等)的識別。除攝像頭外,還需要融合其他傳感器(如激光雷達)的信息,以輔助車輛控制。在車輛行進過程中,還需要對車道線進行識別,以實現(xiàn)精準駕駛,用于識別目標的感知系統(tǒng)可以通過傳統(tǒng)計算機視覺算法或者通過深度學習的目標識別技術(shù)實現(xiàn)。傳統(tǒng)視覺算法對環(huán)境變化及噪音魯棒性較差,難以滿足無人駕駛系統(tǒng)在實際應(yīng)用中面臨的環(huán)境復(fù)雜多變的需求。深度學習在如何降低神經(jīng)網(wǎng)絡(luò)訓練成本,提高網(wǎng)絡(luò)識別準確率等方面具有一定挑戰(zhàn),本文使用的ModelArts是華為云推出的一站式人工智能應(yīng)用、部署平臺,結(jié)合Hilens端側(cè)設(shè)備能夠直接將人工智能部署到硬件設(shè)備當中。本文按照真實車輛5∶1比例縮放建立了自動駕駛實驗平臺-自動駕駛小車,基于華為ModelArt、Hilens人工智能平臺實現(xiàn)了交通標志的識別,并能夠完成上述自動駕駛功能。
系統(tǒng)主要由車架、車輪、鋰電池、電控系統(tǒng)組成。系統(tǒng)實物如圖1所示。
圖1 自動駕駛實驗平臺
車架主要包括底盤、車殼、懸掛系統(tǒng)組成,底盤為4輪阿克曼轉(zhuǎn)向底盤。電控系統(tǒng)主要由控制器、傳感器、執(zhí)行機構(gòu)組成??刂破饔芍骺刂破?、從控制器和AI推理設(shè)備Hilens Kit組成,主、從控制器通過RS232進行通信,主控制器與Hilens Kit通過TCP進行通信。其中主控制器為瑞芯微的RK3399高性能主板,基于ROS開發(fā)平臺實現(xiàn)自動駕駛功能,從控制器為基于Arduino的單片機控制系統(tǒng),與AQMH3615NS驅(qū)動板一起控制底盤的運動。Hilens Kit內(nèi)置昇騰310 AI芯片,16TOPS算力,16路1080P視頻分析能力并自帶1路高清攝像頭,完成紅綠燈、斑馬線、交通標識檢測與識別。傳感器主要由激光雷達、超聲波雷達等組成,執(zhí)行機構(gòu)主要有控制底盤運動的減速電機和伺服電機組成。系統(tǒng)主要組成及其關(guān)系如圖2所示。
圖2 全系統(tǒng)架構(gòu)
軟件架構(gòu)基于ROS平臺開發(fā),主要實現(xiàn)車輛傳感器信息融合與車輛行駛控制。傳感器信息主要包括攝像頭信息、激光雷達信息、交通標志識別信息,如圖3所示,每種傳感器作為ROS中的一個節(jié)點,將自己的信息發(fā)布到ROS消息池中。其中攝像頭信息用來識別車道線、激光雷達用來識別障礙物、交通標志信息作為小車行進的主要控制變量。kinematicCtrl節(jié)點對各傳感器信息進行融合處理,生成小車驅(qū)動信息發(fā)送到車輛底盤。
圖3 傳感器信息傳遞流程
交通標志識別功能是車輛能夠完成自主行駛的關(guān)鍵,該功能使用華為ModelArts和Hilens端云協(xié)調(diào)開發(fā)。具體實現(xiàn)由數(shù)據(jù)準備、模型訓練、在線驗證、端云協(xié)同開發(fā)、端側(cè)部署步驟組成。
首先要進行圖像數(shù)據(jù)的采集,采用Hilens終端設(shè)備進行真實圖像采集,首先在Hilens上部署一個圖像定時捕捉的技能,利用Hilens自帶攝像頭進行,捕捉時保持Hilens固定位置,緩慢移動目標車輛,或者保持目標車輛固定,緩慢移動Hilens設(shè)備,這樣可以保證目標數(shù)據(jù)的豐富性,能夠保證不同大小,不同角度的目標。數(shù)據(jù)越多越豐富,算法所達到的效果就更好,這里至少保證每一類別的圖片數(shù)量為100張。
采集的數(shù)據(jù)存儲在華為云上,可以通過obs軟件將圖像數(shù)據(jù)打包下載到本地,進行數(shù)據(jù)清洗,經(jīng)過人為篩選,剔除圖像模糊或者無目標存在的圖片,這樣可以避免對精度帶來負面影響。同樣也需要對數(shù)據(jù)進行增強,如對圖片數(shù)據(jù)進行縮放、裁剪、變換等操作增加數(shù)據(jù)量,從而進一步提升模型的訓練精度,這里對上述圖片進行幾何變換操作,實現(xiàn)數(shù)據(jù)量的翻倍,將數(shù)據(jù)增強后的圖片上傳到華為云上。
接下來進行數(shù)據(jù)標注,這里采用華為云上的ModelArts的標注功能,ModelArts提供了基礎(chǔ)的通用標注工具,如矩形框、多邊形、圓形、點、線等。可以人工為每個類別進行少量的標注,然后使用ModelArts提供的智能標注功能進行自動標注,標注完成后再進行人工確認,可以減少標注的工作量。
在模型訓練環(huán)節(jié),首先要選擇合適的算法,ModelArts平臺提供了多種預(yù)制算法可供選擇,對于目標檢測人為,算法可以分為Anchor-based和Anchor-free兩種,常見的模型有SSD、RetinaNet、YOLO系列、EfficientDet等,其中YOLO系列以目標檢測的速度快見長,能夠?qū)崟r處理流媒體視頻。因此這里選用YOLO系列算法,目前ModelArts對YOLO V3支持較好。使用預(yù)制算法,僅需提供數(shù)據(jù)即可自動訓練。并且預(yù)制算法的性能和精度均經(jīng)過專業(yè)調(diào)優(yōu),能夠給開發(fā)者提供很快的訓練速度和很高的訓練精度。
如果預(yù)制算法不能滿足開發(fā)者的需求,開發(fā)者可以基于開源的計算引擎或開發(fā)庫(如Tensorflow、Pytorch、MindSpore等)的接口開發(fā)算法。
在模型訓練完成后,一般需要進入模型評估和調(diào)優(yōu)階段,以盡快發(fā)現(xiàn)模型的不足并進行優(yōu)化。ModelArts上使用模型評估功能是在得到首次訓練的模型之后,將模型推理結(jié)果、原始圖像和真實標簽送入模型評估模塊,從數(shù)據(jù)、模型兩個方面對模型的綜合能力進行評估,并給出改進模型能力的診斷建議。開發(fā)者據(jù)此可以快速調(diào)優(yōu)模型。如圖4所示,在ModelArts模型評估頁面中,會自動將錯誤的預(yù)測結(jié)果展示出來,并給出錯誤原因,并且將相同錯誤類型的個數(shù)統(tǒng)計出來,繪制成餅圖。
圖4 模型評估結(jié)果
從圖中可以看出r2的精度值為0,類別的誤檢和漏檢比例都很高,回到數(shù)據(jù)集中發(fā)現(xiàn)r2數(shù)據(jù)量為其他類別的1/4,因此需要增強r2類別的數(shù)據(jù)來提高r2的目標識別精度。
模型訓練好以后,可以通過在線部署的方式進行驗證,在線推理服務(wù)能夠同步地、實時地響應(yīng)客戶端請求,并將推理結(jié)果返回給客戶端。批量推理服務(wù)可以對輸入的一批數(shù)據(jù)進行推理,并將結(jié)果輸出到約定的存儲空間中,在實踐操作中可以先對單張圖片進行在線推理,如果結(jié)果符合預(yù)期,再進行批量推理,從而驗證模型的效果。
Hilens是面向端云協(xié)同人工智能應(yīng)用的一站式開發(fā)平臺??梢灾苯訉odelArts平臺訓練好的模型導(dǎo)入Hilens中進行進一步開發(fā),然后發(fā)布為人工智能應(yīng)用,并推送到Hilens納管的端側(cè)設(shè)備。
Hilens上開發(fā)使用云上集成開發(fā)環(huán)境HilensStudio。Hilens Studio提供在線開發(fā)、調(diào)試、模擬運行、部署和發(fā)布功能。
上述在ModelArts平臺上訓練好的模型使用的是TensorFlow引擎,要在Hilens上使用需要進行模型轉(zhuǎn)換。轉(zhuǎn)換為Ascend 310可運行的模型格式。轉(zhuǎn)換過程在Hilens Studio中進行。轉(zhuǎn)換后的模型文件屬性分別是在Studio中測試用的c76和在Hilens端側(cè)用的c3x。
在Studio中測試可以上傳測試視頻,Studio讀取視頻數(shù)據(jù)作為輸入,可以實時驗證技能算法。
在HilensStudio中技能開發(fā)完成后,可以直接部署到Hilens設(shè)備中,部署完成后可以在設(shè)備管理中開啟技能。開啟技能過程中或運行過程中出現(xiàn)異常情況可以通過存儲在華為云上的日志文件進行跟蹤處理。
Hilens端側(cè)設(shè)備通過局域網(wǎng)與車輛主控制器進行數(shù)據(jù)通信,使用TCP協(xié)議收發(fā)數(shù)據(jù),其中主控制器作為服務(wù)器端,Hilens設(shè)備作為客戶端,Hilens通過主控制器的IP地址發(fā)起連接請求,主控制器接受請求后雙方即進行數(shù)據(jù)交互,數(shù)據(jù)內(nèi)容主要為檢測框的中心點坐標和目標類別信息。
實驗中針對紅燈、綠燈、黃燈、斑馬線、限速標志、解除限速標志6種交通標志進行了實驗,如圖5所示。共采集了2975張圖片,在ModelArts中進行標注,并使用YOLO V3算法進行訓練,最后將模型部署在HilensKit端側(cè)設(shè)備進行推理。HilensKit支持HDMI視頻輸出,經(jīng)過無線投屏設(shè)備將實時畫面投影到外置顯示屏上,觀察識別結(jié)果,如圖6和圖7所示,小車能夠穩(wěn)定識別并框出標志信息,給出置信值,并根據(jù)識別信息控制車輛自主行駛。
圖5 自采集交通標志
圖6 交通標志識別效果
本文按照真實車輛5∶1比例縮放建立了自動駕駛車輛實驗平臺,基于華為ModelArt、Hilens人工智能平臺實現(xiàn)了交通標志的識別,并基于ROS平臺實現(xiàn)了傳感器信息融合與控制決策,完成自動駕駛功能。該小車作為比賽用車用于第二屆和第三屆華為云杯無人車挑戰(zhàn)賽,通過比賽驗證了系統(tǒng)設(shè)計的可靠性與穩(wěn)定性。