自動(dòng)駕駛是目前比較熱門的話題,包含的技術(shù)領(lǐng)域五花八門,例如:雷達(dá)、攝像頭、汽車電控、激光雷達(dá)、物體識(shí)別、高精度地圖、導(dǎo)航技術(shù)等等。小編特邀 MathWorks 行業(yè)技術(shù)專家來聊一聊 MathWorks 這幾年的自動(dòng)駕駛之路,分享最新的技術(shù)投入和應(yīng)用亮點(diǎn)。
MathWorks 對(duì)自動(dòng)駕駛技術(shù)的投入可以總結(jié)為以下幾個(gè)階段:

2015:SCANIA AEB 系統(tǒng)
2015 年,瑞典著名的重卡生產(chǎn)商 SCANIA 發(fā)布了用 MATLAB/Simulink 設(shè)計(jì)的 AEB(自動(dòng)緊急剎車)系統(tǒng),看動(dòng)畫:
在這個(gè)案例中,SCANIA 利用 MATLAB/Simulink 做了兩件大事:
一是設(shè)計(jì)了數(shù)據(jù)融合(Sensor Fusion)系統(tǒng)。AEB 把攝像頭和雷達(dá)采集的數(shù)據(jù)進(jìn)行整合,同時(shí)使用車輛前部安裝的雷達(dá)和攝像頭來掃描前方區(qū)域的物體。系統(tǒng)利用每個(gè)傳感器的獨(dú)特優(yōu)勢(shì)獲取更精確的環(huán)境模型。
雷達(dá)的優(yōu)勢(shì)在于確定物體的距離、相對(duì)速度,但在確定物體的形狀或橫向位置方面較弱。攝像頭主要優(yōu)勢(shì)在于辨識(shí)物體類別,主要缺點(diǎn)在于在黑暗環(huán)境下難以工作,以及對(duì)速度估計(jì)不準(zhǔn)確。SCANIA 構(gòu)建了一個(gè)傳感器融合系統(tǒng),可將兩個(gè)傳感器中的數(shù)據(jù)進(jìn)行匹配合并。傳感器融合系統(tǒng)一旦在主道上發(fā)現(xiàn)物體,會(huì)將該物體的位置和預(yù)計(jì)路徑傳遞給 AEB,AEB 將確定何時(shí)警告駕駛員或采取制動(dòng)措施。
二是設(shè)計(jì)了整個(gè)回放測(cè)試系統(tǒng)。SCANIA 的車隊(duì)在超過 150 萬公里的駕駛里程中,所記錄的實(shí)際交通數(shù)據(jù)超過了 80TB。這 150 萬公里的實(shí)測(cè)數(shù)據(jù),為每次更新發(fā)布的新功能提供了海量測(cè)試場(chǎng)景和數(shù)據(jù)。
為了進(jìn)一步提高仿真運(yùn)行速度,研發(fā)團(tuán)隊(duì)編寫了 MATLAB 腳本,在服務(wù)器集群進(jìn)行多核并行計(jì)算和仿真,最多同時(shí)可以運(yùn)行300個(gè)仿真實(shí)例。通過這一方法,將仿真 150 萬公里交通數(shù)據(jù)的時(shí)間減少到 12 小時(shí)。在仿真中發(fā)現(xiàn)值得關(guān)注的新場(chǎng)景時(shí),會(huì)在 Simulink 中重新運(yùn)行仿真并進(jìn)行深度分析。
2016:傳感器融合示例
坦率地講,SCANIA 的這個(gè)案例激發(fā)了 MathWorks 的開發(fā)靈感。2016 年在波士頓的年度大會(huì)上,來自美國底特律的應(yīng)用工程師展示了他用 MATLAB 腳本開發(fā)的一個(gè)前車碰撞預(yù)警(FCW)的演示案例。這個(gè)演示案例就是后來 ADST(自動(dòng)駕駛工具箱)的原型。這個(gè)原型中包含的 2 個(gè)關(guān)鍵點(diǎn):可視化、數(shù)據(jù)融合,都成了 ADST 的產(chǎn)品亮點(diǎn)。

還有一家公司——德國大陸集團(tuán)(Continental)——用 MATLAB 也是爐火純青。MATLAB 既然是好工具,我就用工具來代替大量人工重復(fù)勞動(dòng)。2014 年,Continental 在研發(fā)一款自動(dòng)駕駛攝像頭的時(shí)候,使用 MATLAB 來自動(dòng)化標(biāo)注物體和道路標(biāo)志,這些自動(dòng)化的方法顯著地提高了攝像頭的機(jī)器學(xué)習(xí)效率。這一靈感也最終由 MathWorks 工程師實(shí)現(xiàn)在 ADST 的功能中:GroundTruth Labelling (真值標(biāo)定)。

R2017a:ADST - 自動(dòng)駕駛系統(tǒng)工具箱
2017 年 3 月,MathWorks 在 MATLAB R2017a 發(fā)布了 ADST(自動(dòng)駕駛系統(tǒng)工具箱),包括 3 個(gè)核心功能點(diǎn):
可視化
數(shù)據(jù)融合
真值標(biāo)定
行業(yè)技術(shù)專家強(qiáng)調(diào):可視化是數(shù)據(jù)分析的第一步。
大家先一起看看汽車?yán)走_(dá)和攝像頭的數(shù)據(jù)長什么樣。以雷達(dá)為例:下面兩個(gè)數(shù)據(jù)表格顯示了在什么時(shí)間戳,有多少個(gè)識(shí)別物體,物體的方位、速度等數(shù)據(jù)信息。

讓我們看一段 MATLAB 處理數(shù)據(jù)并實(shí)現(xiàn)可視化的動(dòng)畫:


通過 MATLAB 自帶的 API 和函數(shù),用戶可以比較容易地將雷達(dá)和攝像頭的傳感器數(shù)據(jù),進(jìn)行人眼可視化。上圖左邊是原始的攝像頭畫面,右邊藍(lán)色的三角代表攝像頭識(shí)別的目標(biāo),紅顏色代表雷達(dá)識(shí)別的目標(biāo)。通過可視化,人眼可以看到雷達(dá)和攝像頭的信號(hào)有一定的偏差,那么自然就會(huì)問另外一個(gè)問題,車載電子設(shè)備到底以哪個(gè)為準(zhǔn)呢?這就自然引入 ADST 的另外一個(gè)功能 – Sensor Fusion(傳感器融合)。
理解傳感器融合有幾個(gè)關(guān)鍵詞:多目標(biāo)追蹤(Multi-ObjectTracking),卡爾曼濾波器(KalmanFilter)和代價(jià)矩陣(CostMatrix)。

上圖簡(jiǎn)單介紹了一個(gè)傳感器融合的過程——從傳感器的捕獲(detection)到最終被確認(rèn)為追蹤物體(track):
物體被傳感器(視覺、雷達(dá)等)捕獲,形成 detection
Track manager 先為該detection分配一個(gè) track
Tracking filter 通過卡爾曼濾波器不斷估計(jì) detection 的 track
Track manger 通過代價(jià)矩陣將 detection 分配更新到 track
目標(biāo) detection 消失后,track 被刪除
MATLAB 自帶的多目標(biāo)追蹤,可以追蹤最多 120 個(gè)運(yùn)動(dòng)中的目標(biāo)。每個(gè)目標(biāo)的最終的 track 可能既不是雷達(dá)的位置,也不是視覺的位置,而是最終 track 算出來的位置。下圖展示了代價(jià)矩陣的示意圖,將 detection 分配到 track 的過程用到了 Hungarian Assignment Algorithm。

MATLAB 自帶了前向碰撞告警(FCW)例子可以幫助用戶理解傳感器融合的使用。

上圖為 FCW 的數(shù)據(jù)融合處理流程,基本的邏輯是將雷達(dá)雜波信號(hào)濾除后,進(jìn)行多目標(biāo)的追蹤和更新,在識(shí)別到最關(guān)鍵目標(biāo)(Most Important Object)后,根據(jù)前向距離進(jìn)行剎車告警。
讓我們看看該樣例的運(yùn)行動(dòng)畫:

藍(lán)色三角形的視覺識(shí)別目標(biāo)和紅色圓形的雷達(dá)識(shí)別目標(biāo),在消除了雷達(dá)雜波(大部分為只有紅色圓型的目標(biāo),以及在其他車道的目標(biāo))后,通過數(shù)據(jù)融合形成目標(biāo)追蹤。看到的灰色方框即為運(yùn)動(dòng)物體的追蹤。
上圖左邊的視頻錄像是一個(gè)實(shí)際路況的采集視頻,樣例還提供了相應(yīng)的視覺和雷達(dá)的object list。有人會(huì)問:在數(shù)據(jù)融合設(shè)計(jì)早期的時(shí)候,我只有一個(gè) idea,還沒有具體的 object list ,那如何才能驗(yàn)證我的算法呢?MATLAB 還提供了另外一個(gè) Sensor Fusion 的樣例,看動(dòng)圖:

這個(gè)樣例和上面有實(shí)際環(huán)境的樣例有幾點(diǎn)不同:
車輛和道路都是可以像搭積木一樣,通過 MATLAB 腳本快速搭建測(cè)試場(chǎng)景
在這個(gè)模擬環(huán)境中可以模擬雷達(dá)(radarDetectionGenerator)和視覺(visionDetectionGenerator)的傳感器。
好處不言而喻:快速驗(yàn)證idea。
隨著自動(dòng)駕駛工具箱發(fā)布的,還有一個(gè)廣受歡迎的功能——真值標(biāo)定(ground truth labelling)。
首先給出定義:在機(jī)器學(xué)習(xí)中 ground truth 表示有監(jiān)督學(xué)習(xí)的訓(xùn)練集的分類準(zhǔn)確性,用于證明或者推翻某個(gè)假設(shè)。很多視覺識(shí)別算法是用的機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)的認(rèn)知基礎(chǔ)就是真值。真值標(biāo)定的功能有兩點(diǎn):
采用大量真值來訓(xùn)練機(jī)器學(xué)習(xí)算法
利用真值來檢驗(yàn)現(xiàn)有的識(shí)別算法
真值標(biāo)定的輸入一般是視頻文件。真值標(biāo)定既可以手動(dòng)一幀一幀地標(biāo)定,也可以半自動(dòng)化標(biāo)定后再手工修正,最終可以將結(jié)果保存成真值數(shù)據(jù)庫。讓我們看一段半自動(dòng)標(biāo)定的動(dòng)畫:

最終標(biāo)定出來的真值數(shù)據(jù)如下圖所示:就像電影的字幕類似,幾分幾秒,在畫面的什么方位,是什么物體:

ADST 在發(fā)布后,受到汽車電控工程師和自動(dòng)駕駛研發(fā)人員的廣泛使用。MathWorks 工程師在和他們交流后發(fā)現(xiàn),他們有一個(gè)共同的興趣點(diǎn):ADST 的功能大部分集中于前端(可視化、真值標(biāo)定、傳感器融合),有沒有將前端的識(shí)別和融合結(jié)果和后端的汽車電控結(jié)合起來的案例?其實(shí)這也反映了市場(chǎng)熱點(diǎn)從 ADAS(高級(jí)駕駛輔助系統(tǒng))向 AD(自動(dòng)駕駛)過渡。ADAS 側(cè)重于告警,而 AD 側(cè)重于控制。
R2017b:閉環(huán)控制示例
隨著MATLAB R2017b的發(fā)布,MathWorks推出了一個(gè)自適應(yīng)巡航(ACC)的案例,包括:
Simulink 模型:包含傳感器融合、傳感器模型、可視化、控制器模型、車輛模型、模擬道路場(chǎng)景和環(huán)境模型
控制器引入了兩種參考設(shè)計(jì):PID 和 MPC(Model Predictive Control)
代碼自動(dòng)生成

讓我們看一下運(yùn)行的動(dòng)畫:由于紫車車輛強(qiáng)行并線到藍(lán)色車輛(被控車輛),在 ACC 的作用下藍(lán)色車輛的速度下降直到紫色車輛離開本車道。

這里用到的速度控制是經(jīng)典的 PID 控制。眾所周知,PID 的好處是簡(jiǎn)單、易懂、占用資源少,但是在自動(dòng)駕駛的復(fù)雜環(huán)境下,想要對(duì)車輛進(jìn)行精準(zhǔn)控制,可以考慮更加復(fù)雜的先進(jìn)控制方法,比如 MPC(ModelPredictive Control)。從另外一個(gè)角度來看,MPC 過去沒有流行的原因之一就是受限于硬件資源和成本。目前,在自動(dòng)駕駛技術(shù)和需求的推動(dòng)下,汽車控制器必須變得越來越強(qiáng)大,使得 MPC 變得可能。下圖給出了在 ACC 的環(huán)境下,使用 PID 和 MPC 的對(duì)比:MPC 比 PID 控制的更加精準(zhǔn)、快速。

有了 ACC 這個(gè)例子,用戶可以在 MATLAB/Simulink 統(tǒng)一平臺(tái)下做如下事情:傳感器融合、傳感器模型、可視化、控制器設(shè)計(jì)和代碼生成、車輛模型、模擬道路場(chǎng)景和環(huán)境模型。但在實(shí)踐中發(fā)現(xiàn),用戶對(duì)模擬道路場(chǎng)景和環(huán)境模型要求其實(shí)很高:
MATLAB 雖然可以創(chuàng)建道路場(chǎng)景,但是必須用腳本編程,比較麻煩。
更希望看到虛擬現(xiàn)實(shí)場(chǎng)景。
R2018a:unreal 集成
2018 年 3 月,針對(duì)第一點(diǎn),MATLAB R2018a 推出了 Driving Scenario Designer的 App,直接可以畫道路、車輛和簡(jiǎn)單傳感器模型:

針對(duì)第二點(diǎn)需求,MATLAB R2018a 推出的 Vehicle Dynamics Blockset 可以和 unreal 游戲引擎集成,并自帶了一個(gè)免費(fèi)版的 unreal。當(dāng)然 Vehicle Dynamics Blockset 主要功能是提供了車輛橫向動(dòng)力學(xué)的模塊,免費(fèi)版 unreal 只是用于 3D 顯示。相信對(duì)于自動(dòng)駕駛控制器設(shè)計(jì)人員,在設(shè)計(jì)例如 ACC(自適應(yīng)巡航),LKA(自動(dòng)車道保持)等自動(dòng)駕駛功能時(shí)候,Vehicle Dynamics Blockset 一定能發(fā)揮強(qiáng)大的作用。
讓我們?cè)倩仡^看看 MATLAB的自動(dòng)駕駛之路:從用戶案例中的啟發(fā),到推出自動(dòng)駕駛工具箱;通過和用戶的溝通逐步加入的車輛控制部分和 unreal 集成。
當(dāng)然,自動(dòng)駕駛永遠(yuǎn)在路上,MATLAB/Simulink 也在激光雷達(dá)點(diǎn)云處理、駕駛路徑規(guī)劃和跟隨等方面持續(xù)推出更多的功能和應(yīng)用案例,例如:
實(shí)時(shí)車輛數(shù)據(jù)融合和顯示。通過和用戶的深入交流,技術(shù)專家了解到用戶的興趣點(diǎn)多集中于:車輛上安裝了攝像頭和雷達(dá)后,在實(shí)時(shí)運(yùn)行的同時(shí),如何實(shí)現(xiàn)數(shù)據(jù)融合并顯示結(jié)果?
MathWorks工程師通過 Automated Driving System Toolbox、Vehicle Network Toolbox、Instrument Control Toolbox、MATLAB Coder、Embedded Coder 等工具箱,已經(jīng)實(shí)現(xiàn)在車輛上做實(shí)時(shí)駕駛的數(shù)據(jù)融合和數(shù)據(jù)顯示:

-
傳感器
+關(guān)注
關(guān)注
2576文章
55041瀏覽量
791383 -
可視化
+關(guān)注
關(guān)注
1文章
1353瀏覽量
22806 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
793文章
14884瀏覽量
179912
發(fā)布評(píng)論請(qǐng)先 登錄
如何構(gòu)建適合自動(dòng)駕駛的世界模型?
自動(dòng)駕駛汽車如何實(shí)現(xiàn)自動(dòng)駕駛
如何設(shè)計(jì)好自動(dòng)駕駛ODD?
國內(nèi)首批L3級(jí)高速自動(dòng)駕駛車輛專業(yè)號(hào)牌率先在北京落地#北京#自動(dòng)駕駛#汽車智能
汽車行業(yè)迎L3自動(dòng)駕駛上路潮,華為、小鵬、理想搶跑#晶揚(yáng)電子 #自動(dòng)駕駛 #L3級(jí)自動(dòng)駕駛 #智能駕駛
不同等級(jí)的自動(dòng)駕駛技術(shù)要求上有何不同?
如何確保自動(dòng)駕駛汽車感知的準(zhǔn)確性?
自動(dòng)駕駛汽車是如何準(zhǔn)確定位的?
卡車、礦車的自動(dòng)駕駛和乘用車的自動(dòng)駕駛在技術(shù)要求上有何不同?
自動(dòng)駕駛安全基石:ODD
禾賽科技領(lǐng)跑全球自動(dòng)駕駛激光雷達(dá)市場(chǎng)
新能源車軟件單元測(cè)試深度解析:自動(dòng)駕駛系統(tǒng)視角
關(guān)于MATLAB 的自動(dòng)駕駛之路分析和介紹
評(píng)論