特斯拉4大車禍復盤,圖像語義分割或成自動駕駛突破口
今年對于特斯拉公司來說,無疑是個多事之秋。接二連三事故的發生,讓人們對輔助駕駛乃至無人駕駛技術產生了質疑。
【編者按】:本文轉載自新智元,作者:視覺守望者,編輯:小猴機器人
特斯拉屢次車禍盤點
事故1:2016年1月,在中國京港澳高速上,特斯拉轎車直接撞上前方正在作業的道路清掃車;該清掃車停在最左側邊線上。
事故2:2016年5月,在美國佛羅里達州北部一個沒裝紅綠燈的十字路口,特斯拉和一輛白色集裝箱貨車相撞,該貨車正在從對向車道進行拐彎操作。
事故3:2016年8月,在德克薩斯州的高速公路上,特斯拉因為未能識別彎道而徑自沖出去,從而撞上高速的護欄。
事故4:2016年8月,北京的羅先生剛給新買的特斯拉上完牌照,依然因為未能識別左側路邊臨時??康男∑嚩l生剮蹭。
究其原因
很多文章都對特斯拉傳感器的結構布局進行過分析,大抵就是前方側身和后方側身的超聲波傳感器+前方中央的毫米波雷達+后視鏡下方的前視攝像頭。
·前方側身和后方側身的超聲波傳感器用于檢測近距離的障礙物,幫助自動泊車等。
·前視攝像頭可以完成路面車道線的檢測和障礙物的檢測。
·毫米波雷達用于較遠距離障礙物的檢測。
因此碰撞檢測主要依賴于毫米波雷達和前視攝像頭的協同運作。而前言中事故發生的原因,正是因為這兩個模塊同時失效引起??偟膩碚f,可能的原因主要有:
(這里,曝光過強并不被認為是前視攝像頭失效的原因,這是因為現在的攝像頭基本上都有自動白平衡的功能,可能在某個瞬間會出現全白的圖像,但相機很快能夠調整回來。)
解決方案
可以看出,特斯拉事故的發生是因為它并沒有從人類認知的角度來處理問題,而更像是一個專家系統。特斯拉的Adas系統可以認為屬于L2+級別的自動駕駛,即由多個模塊捏合而成,包括車道線的檢測識別(車道偏離預警LDW),車輛的檢測識別(前向碰撞預警FCW),以及某些地面交通標志的檢測識別(路徑規劃和導航)等;上述模塊各司其職,互不干涉。下圖中不同顏色的標記表示了不同模塊的處理結果。
但這種設計理念和人類的認知是截然不同的。從人類角度而言,通常會對整個圖像進行理解,也就是利用上下文信息(context)對整個場景進行建模,構成了一個場景模型后再進行相應的處理(碰撞預警、自動巡航等)。下圖可以認為是一個常見的場景模型:
·圖像上半部分是天空,下半部分是路面,兩側是建筑物;
·中間是可行駛區域以及車道,兩側是行人區域;
·路面和路旁有若干車輛和行人;
·路旁有交通標志。
在場景模型中,可以綜合考慮各個元素之間的區別和聯系,并結合多個傳感器和模塊的信息,便于各種后續處理。
縱觀特斯拉的多次碰撞事故,如果能夠建立合適的場景模型,就有可能避免車輛漏檢問題的發生。首先,除了利用傳統的紋理特征外,還可以根據車輛在圖像中的布局、車輛的形狀以及和其他元素的位置關系進行判定,從而避免從未見過的車型被漏檢。其次,像素級的定位精度能夠得到車輛的精確輪廓,這樣可以完成準確的旁側距離計算;同時,檢測出來的護欄、車道線和路面等元素可以輔助車輛精確位置的判斷。最后,有了對于整個場景的感知,多種傳感器和模塊可以統一到一個框架下,很容易完成數據的整合工作和交叉驗證。
為了理解圖像,從而建立場景模型,一種可行的解決方案是對圖像進行語義分割。顧名思義,就是將整個場景以像素精度進行語義層面的劃分,例如這個像素屬于車輛,另外一個像素屬于護欄等。從像素折算到物理距離,計算機就可以完成場景的完整建模。
語義分割
那么如何對圖像進行語義分割呢?最初的語義分割可以認為是圖像分割,就是通過人們設計的一些規則來分離出目標,例如二值化、區域生長、graph-cut等方法。這類方法依據的是目標顏色和背景的差異,或者目標強烈的邊緣響應等。但這些都屬于人類的理解,因此通常不具備普適性,直到2015年全卷積網絡分割(fully convolutional network,FCN)方法的提出。該方法可以被認為是卷積神經網絡用于語義分割的鼻祖(該論文獲得CVPR2015最佳論文候選獎,相當于XX電影節的最佳提名獎)。
但FCN一個主要的問題就是需要通過池化層對圖像進行降維,那么語義分割的結果通常比較稀疏(FCN直接得到的語義分割結果是原始圖像尺寸的1/32,改進后的也只能達到1/8)。這對場景建模無疑是致命的,大量的小目標(錐筒、地面交通標志等)和狹長目標(車道線、燈桿等)的丟失會直接造成事故的發生。后續的改進方法都是基于FCN展開,其中SegNet和UberNet是兩項對自動駕駛的場景建模具有指導意義的技術。
SegNet技術2015年11月由英國劍橋大學提出,能夠很好的解決FCN遇到的問題。從下圖可以看出,通過逐層上采樣和卷積,SegNet可以得到和原始圖像同樣大小的語義分割結果,從而保證小目標和狹長目標不會漏檢。
從下圖的結果可以看出,燈桿、車道線以及遠處的車輛等要素都得到了很好的分割。它一共支持12種目標的語義分割,包括天空、建筑、燈桿、地面標志、路面、人行區、樹木、標示牌、護欄、交通工具、行人和自行車,這囊括了大多數自動駕駛場景的元素。
UberNet技術則將語義分割和其他檢測識別任務整合到同樣一個框架下。這樣不僅可以保證計算資源的復用,還利用了任務之間的約束關系幫助優化過程。在下圖的結構圖中,C1-C6的特征提取結果是復用的。
下圖給出了UberNet七個任務同時輸出的結果。它給自動駕駛的場景建模提出了一個很好的建議,就是可以設計這樣一種end-to-end的架構,同時完成語義分割、障礙物檢測、車道線檢測、路徑規劃等多個任務。
SegNet和UberNet的提出,使得場景建模成為現實。高精度的語義分割結果+多任務的同步優化,可以以人類的認知方式理解整個世界,一定程度上可以減少或者避免特斯拉碰撞事故的發生。由于數據的原因,這里以發生在中國的事故1和事故4為例:
對于事故1,在場景模型中,可以很好的分辨出前方左側??康那鍜哕?;另外,對于天空、路面、外側車道線以及護欄的檢測識別,能夠進一步對障礙物進行校驗。
對于事故4,在場景模型中,左側??康钠嚥⒉粫l生漏檢;在此基礎上,利用場景中其他元素進行校驗,自動駕駛應該能夠成功完成剎車操作。
展望
隨著語義分割技術的發展,計算機可以像人類一樣對場景有更清晰和完整的建模與認知。在這種情況下,對于車輛等障礙物的檢測識別就不需要依賴于某些特定傳感器一些規則式的判定了,從而可以避免特斯拉這種事故的發生。但基于深度學習的語義分割技術遇到的問題是高功耗和高計算開銷,但這些問題能夠隨著硬件成本的降低、性能的升級和算法的優化予以解決??梢灶A見,語義分割會成為輔助駕駛乃至無人駕駛一個重要的組成部分。
最后,記得關注微信公眾號:鎂客網(im2maker),更多干貨在等你!
硬科技產業媒體
關注技術驅動創新
