高階自動駕駛系統是下一代智能網聯汽車必須實作的課題,不僅需要解決車輛如何實作自主駕駛,也需要解決目前這代自動駕駛無法解決的問題,其中包括功能開發問題和性能提升問題。比如從最近的蔚來汽車自動駕駛事故中不難看出,要想實作真正的自動駕駛就需要自動駕駛系統解決目前不少的邊緣場景,這些場景都是很大程度上影響系統功能安全的場景内容。又如後續多數主機廠想要效仿特斯拉采用類似影子模式進行資料采集、仿真,那麼如何防止在開發過程中踩坑也是一個值得思考的問題。
另外,針對高階自動駕駛将采用基于SOA的開發模式進行架構搭建,是以SOA中将如何提升效率實作兼顧通用、高效、可靠的目标是我們必須要解決的問題。

本文将針對性如上三個比較棘手且亟待解決的問題進行詳細闡述,意在為開發者提供借鑒。
如何提升靜止目标碰撞檢測
從開發測試角度,我們已經收集了不少難解決或可能出現問題的場景。其中,對于靜止目标的識别就是其中之一。從全視覺的角度出發,目前成型的自動駕駛産品都是基于單目或三目視覺來進行檢測的。而這種檢測方式有着天然無法改變的缺陷,由于該方式是基于深度學習的機器視覺,其表現為識别、分類、探測是放在同一個子產品進行的,通常無法将其進行分割,也就是說,如果無法将目标分類classification,進而往往針對某些目标就無法進行有效探測recognition。這種漏識别就容易導緻自動駕駛車輛發生碰撞。
為了很好的說明無法識别的原因,總結解決該類問題的方法這裡我們需要重點說明下:第一種是訓練資料集無法完全覆寫真實世界的全部目标;因為很多靜止目标不一定是标準的車輛,甚至可能是異形車輛、落石、不規則施工标志燈,是以,在開發階段訓練的目标類型在很大程度上都無法用于真正的自動駕駛識别場景。
第二種是圖像缺乏紋理特征,紋理特征包含多個像素點的區域中進行統計計算,常具有旋轉不變性;對于噪聲有較強的抵抗能力;是以,對于一些紋理較少的貨車車廂、白牆等,通過視覺方式都是較難識别出來的。
此外,這裡需要解釋一下為什麼深度學習對靜止目标無法做到很好的識别能力。因為深度學習中的機器視覺,特别是基于單目攝像頭探測的機器視覺圖像,會将所有靜止目标當作背景加以剔除,進而可以很好的選出對視訊了解過程重要的運動目标,這種方式不僅可以提升識别效率,也可以很好的降低編碼碼率。同時也為了防止誤檢測,也必須将運動目标和靜止目标分開,如有些道路兩側停滿汽車,運動目标的優先級自然高于靜止目标,然後再去識别,通常是背景減除、三幀法或光流法,通常情況下這類識别算法需要耗費1-2秒時間,然而對于實時性要求較高的自動駕駛而言,這段時間就可能已經發生碰撞事故了。
是以,為了解決如上識别性能缺陷,就需要從根本原因上解決深度學習不足所帶來的問題。機器視覺主要有兩種學習比對模式,一種是手工模型,一種就是深度學習,通常都是采用後者進行圖像識别和分類。由于深度學習主要是通過分割再拟合,原則上它要周遊每一個像素,對訓練好的模型做數十億次的乘積累加并設定不同的權重值來做對比,差別于人類視覺,機器視覺是非整體性的。從本質上講,深度學習是一種利用采集資料點,通過與已有資料庫進行有效比對,拟合出無限接近于實際的曲線函數,進而能夠識别出期望被識别出來的環境目标,推斷趨勢并針對各類問題給出預測性結果。當然,曲線拟合在表示給定資料集時也存在一定風險,這就是拟合誤差。具體來講,算法可能無法識别資料的正常波動,最終為了拟合度而将噪音視為有效資訊。是以想要真正解決對于這類異常環境目标的識别能力,僅僅依靠提升SOC晶片的AI加速器能力來解決是不明智的。因為AI加速器也僅僅是解決了MAC乘積累加計算子產品的加速運算能力而已。
要想真正解決這類識别或比對誤差問題,下一代高性能自動駕駛系統通常采用多傳感器融合的方式(毫米波雷達、雷射雷達)或采用多目攝像頭檢測的方式進行優化。做過駕駛輔助系統開發的設計師應該清楚,對于依靠目前這代毫米波雷達由于對于金屬物體十分敏感,在檢測的物體過程中通常是規避因為誤檢而導緻AEB的誤觸發的。是以,很多靜止目标通常會被濾掉,同時,對于一些底盤較高的大貨車或者特種操作車,往往會因為毫米波雷達高度問題導緻檢測不到目标而漏檢。
需要利用傳統辦法(或稱非深度學習算法)進行三位目标重建,通常這可以采用雷射雷達或高分辨率4D毫米波雷達來進行點雲重建或雙目攝像頭進行光流追蹤來實作優化。對于基于雷射雷達檢測目标的方法,其原理是發射探測信号(雷射束),然後将接收到的從目标反射回來的信号(目标回波)與發射信号進行比較,作适當處理後,來獲得目标的有關資訊,是以對于回波的點雲比對本身也是一種深度學習過程,隻不過這個過程相對于彈幕圖像識别的分割、比對更快些。
雙目視覺的方式對靜态目标的檢測是依賴視差圖像來進行的,這種以來純幾何關系的視差圖是可以較為精确的定位該靜态目标位置的。很多時候單目視覺對于颠簸的路況、明暗對比非常強烈的路況、一些破損的路況中的遠距離的物體,可以完成檢測,但是三維恢複會存在很多不确定性。而立體相機可以與深度學習融合,将立體點雲與圖像的RGB資訊以及紋理資訊融合,有利于進行遠距離目标的識别及3D測量。
深度學習可以更精細更穩定地檢測常見的道路參與者,綜合多種特征,有利于更遠地發現道路參與者。而立體視覺則可以同時實作3D測量與基于點雲檢測全道路參與者,不受物體類型限制,不受安裝位置與姿态限制,動态測距更加穩定,泛化能力更好。我們将立體視覺和深度學習結合起來,可以在更遠的距離發現目标,同時能夠利用立體視覺進行三維刻畫。
如上這些算法要麼比較依賴CPU進行的邏輯運算包括實作卡爾曼濾波、平滑運算、梯度處理,要麼依賴于GPU進行的圖像深度學習處理。是以,下一代高階自動駕駛域控系統需要具備很好的運算處理能力才就能確定其性能滿足要求。
影子模式能否完美破局
目前,各主機廠或Tier1在研發下一代高階自動駕駛系統時往往無法很全面覆寫環境中可能發生突變的各種工況,而這種初具規模的資料覆寫往往會依賴于高品質的資料采集、處理,這裡我們通常稱之為極端場景的資料覆寫。如何将大量極端場景資料采集并回傳至自動駕駛背景是我們需要解決的重要問題,也是評價後續自動駕駛系統能否完美破局的關鍵要素。
特斯拉的影子模式開創了有效的資料采集先河。對于“影子模式”的定義在于,在手動駕駛狀态下,系統及其周邊傳感器仍然運作但并不參與車輛控制,隻是對決策算法進行驗證,也即系統的算法在“影子模式”下做持續模拟決策,并且把決策與駕駛員的行為進行對比,一旦兩者不一緻,該場景便被判定為“極端工況”,進而觸發資料回傳。
但是如果要好好了解影子模式還需要重點解決如下問題。
1、影子模式如何提供更多更大範圍的極端工況探測采集,包含标注和非标注的訓練場景
由于影子模式通常是資料采集、進行中的一部分,除利用控制端的軌迹差異進行觸發資料記錄外,其餘工作模式下并不直接應用于資料記錄。如果自動駕駛需要高效快速的應用上影子模式的方法,則需要則需要在其采集過程中同時布局深度神經網絡,貫穿于整個控制過程中(包括實作整個感覺、預測、規劃和控制的整個子產品)。更加實用的影子模式需要擴寬其工作範圍,這就要求不僅僅是比對軌迹才能觸發資料記錄及回傳,像諸如感覺目标差異、融合目标差異等均可觸發資料記錄及回傳。這一過程就需要根據實際采集的端口定義相應的資料采集單元,這些單元均可以工作在自動駕駛或人工駕駛模式下,僅僅作為資料采集、記錄、回傳的硬體,不對車輛控制産生影響。
2、晶片選型及傳感器配置對于影子模式的支援度是否符合預期
對于自動駕駛開發而言,我們期望影子模式僅僅是一些資源占用度較少的簡單邏輯運算,且激活影子模式過程中也不會增加背景處理時延。如果下一代高階自動駕駛想要基于影子模式實作資料采标,則必須考慮專門為影子系統額外配置一顆晶片,或者在多顆晶片的域控系統中拆分出某塊晶片中的摸個子產品專門用來做影子算法訓練。
此外,之前的影子系統通常是跑在L2+系統上的,其采标的傳感器類型往往比較單一,如一般的公司都是采用了5R1V的方式進行資料采标,進階一點的,可能有配置單個雷射雷達(目前國内量産或即将量産的企業還未有該配置),這種傳感器配置采集的資料是否直接可以應用于下一代高階自動駕駛系統,這是不确定的。因為,單個或較少傳感器對于環境工況的預判和系統的執行能力和多傳感器是由較大差别的。是以,當更新後的高階自動駕駛系統,其傳感器能力對于整個系統的歸控來講肯定是上了一個台階。是以,後續自動駕駛系統是否還能應用先前L2級别下采集的場景資料,或隻能部分應用,這是需要重新設計規劃的。
3、需要采用何種标準的判斷方法實作最科學有效的資料回傳
影子模式的觸發前提是認為駕駛員對車輛的操作一定是正确且客觀的,因為假定在人為駕駛模式下,系統對環境的判斷能力一定不如駕駛員。然而事實真的如此麼?當然不全是。比如駕駛員看到前方道路上有較多的泥土怕弄髒車輪影響車外觀而選擇換道避開行駛,而系統确不會因為這種原因而觸發自動換道系統,此時如果以駕駛員的車控方式作為标準判斷其正确性,那麼系統肯定是錯了,此時觸發資料采标、回傳,其實是沒有意義或者說不準确的。是以,可以從另一個角度上說,在整個自動駕駛控制系統鍊路中,駕駛員的規律性駕駛行為可能是一種駕駛偏向,這種資料采标、回傳的觸發模式實際是為了提升駕駛體驗感的一種方法模式而已。
4、影子模式對問題的定位需要進一步提升精确度
由于影子模式是面向可視化的駕駛端進行的,這種對問題的定位方式往往是采用逆向追溯方式從執行端的視角來看待問題的。當控制執行過程出現問題時,往往會順勢往後推是否時決策端的問題,如果決策端無任何問題,才會持續往前推是否是軌迹預測端,進一步推及是否是感覺端問題。此外,感覺端也是一個廣義的概念,它包括了真正的場景感覺和後續融合系統,如果場景感覺出現了問題,但通過融合系統的一系列魯棒性算法處理,規避掉了該感覺錯誤所帶來的誤決策等問題,則需要單獨将這類異常感覺場景給篩選出來。
為了把這種場景的資料篩選出來,就需要持續記錄感覺到規劃各端的資料之間的跳變情況,某兩端之間較大的跳變就觸發資料回傳,當然整個過程的計算量會很大。目前自動駕駛系統的整體感覺能力仍然十分受限,誤感覺導緻誤決策的場景仍然時有發生,而即便正确感覺也可能導緻誤執行,這種情況下需要影子系統在收集到的“預測/決策失靈”場景資料時就需要細化顆粒度,排除對于無效資料的采标與回傳,這樣既可以節省流量,也可以節省存儲空間。
5、是否建立了自動駕駛系統資料的仿真應用能力
資料回傳後的使用方法是利用其進行深度學習和資料比對優化,而這一過程需要首先依賴該場景來搭建仿真系統,在仿真系統中輸入相應的場景檢測參數進行算法訓練優化。然而,實際情況是,目前能夠有效利用道路實測資料來做仿真的能力是要求比較高的。各大主機廠、檢測機構、tier1仍舊不是完全具備這樣的能力來完成或者能力不夠成熟等。
架構更新會帶來怎樣的開發問題
高階自動駕駛需要融合車路協同、邊緣計算、雲端服務等多種應用場景,且需要具備一定的可擴充性、通用性、自主進化性。目前電子電氣架構和軟體平台架構很難解決這些需求,目前車載SOA則可以很好的解決如上問題。SOA源自于IT領域,車載SOA環境下最優的實作方式應該是繼承成熟的基于以太網實作高内聚、低耦合的思路。
由此,基于SOA架構的設計高階自動駕駛系統過程的重點在于實作如下功能:
1、服務通信标準化,即面向服務的通信
SOME/IP采用了RPC(Remote Procedure Call)機制,繼承了“伺服器-用戶端”的模型。SOME/IP可以讓用戶端及時地找到服務端,并訂閱其感興趣的服務内容。用戶端可以用“需求-響應”、“防火牆”的模型通路伺服器所提供的服務,服務可以利用通知的方式推送給客戶已經訂閱的服務内容,這就基本解決了服務通信的問題。
然而,基于SOA架構的通信标準SOME/IP有兩大缺陷:
a) 隻定義了比較基礎的規範,應用互操作性難以得到保證。
b) 難以應對大資料,高并發的場景。由于缺少對象序列化的能力,SOME/IP軟體互操作性容易産生問題。SOME/IP不支援共享存儲,基于廣播的1對多通信,在自動駕駛場景下,性能可能成為問題。
2、SOA架構需要對服務進行劃分,以服務重用、靈活重組為目的的服務劃分,即面向服務的重用共享設計。
需要将SOA的系統-軟體開發過程應用于整車功能邏輯的定義中去,架構會主導或者參與到需求開發、功能定義、功能實作、子系統設計、零部件設計等過程中去,面向服務的重用設計實作需要能夠貫穿始終,并最終在功能實作的環節展現出來。
這裡需要說明的是服務重用涉及到原有系統的切割和新系統的重建,随着規模的擴大和新功能的增加,以資訊為基礎的通信将會增長,如此以來,在預計之外的情況将開始經曆一個重大的處理反應期,這個反應期可能造成資料通路延遲。而自動駕駛系統對于實時性要求極高,這也是SOA應用的最大局限性問題。
此外,對于SOA的軟體實作而言,基于服務的軟體架構搭建過程中需要充分考慮是否可承載和适配面向服務的通信設計及面向服務的重組實作問題。
下一代高階自動駕駛系統無非需要解決兩類問題:我在哪兒,我要去哪兒?在這兩類問題中一類依賴于地圖定位,另一類依賴于導航控制。而基礎架構是建立面向服務的設計能力,SOA的架構應運而生。如何在新架構下實作高階自動駕駛系統功能的完美破局,将整體功能體驗和性能提升到一個新高度是自動駕駛研發人需要重點突破的問題。無論從整體的開發方式,感覺性能上都應該做到量變到質變的過程。這條路上還有很多亟待解決的問題,我們需要不斷地個個解決之。
轉載自焉知智能汽車,文中觀點僅供分享交流,不代表本公衆号立場,如涉及版權等問題,請您告知,我們将及時處理。
-- END --