• <dl id="as3yr"><ins id="as3yr"><thead id="as3yr"></thead></ins></dl>
  • <dl id="as3yr"></dl>
    <dl id="as3yr"><ins id="as3yr"></ins></dl>
  • <dl id="as3yr"></dl>
  • <progress id="as3yr"><tr id="as3yr"></tr></progress>
    <dl id="as3yr"></dl>
  • 寫帖子

    最近搜索

      暫無相關數據

    注冊 登錄

    【干貨分享】MATLAB 的自動駕駛之路

    說兩句

    圈子: 2018-08-02 12:30:01

    【干貨分享】MATLAB 的自動駕駛之路

    自動駕駛是目前比較熱門的話題,包含的技術領域五花八門,例如:雷達、攝像頭、汽車電控、激光雷達、物體識別、高精度地圖、導航技術等等。小編特邀 MathWorks 行業技術專家來聊一聊 MathWorks 這幾年的自動駕駛之路,分享最新的技術投入和應用亮點。

        ◆  

    MathWorks 對自動駕駛技術的投入可以總結為以下幾個階段:

    2015:SCANIA AEB 系統

    2015 年,瑞典著名的重卡生產商 SCANIA 發布了用 MATLAB/Simulink 設計的 AEB(自動緊急剎車)系統,看動畫:

    在這個案例中,SCANIA 利用 MATLAB/Simulink 做了兩件大事:

    一是設計了數據融合(Sensor Fusion)系統。AEB 把攝像頭和雷達采集的數據進行整合,同時使用車輛前部安裝的雷達和攝像頭來掃描前方區域的物體。系統利用每個傳感器的獨特優勢獲取更精確的環境模型。

    雷達的優勢在于確定物體的距離、相對速度,但在確定物體的形狀或橫向位置方面較弱。攝像頭主要優勢在于辨識物體類別,主要缺點在于在黑暗環境下難以工作,以及對速度估計不準確。SCANIA 構建了一個傳感器融合系統,可將兩個傳感器中的數據進行匹配合并。傳感器融合系統一旦在主道上發現物體,會將該物體的位置和預計路徑傳遞給 AEB,AEB 將確定何時警告駕駛員或采取制動措施。

    二是設計了整個回放測試系統。SCANIA 的車隊在超過 150 萬公里的駕駛里程中,所記錄的實際交通數據超過了 80TB。這 150 萬公里的實測數據,為每次更新發布的新功能提供了海量測試場景和數據。

    為了進一步提高仿真運行速度,研發團隊編寫了 MATLAB 腳本,在服務器集群進行多核并行計算和仿真,最多同時可以運行300個仿真實例。通過這一方法,將仿真 150 萬公里交通數據的時間減少到 12 小時。在仿真中發現值得關注的新場景時,會在 Simulink 中重新運行仿真并進行深度分析。

    2016:傳感器融合示例

    坦率地講,SCANIA 的這個案例激發了 MathWorks 的開發靈感。2016 年在波士頓的年度大會上,來自美國底特律的應用工程師展示了他用 MATLAB 腳本開發的一個前車碰撞預警(FCW)的演示案例。這個演示案例就是后來 ADST(自動駕駛工具箱)的原型。這個原型中包含的 2 個關鍵點:可視化、數據融合,都成了 ADST 的產品亮點。

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

    R2017a:ADST - 自動駕駛系統工具箱

    2017 年 3 月,MathWorks 在 MATLAB R2017a 發布了 ADST(自動駕駛系統工具箱),包括 3 個核心功能點:

    • 可視化

    • 數據融合

    • 真值標定

    行業技術專家強調:可視化是數據分析的第一步。

    大家先一起看看汽車雷達和攝像頭的數據長什么樣。以雷達為例:下面兩個數據表格顯示了在什么時間戳,有多少個識別物體,物體的方位、速度等數據信息。

    讓我們看一段 MATLAB 處理數據并實現可視化的動畫:

    通過 MATLAB 自帶的 API 和函數,用戶可以比較容易地將雷達和攝像頭的傳感器數據,進行人眼可視化。上圖左邊是原始的攝像頭畫面,右邊藍色的三角代表攝像頭識別的目標,紅顏色代表雷達識別的目標。通過可視化,人眼可以看到雷達和攝像頭的信號有一定的偏差,那么自然就會問另外一個問題,車載電子設備到底以哪個為準呢?這就自然引入 ADST 的另外一個功能 – Sensor Fusion(傳感器融合)。

    理解傳感器融合有幾個關鍵詞:多目標追蹤(Multi-ObjectTracking),卡爾曼濾波器(KalmanFilter)和代價矩陣(CostMatrix)。

    上圖簡單介紹了一個傳感器融合的過程——從傳感器的捕獲(detection)到最終被確認為追蹤物體(track):

    1. 物體被傳感器(視覺、雷達等)捕獲,形成 detection

    2. Track manager 先為該detection分配一個 track

    3. Tracking filter 通過卡爾曼濾波器不斷估計 detection 的 track

    4. Track manger 通過代價矩陣將 detection 分配更新到 track

    5. 目標 detection 消失后,track 被刪除

    MATLAB 自帶的多目標追蹤,可以追蹤最多 120 個運動中的目標。每個目標的最終的 track 可能既不是雷達的位置,也不是視覺的位置,而是最終 track 算出來的位置。下圖展示了代價矩陣的示意圖,將 detection 分配到 track 的過程用到了 Hungarian Assignment Algorithm。

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

    上圖為 FCW 的數據融合處理流程,基本的邏輯是將雷達雜波信號濾除后,進行多目標的追蹤和更新,在識別到最關鍵目標(Most Important Object)后,根據前向距離進行剎車告警。

    讓我們看看該樣例的運行動畫:

    藍色三角形的視覺識別目標和紅色圓形的雷達識別目標,在消除了雷達雜波(大部分為只有紅色圓型的目標,以及在其他車道的目標)后,通過數據融合形成目標追蹤。看到的灰色方框即為運動物體的追蹤。

    上圖左邊的視頻錄像是一個實際路況的采集視頻,樣例還提供了相應的視覺和雷達的object list。有人會問:在數據融合設計早期的時候,我只有一個 idea,還沒有具體的 object list ,那如何才能驗證我的算法呢?MATLAB 還提供了另外一個 Sensor Fusion 的樣例,看動圖:

    這個樣例和上面有實際環境的樣例有幾點不同:

    1. 車輛和道路都是可以像搭積木一樣,通過 MATLAB 腳本快速搭建測試場景

    2. 在這個模擬環境中可以模擬雷達(radarDetectionGenerator)和視覺(visionDetectionGenerator)的傳感器。  

    好處不言而喻:快速驗證idea。

    隨著自動駕駛工具箱發布的,還有一個廣受歡迎的功能——真值標定(ground truth labelling)。

    首先給出定義:在機器學習中 ground truth 表示有監督學習的訓練集的分類準確性,用于證明或者推翻某個假設。很多視覺識別算法是用的機器學習。機器學習的認知基礎就是真值。真值標定的功能有兩點:

    1. 采用大量真值來訓練機器學習算法

    2. 利用真值來檢驗現有的識別算法

    真值標定的輸入一般是視頻文件。真值標定既可以手動一幀一幀地標定,也可以半自動化標定后再手工修正,最終可以將結果保存成真值數據庫。讓我們看一段半自動標定的動畫:

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

    ADST 在發布后,受到汽車電控工程師和自動駕駛研發人員的廣泛使用。MathWorks 工程師在和他們交流后發現,他們有一個共同的興趣點:ADST 的功能大部分集中于前端(可視化、真值標定、傳感器融合),有沒有將前端的識別和融合結果和后端的汽車電控結合起來的案例?其實這也反映了市場熱點從 ADAS(高級駕駛輔助系統)向 AD(自動駕駛)過渡。ADAS 側重于告警,而 AD 側重于控制。

    R2017b:閉環控制示例

    隨著 MATLAB R2017b 的發布,MathWorks 推出了一個自適應巡航(ACC)的案例,包括:

    • Simulink 模型:包含傳感器融合、傳感器模型、可視化、控制器模型、車輛模型、模擬道路場景和環境模型

    • 控制器引入了兩種參考設計:PID 和 MPC(Model Predictive Control)

    • 代碼自動生成

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

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

    有了 ACC 這個例子,用戶可以在 MATLAB/Simulink 統一平臺下做如下事情:傳感器融合、傳感器模型、可視化、控制器設計和代碼生成、車輛模型、模擬道路場景和環境模型。但在實踐中發現,用戶對模擬道路場景和環境模型要求其實很高:

    1. MATLAB 雖然可以創建道路場景,但是必須用腳本編程,比較麻煩。

    2. 更希望看到虛擬現實場景。

    R2018a:unreal 集成

    2018 年 3 月,針對第一點,MATLAB R2018a 推出了 Driving Scenario Designer的 App,直接可以畫道路、車輛和簡單傳感器模型:

    針對第二點需求,MATLAB R2018a 推出的 Vehicle Dynamics Blockset 可以和 unreal 游戲引擎集成,并自帶了一個免費版的 unreal。當然 Vehicle Dynamics Blockset 主要功能是提供了車輛橫向動力學的模塊,免費版 unreal 只是用于 3D 顯示。相信對于自動駕駛控制器設計人員,在設計例如 ACC(自適應巡航),LKA(自動車道保持)等自動駕駛功能時候,Vehicle Dynamics Blockset 一定能發揮強大的作用。

        ◆  

    讓我們再回頭看看 MATLAB 的自動駕駛之路:從用戶案例中的啟發,到推出自動駕駛工具箱;通過和用戶的溝通逐步加入的車輛控制部分和 unreal 集成。

    當然,自動駕駛永遠在路上,MATLAB/Simulink 也在激光雷達點云處理、駕駛路徑規劃和跟隨等方面持續推出更多的功能和應用案例,例如:

    實時車輛數據融合和顯示。通過和用戶的深入交流,技術專家了解到用戶的興趣點多集中于:車輛上安裝了攝像頭和雷達后,在實時運行的同時,如何實現數據融合并顯示結果?

    MathWorks 工程師通過 Automated Driving System Toolbox、Vehicle Network Toolbox、Instrument Control Toolbox、MATLAB Coder、Embedded Coder 等工具箱,已經實現在車輛上做實時駕駛的數據融合和數據顯示:


    顯示全部

    0個評論

      數據加載中...
    新疆11选五投注时间