自動駕駛感知的實現需要軟硬件結合,本文從傳感器和算法的角度帶大家來了解一下自動駕駛的感知。首先看一下自動駕駛目前的行業現狀。
行業現狀
自動駕駛是目前發展最為迅猛的產業之一,十年之前,消費者就接觸過“定速巡航(ACC)”這個功能,而現在ACC功能幾乎成為量產車型的標配。目前量產乘用車市場正在專注于L2.5或L3功能的實現,如車道居中輔助(LKA)、主動緊急制動(AEB)、交通擁堵輔助(TJA);而創業公司和研究機構則專注于L4或L5等級的技術研發,并且也取得了非常大的進展,如全自動代客泊車、點到點的無人駕駛出租車、倉庫到倉庫的無人駕駛貨車等。
(該圖片來源于創業邦)
自動駕駛迅猛發展的背后到底有哪些力量在推動呢?
兩個方面:一是消費者的訴求;二是科技的發展。
首先看消費者的訴求
汽車已經越來越融入到老百姓的生活中,行車安全是消費者最為關心的問題之一,目前老年人占據了用戶人群的一大部分,已經變的越來越不能忽視,有調查報告指出有93%的交通事故都是由人為操作失誤引起,由此可見,消費者尤其是操作不夠靈活的老年人群體對行車安全的訴求越來越強。另外車輛是一個安全舒適的生活延伸,不再是讓人疲憊不堪的駕駛環境,車輛的智能化可以使消費者從駕車中解放出來。
再來看科技的發展,科技的發展包括硬件和軟件的發展
首先硬件性能得到了全面提升。一方面,芯片算力能耗比巨幅提升。前幾年,芯片算例不足或是能耗太高,導致用在車上時實時性很難保證,因此這成為了智能汽車發展的重要瓶頸,最近芯片行業已經得到了大力的發展,以Mobieye為例,從2010年發布eq1平臺到今年發布eq4平臺,提出eq5平臺。8年時間,他們芯片每瓦的算力提升了80多倍,給無人駕駛技術的發展提供了無限的可能。另外,傳統傳感器得到優化,新型傳感器不斷研發。傳統傳感器如攝像頭、毫米波雷達、超聲波雷達,或新型的傳感器如激光雷達等。在性能提高的同時,它們的制作成本也控制的越來越好。
芯片和傳感器性能的提升為自動駕駛的快速發展做好了充分的準備。
其次軟件算法不斷推陳出新。提到軟件,不得不提深度學習,深度學習相比于傳統的機器學習,很好的實現了端到端感知。有業內人士形象的形容深度學習的感知:只需要給自動駕駛系統一張封面的圖像,它就能反饋出方向盤這時候有個轉角。當然這個形容有待討論,但是不得不說深度學習的出現對自動駕駛系統所要求的自動化、一體化的完整性都帶來了很大的幫助。
感知是自動駕駛的第一環,是車輛和環境交互的紐帶。一個自動駕駛系統的整體上表現好壞,很大程度上都取決于感知系統的做的好壞。
講到感知,首先不得不講到傳感器。傳感器是自動駕駛感知環節中最主要的工具,我們必需對傳感器能夠提供的數據類型、適用的工況以及局限性都非常了解和熟悉,才能讓算法工程師更好的適配傳感器所采集和提供的數據寫出更好的算法,自動駕駛的傳感器主要分為以下四種。
常用傳感器簡介
高清攝像頭
攝像頭一般提供的RGB數據,沒有深度信息,雖然可以利用雙目攝像頭做一些深度信息,或者用算法基于單目攝像頭做一個深度信息的融合,但是在實際使用過程中誤差是很大的,而且單目攝像頭在每次使用前都需要做一次標定,非常麻煩,因此業界一般只使用攝像頭的RGB的信息。
攝像頭有兩個比較重要的參數信息,一個是解析度,解析度越高,能提供的細節信息越多;另一個是FOA,FOA直接決定了自動駕駛的攝像頭感知視野的寬窄。
攝像頭工作的時候,對光照的條件要求比較高,需要一個好的穩定的光照條件,那什么是不好的光照條件呢?舉個例子,當載有攝像頭的車輛進入隧道的時候,曝光不足,出隧道的時候會發生曝光過度,如此一來,呈現畫面上就沒有太多的細節信息,這就對于感知算法來說會造成很大的困擾。
目前基于攝像頭的感知已經發展的比較成熟,比如特斯拉的Autopilot,它的車道線識別是完全基于攝像頭來做的,并且在很多的工況下都會有很好的表現。
毫米波雷達
毫米波雷達是一個基于多普勒效應的傳感器,它可以檢測物體的距離、距離變化率和放向信息,毫米波雷達原始數據采用的是極坐標,因此它的速度是鏡像的速度,優勢是對雨、霧、灰塵等的穿頭性特別強,而且因為工作原理不會受到光照條件的影響。因此毫米波雷達是一個可全天時工作的傳感器。
毫米波雷達的主要參數是頻率,頻率越高,探測距離就會越遠,主要頻率是24GHZ和77GHZ,目前也有公司在研發79GHZ頻率的毫米波雷達;頻率越高的另一個好處是帶寬就會越大,分辨率就會越好,分辨率定義為,比如說我這邊有兩個物體,這兩個物體隔開多遠毫米波雷達就會認為它們是兩個物體。比如像24GHZ的分辨率為60厘米左右,77GHZ的分辨率可以到20厘米左右。像77GHZ的遠距離探測的毫米波雷達一般放在車前保險杠附近,作用是對前方障礙物的檢測;24GHZ的毫米波雷達一般會放在汽車的左右側或后側,主要做盲區的檢測。
毫米波雷達簡要總結:
數據類型
距離、徑向速度、方位
采用極坐標
主要參數
頻率高——探測距離遠
頻率高——帶寬大,分辨率好
適用工況
穿透霧、煙、灰塵能力強
具有全天候、全天時特點
主要應用
盲區監測——變到輔助
前車車距監測——ACC、AEB
超聲波雷達
超聲波雷達的測量原理其實非常簡單,主要通過測量發出超聲波到超聲波碰到物體彈回來接收后的時間差來計算物體與車輛之間的距離。
基于此原理會帶來一些誤差,因為這樣傳播的介質是空氣,我們知道空氣在不同的天氣條件(如雨、霧天等)下,對超聲波傳播的波速都有影響,而且超聲波雷達傳播的波速本身就比較慢,因此在車輛高速行駛的時候,它測量的實時性會比較差,而且如果測量距離較遠的情況下超聲波雷達的回撥信號較弱,就會帶來一系列的問題,一方面是誤差大、另一方面是方向性的信息會比較糟糕。
超聲波雷達的好處是體積小、售價低,因此超聲波雷達一般會被用在低速、短距離的場景下使用,如倒車。
超聲波雷達總結
數據類型
與障礙物的距離
主要參數
頻率高——靈敏度高,但FOV小
適用工況
短距離低速測距(0.1-3米)
距離遠——誤差大、方向性不佳
車速高——波速慢,實時性差
主要應用
低速短——距倒車雷達
激光雷達
激光雷達它的數據是點云數據,是可以描繪3D信息的點云數據。點云是一個一個點,每個點都有自己(x,y,z)的空間坐標信息,還有它的反射率和方向的信息。
激光雷達有兩款形式分為固態激光雷達和機械式激光雷達。它們的區分主要看激光發射器是固定的還是運動式的。
傳統的機械式激光雷達是把激光發射器和接收器安裝在一個裝置上,該裝置是可以整體旋轉的,每旋轉一圈就會完成對周圍信息的一次掃描,缺點是體積較大、活動的部件較多,因此它的使用壽命較低和也不好維護,另一個缺點是機械式激光雷達在出廠的時候發射點再出廠的時候就已經做在里面的,因此角分辨率后期不能通過一些算法去做調整。
機械式激光雷達
相比之下,固態激光雷達的出現就很好的解決了這方面的問題。固態激光雷達的發射源和接收器都是固定在一個裝置內不動的,它會通過一系列的方法把激光導向空間的各個方向,實現對周圍空間的掃描,方法一般分為Flash、OPA和MEMS。
固態激光雷達
Flash激光雷達目前還處在研究的初步階段,我們可以把它想象成一個探頭,往四周各個方向發射,并且接收各個方向返回來的激光信號,這樣的原理會自身存在固有的一些問題,比如它的能量會隨著距離的增加衰退的非常快,所以有效監測距離一般只在小幾十米左右。但是如果加大它的能量就會對人眼造成傷害。目前激光雷達的工程樣機都非常少,還處在初步的階段。
OPA激光雷達是相控陣原理,它是做了非常多的激光發射頭,把激光發射頭排列成一個陣,然后我們通過調節不同激光發射頭在發射激光的時候的相位差,實現激光方向的導向。 OPA運用相干原理(類似的是兩圈水波相互疊加后,有的方向會相互抵消,有的會相互增強),采用多個光源組成陣列,通過控制各光源發光時間差,合成具有特定方向的主光束。然后再加以控制,主光束便可以實現對不同方向的掃描。
MEMS激光雷達在激光發射頭前面做了很小的一個微震的鏡片,通過這個鏡片的旋轉抖動把激光導向各個方向。
現在業界OPA和MEMS都是比較成熟的激光雷達解決方案,目前它們的角分辨率最好的目前已經可以做到0.01°。
受益于工作原理,激光雷達受雨天、霧天、霧霾天的影響是比較小的。雖然在雨天雖然在點數上會有一些點的缺失,在霧霾天時,空間上會有一些噪點,但是都可以通過一些簡單的算法把這些問題解決。激光雷達在自動駕駛中扮演了非常重要的角色。
激光雷達小總結:
固態激光雷達
工作原理:激光的發射源和接收器固定,采用Flash、OPA、MEMS的方法控制激光束方向,進行空間掃描。
特點
體積較小
角分辨率較高可達0.01°
角分辨率與掃描頻率可調
探測距離一般,約100米
橫向FOV較小,約100米
機械式激光雷達
工作原理:激光的發射源和接收器都固定在一個部件上整體旋轉
特點
體積一般較大
活動部件多,工作壽命不佳
角分辨率不高,約0.9°,且不可調
探測距離較遠,約200米
可360度全方位掃描
數據類型
(x,y,z,r)點云數據
主要參數
角分辨率-點云更稠密,更能體現物體特征
有效探測距離
掃描頻率
適用工況
不收光照條件影響,全天時
非極端氣象條件均可用
主要應用
目標識別與分類、目標跟蹤
可行駛區域分割、車道線識別
SLAM高精自定位
說完傳感器,接下來我們就要想辦法從傳感器中提取到對我們有用的信息,這個時候就是算法需要登場的時候了。說到算法,這里重點講一下深度學習。
深度學習與感知
深度學習可以實現端到端的感知效果。什么叫端到端?
舉個例子,比如說我這邊有張圖,我們想做一個摳圖,把圖上的一個人摳出來,傳統的CV的方法,無論是基于圖割、最小割還是隨機場的算法,都需要標一下這張圖的前景還有后景分別是什么,而且跑完算法之后會發現算法分錯了還得需要提供額外的信息進一步區分前景和后景,這就說明算法在運行的時候需要進行非常多的人為干預;然而深度學習可以被理解為全自動的算法,可以在沒有人干預的情況下完成一個算法的流程,這是深度學習相較于傳統機器學習最大的優勢所在。
深度學習的模型是由不同的計算層構成的,所謂的計算層是由自身的一個參數,它把自身的參數和收到的數據做一個簡單的數學計算,然后再把計算結果傳輸給下一層,這就完成了這一層的工作,每一層都有不同的職責,比如說,直觀解釋來講,像卷積層,可以理解為它是把圖像信息做了一個提取;像池化層,它是數據做了一個降維處理,保留了有效的信息,同時把數據的體積做了一個剪裁;像激活層,可以理解為對有效信息的一個過濾,它把無效信息給濾走,它是模仿人腦的神經元,對數據的非線性的計算處理;像全連接層,大家可以理解為,把之前提取的高層的信息做了一個整合,幫助模型做整個判斷。
深度學習是有監督學習的一種,說到訓練,就要看兩個東西,一個是叫做ground-truth,是我們希望模型達到的最理想值;還有一個就是提供給它的數據。
我們是如何訓練的呢?我會通過比較ground-truth和這個模型自己計算出的一個結果,我們會量化的計算一個誤差值,這個誤差值就是我們的一個損失值,我們通過調整模型的參數把這個損失值降到最低就會完成模型的一個訓練。
那如何調整參數呢?我們可以想象一下一個凹函數它是由很多自變量構成,它的因變量就是損失值,把損失值往零去優化的一個方法就是梯度下降的方法,這也是深度學習中優化每一層的方法。
那深度學習有很多層,層與層之間是如何優化的呢?這時候我們就會采用偏微分里面的一個鏈式法則,把每一層的梯度不斷地往前傳,這樣一個鏈式的流程就會實現反向傳播深度學習的訓練。
深度學習為什么可以做到端到端的模型?因為數學的輸入量和最終的輸出量是可以做自己的自定義的,從數據的輸入到模型的輸出之間它是由一系列的數學表達式相連接,它就是可以使用這種反向傳播的模式進行優化的。所以這也就是深度學習能夠實現端到端的原因。
雖然深度學習能實現非常棒的端到端的感知能力,實際上業界在使用深度學習的時候也發現了一系列的問題。下面主要列舉三個例子,一塊討論一下業界和學術界目前遇到的這些問題以及業界和學術界的差異化,以及業界解決問題的方法。
學術界VS業界
數據前融合
學術界為了體現算法的先進性,他們會盡量采用盡量少的數據,去擬合出盡可能多的信息。舉個例子,很多研究論文都會集中于說我通過一張圖片就可以擬合出它的深度信息,可以做一個車輛三維姿態的估計,實際上對于業界來講,會認為這樣來做誤差會比較大,比較好的擬合的結果誤差可能在1米左右。
1米是什么概念呢?想象一下,汽車在路上以60千米/小時行駛的時候,沒有0.1秒車子就會駛過1.6米左右,因此我們會覺得這個誤差比較大。作為業界來講,希望如果有的信息能夠用傳感器做一個準確的測量的話,寧愿多裝一個傳感器,而不是用算法去擬合,因為業界覺得數據的可靠性是最重要的。
這就會牽扯到業界會把不同的傳感器都會做一個數據的前融合。所謂的數據前融合就是把數據送到算法,得出一個結構化數據之前,我們在原始數據上做一個前融合,業界會把激光雷達數據和攝像頭數據做一個前融合,這樣激光雷達的點云數據從原先的四維數據(x,y,z,r)變為7維數據。融合的好處是原始數據中有一個非常精確的三維的信息,并且對材料本身的一些信息,如反射率、顏色等也得到了一個信息的補充。
有人可能會問,這樣融合時候,計算量會不會增加很多?實際上并不會。因為,首先從深度學習的角度來講,你的數據的維度是多少就等同于你的數據的通道數是多少,通道數量對模型的前一兩層并不會增加很大的計算量。而且作為深度學習來說,我們有很多的技巧來減少該計算量,比如說,我們可以做一些池化的處理、可以做一些一對一的卷積降維的處理,而且這些數據在進入深度學習運算之前,會做一些柵格化的處理,這樣一來就會有效地控制好數據計算量的增幅。而我們得到的信息就會豐富很多。
數據后融合
所謂的數據后融合就是把不同傳感器的算法的數據結構化處理后再做一個融合,這點學術界并不感興趣,因為后融合一般很難體現他們算法的先進性。
這里舉一個核心區域分割的例子
學術界一般采用的是像素集語義分割的方式對行駛區域的查找,像素集語義分割就是把圖像上的無論是路面還是車,每一個像素都打上標簽,這樣一來就會有一系列的問題,比如說,上圖中,可行駛區域邊緣分割的并不是特別光滑,而且在收到光照的干擾的情況下邊緣會出現明顯的分類的錯誤,雖然非常多的論文和研究機構在說如何改進這一點,但是這的確是目前扔然存在的一個問題。
這時候業界會如何保證算法的魯棒性呢?這時業界會采用另一個傳感器來做同一件事情,兩個傳感器所產生的數據進行比較。之所以這樣來做是為了盡量減少做同一件事情的時候的關聯性。這樣通過兩種不同方法得出的同樣的數據作比較的時候才會有互相做檢查的安全的意義。
數據后融合的方法,如上圖右側,我們會看到點的數據,這里的算法并沒有牽扯到深度學習,它是取一個點,然后對這個點取一大一小兩個半徑,通過兩個半徑再找兩個平面,然后再計算這兩個平面的法向量,再把這兩個法向量做一個差。對于每個點都做這樣一個操作之后就會得到一個路面幾何信息變化率的數據,這個計算并不會增加額外的計算量,因為它并不像深度學習又要跑一個很龐大的網絡,只是基于紙質運算所得到一個數據,而這樣得到的數據是通過另一種方法來的,它跟基于圖像得到的結構化數據的關聯性幾乎是沒有的,這樣是一種比較保險的做法。
自適應模塊化網絡架構
對于學術界只是想證明自己算法的優越性,希望通過一個模型應對所有場景,導致的結果是過長的端到端,可解釋性會差;另外強調泛化性,全局最優主導下的局部不足;還有模型尺寸過大,參數過多,對運算力的需求會很高。
因為自動駕駛在實際使用的過程中,場景變化并不會特別的頻繁,所以很多時候希望說我有一個模型可以很好的應對當前的情況,而不是說我有一個大的模型可以很好的應對所有的情況。
在業界如何解決這些問題呢?這里采用了自適應模塊化算法網絡,所謂的自適應是指當前傳感器感受到的一些初步的信息先做一個場景的判斷,可以快速的判斷出這是白天還是晚上,下雨還是起霧,然后通過場景的判斷之后,再到算法池里面去選擇一個合適的專門訓練過的模型,再通過這個模型進行計算感知。第一步做判斷并不會額外增加更多的計算量,并且用到的信息也不多。然后將這些數據送到算法池,選擇針對此工況優化后的模型。
模塊化的設計,是多個短的端到端的網絡有以下三個好處:易鎖定問題、不需要過一遍完整的網絡所以可降低訓練成本、減小運行時實時算例需求。
展望
從V2X的角度去想,單輛車的感知不僅對自身是有益的同時也對周圍其他車輛也是有益的,因為我們可以把路上行駛的每一輛車都看作是一個個傳感器,可以把自己感知到的結構化數據實時傳輸到云端,這樣能夠幫助整個智能生態化環境的構建。
舉兩個例子,一個是相同目的地的車輛可以自然的形成一個實時的車隊,只要前車做一個感知,后車做一個跟車,這樣就會很輕松的完成一個自動駕駛車隊的情況;另外一個就是一些大城市會面對交通的早晚高峰,此前有人提出了潮汐車道來解決此問題,但是目前的做法還是不夠高效,如果能夠達到一個車聯網的狀態的話,未來車道未必需要標上這樣反向性的箭頭了,因為可以適時動態的調整車流及方向,可以增大路面的利用率。
-
傳感器
+關注
關注
2553文章
51392瀏覽量
756593 -
自動駕駛
+關注
關注
785文章
13930瀏覽量
167007 -
深度學習
+關注
關注
73文章
5513瀏覽量
121551
原文標題:自動駕駛的智慧之眼——感知
文章出處:【微信號:IV_Technology,微信公眾號:智車科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論