在9月24日的新浪汽車(chē)第七期輪語(yǔ)匯自沙龍上,圖森互聯(lián)聯(lián)合創(chuàng )始人郝佳男做了題為《視覺(jué)感知—無(wú)人駕駛的基石》的主題演講。郝佳男在演講中結合前段時(shí)間特斯拉Model S出現的致死事故實(shí)例,為我們講解了“視覺(jué)感知的正確打開(kāi)方式”。

圖森互聯(lián)聯(lián)合創(chuàng )始人郝佳男圖森互聯(lián)聯(lián)合創(chuàng )始人郝佳男
以下是演講實(shí)錄:
郝佳男:謝謝大家,首先感謝牛車(chē)網(wǎng)提供這樣一個(gè)舞臺,讓大家都能展現自己公司做的事情。
今天很有意思,剛才王總和伍總都提到了一點(diǎn),就是大家目前用的傳感器都是基于視覺(jué)去做,或者把視覺(jué)作為主要的傳感器,這也跟我今天的演講題目很貼近,我講的是視覺(jué)感知為什么是無(wú)人駕駛汽車(chē)的基石。
北京是總部,美國有個(gè)研究院,加起來(lái)大概60人的規模。我自己是南洋理工畢業(yè)的博士,但是我做的并不是視覺(jué)感知這部分,更多在底層技術(shù),比如并行、分布式、虛擬化、安全,現在我負責圖森研發(fā)的基礎架構和路線(xiàn)的制定。
提到視覺(jué)感知,它到底是什么意思?說(shuō)白了就是拿一個(gè)攝像頭拍一張圖片,或者拍一個(gè)連續的圖片序列,最后告訴計算機,你要給我完成一個(gè)任務(wù)。
任務(wù)有多種多樣,比如識別車(chē)輛,識別某個(gè)物體,比如追蹤這個(gè)移動(dòng)的物體。再比如對場(chǎng)景的理解,這部分是人,那部分是建筑物,有一部分是樹(shù)木,有一部分可能是其他份量,這些是場(chǎng)景分割。
所有的算法怎么評定誰(shuí)好誰(shuí)壞?通過(guò)第三方去評判。現在世界上最權威的數據集有兩個(gè),一個(gè)是Cityscapes,由奔馳主推,測試無(wú)人駕駛環(huán)境下通過(guò)單目攝像頭采回來(lái)的圖像,然后對它進(jìn)行分割,分類(lèi)比較多。另一個(gè)是KITTI,這個(gè)數據集相對來(lái)說(shuō)跑的項目多一點(diǎn),比如目標的檢測包括三項,機動(dòng)車(chē)、非機動(dòng)車(chē)和行人,包括目標的追蹤和路面分割。
還 有兩個(gè)數據集是AFLW和300W,這是對人臉的檢測,有68點(diǎn)或者更多點(diǎn)的測試。為什么要提到這個(gè)數據集?因為無(wú)人駕駛中還有一個(gè)很重要的應用,要對駕 駛員有狀態(tài)的檢測,在L2、L3的自動(dòng)駕駛中人是需要有監控能力的,需要知道現在駕駛員在什么狀態(tài),就能夠避免像特斯拉那樣的悲劇產(chǎn)生。在總共9項的比賽 當中,目前圖森都獲得第一,也就是說(shuō)在視覺(jué)感知這個(gè)領(lǐng)域,目前圖森可以代表世界第一的水平。
回 到傳感器本質(zhì),為什么我們說(shuō)視覺(jué)是無(wú)人駕駛汽車(chē)的基石?我們認為視覺(jué)是最適合作為主傳感器的,所以我們認為它應當是無(wú)人駕駛汽車(chē)的基礎。厘米波雷達、毫米 波雷達、激光雷達、紅外和我們自己的視覺(jué)感知,其實(shí)從根本上來(lái)講就是不同的波長(cháng)進(jìn)行感知,這就是傳感器的本質(zhì)。從視覺(jué)傳感器來(lái)說(shuō),它有什么優(yōu)勢?為什么我 們選擇它?第一,大家不能忽略一個(gè)客觀(guān)的因素,就是人類(lèi)本身的世界是建立在可見(jiàn)光的基礎上,因為大家有視覺(jué),人類(lèi)的視覺(jué)、動(dòng)物的視覺(jué)都是在這里獲得,有些 動(dòng)物更遠一些。
人類(lèi)是基于視覺(jué),能看見(jiàn)什么就創(chuàng )建什么東西,比如這個(gè)投影儀的光也在可見(jiàn)光之內。因為這一點(diǎn),我們通過(guò)攝像頭拿來(lái)的視覺(jué)圖像 一定包含最豐富的語(yǔ)義。這張圖比如拍到外面有車(chē)輛、有人、有自行車(chē),上面有紅綠燈,這邊有限速牌,前面有垃圾桶,一張圖片能做所有的事情,人類(lèi)開(kāi)車(chē)就是這 樣開(kāi)的。
另外一點(diǎn)很重要,上路以后不可能期待所有車(chē)都是無(wú)人駕駛,有其他人工駕駛的車(chē)和自行車(chē),別人同樣的是參與的交通者,別人是怎么行駛 的?一定是通過(guò)視覺(jué)判斷很多信息。舉個(gè)稍微極端點(diǎn)的例子,假如V2X以后成熟了,可能我的車(chē)不需要識別到底現在紅綠燈是什么狀態(tài),而是直接告訴車(chē)子就好 了。但可能告訴我現在是紅燈,可這個(gè)系統出了問(wèn)題,其實(shí)這個(gè)紅綠燈顯示的是綠色怎么辦?這種情況下如果我不能理解其他交通參與者對當前場(chǎng)景的理解時(shí)就會(huì )出 現問(wèn)題,這也是為什么一定需要視覺(jué),因為我要理解其他人怎么想,才能構成完整的無(wú)人駕駛環(huán)節。
還有一點(diǎn)是視覺(jué)本身是被動(dòng)的傳感器,不像雷達 需要去打一個(gè)波數,這有什么好處?現在很多無(wú)人車(chē)方案都是用lidar,lidar有一個(gè)問(wèn)題,多個(gè)lidar互相之間會(huì )進(jìn)行干擾,如果之后無(wú)人駕駛都廣 泛用了激光雷達,但是它們可能不合標準或者由于設計的不全,互相之間就會(huì )有干擾問(wèn)題,這點(diǎn)就會(huì )很糟糕,從一開(kāi)始選型來(lái)說(shuō)這些技術(shù)可能就面臨這個(gè)缺陷。當 然,如果拿視覺(jué)作為主傳感器,它也一定面臨挑戰,我們拿到的就是一幅圖像,它雖然信息很豐富,但是這些信息不能被下面的決策系統直接使用,因為即使就一張 圖,我也一定要幾套算法把它轉化成結構化或半結構化的信息。
什么叫視覺(jué)傳感器?說(shuō)白了就是攝像頭,攝像頭主要分兩部分,一部分是鏡頭,一部 分是后面的傳感器。鏡頭是讓光線(xiàn)匯聚的作用,它會(huì )影響視角有多大、銳度有多好。我們重點(diǎn)看一下傳感器部分,目前大部分的傳感器都是基于CMOS技 術(shù),CMOS本身是個(gè)半導體,在這上面有一個(gè)特性,就是光打在上面就會(huì )變成電。大家回憶一下在物理課上學(xué)的知識,一個(gè)光子打過(guò)來(lái)就有可能轉化成一定的電 子,然后累積起來(lái),這就是傳感器大致的運作方式。
這張圖是傳感器的樣子,如果我們把單反或者手機拆了,把鏡頭拿掉后看到的就是這樣的場(chǎng)景,這上面很小,每一部分都是這樣的傳感器。
我 們拍照時(shí)它發(fā)生什么?首先,傳感器把上面這部分電荷清除掉,把之前累積的清成零,接著(zhù)光線(xiàn)當然就會(huì )穿過(guò)鏡頭,通過(guò)光子接觸這個(gè)傳感器,變成一系列的電子積 累在這個(gè)地方,然后因為有一個(gè)快門(mén)時(shí)間,比如多少毫米或者幾分之一秒,過(guò)了快門(mén)時(shí)間后統一把井里面到底有多少電荷統計出來(lái),之后經(jīng)過(guò)轉換變成數字信號,根 據數字信號的不同變成數字,最終這個(gè)數字就可以解讀為像素,比如任何一個(gè)點(diǎn)它的亮度。其實(shí)很多攝像頭都是彩色的,它怎么做到的?本身這個(gè)器件它只能測量亮 度,那就通過(guò)一種過(guò)濾的方式,這個(gè)單元我允許它只能過(guò)藍色調光,這個(gè)單元只能過(guò)綠色的光,這個(gè)單元只能過(guò)紅色的光,最終這個(gè)井里面的信息就是在這個(gè)附近藍 色光到底有多強,最終這樣的光強可以轉換成大家肉眼去理解的圖像。
CMOS來(lái)說(shuō),視覺(jué)傳感器對無(wú)人車(chē)非常重要,我們一定要關(guān)注本質(zhì)的屬性。 第一個(gè)叫量子效應 ,光本身肯定有量子效應,每個(gè)光子打在這上面,它到底能轉化成多少電子,這是個(gè)概率問(wèn)題,假如這邊10個(gè)光子打過(guò)來(lái),最終生成了6個(gè)電子,它的效率是 60%,剩下的40%沒(méi)有辦法去記錄。另外一個(gè)指標叫顳暗噪聲,當我們讀這個(gè)井里面有多少電子時(shí)也是不準確的,有可能有一個(gè)偏差,到底偏差多少?如果沒(méi)有 信號是否也能讀出數字?這就是顳暗噪聲。還有飽和容量,這個(gè)井如果滿(mǎn)了以后就不能再裝進(jìn)新的電子了,在圖像上我們就變成一片白了,沒(méi)有細節了,本質(zhì)上來(lái)說(shuō) 是這個(gè)井滿(mǎn)了。而且快門(mén)結束以后要去讀所有像素點(diǎn)的電荷數,怎么讀有兩種方式,一種叫“卷簾方式”,就是一行行的讀,先讀這一行再讀下一行,每次清除電荷的時(shí)間也有可能不同,就會(huì )出現問(wèn)題。還有一種方式叫“全局”,這種方式我們可以認為清除是在一個(gè)時(shí)間點(diǎn),全部讀取也在一個(gè)時(shí)間點(diǎn),這樣更好一點(diǎn)。另外,要把電子測量之后變成數字,那數字量化以后一定有位寬問(wèn)題,用多少位數去存,位數越多灰度越好,如果只有兩個(gè),那可能就只有一個(gè)黑、一個(gè)白,沒(méi)有別的了。
我 們看看什么叫“最適合自動(dòng)駕駛的CMOS”,舉個(gè)例子,我們來(lái)看它的不同,第一,我需要它在低照度下有優(yōu)異表現,就是比較暗的情況下也能拍,那么一是量子 效率必須要高,全都能轉化為可以測量的量;第二是顳暗噪聲比較低,三是有很高的通俗范圍,比值能到多少BD,這就是寬動(dòng)態(tài)的問(wèn)題。怎么寬動(dòng)態(tài)?第一,噪聲 低,第二,飽和量要高,不然很快飽和以后沒(méi)辦法繼續度量接下來(lái)的光照。比如ICX614在很亮的區域很快就飽和掉了,飽和掉以后這個(gè)部分全是白的,并沒(méi)有 細節,你不會(huì )區分這個(gè)點(diǎn)和邊上的點(diǎn)有什么差異,這對后面的算法來(lái)說(shuō)無(wú)能為力,比如車(chē)面反光很大,而且造成這樣已經(jīng)溢出的情況,那就非常糟糕。IMX249 這個(gè)地方雖然也很亮,但是我們可以看到細節,可以看到光暈的變化,從機器的角度來(lái)講,只要有數值上的差別,就能夠做下面的算法。
剛才提到了 全局快門(mén),大家可以自己去實(shí)驗,有直升機可以拍直升機,沒(méi)有直升機可以拍電扇,如果一行行掃的,電扇這種很快的物體會(huì )產(chǎn)生運動(dòng)模糊,產(chǎn)生并不是當時(shí)實(shí)際場(chǎng) 景,因為你在不同的時(shí)間段拍了不同的地方。全局快門(mén)就沒(méi)有這個(gè)問(wèn)題,無(wú)論物體運動(dòng)多快。還有數模轉換,平滑過(guò)渡才夠好。
我們用視覺(jué)能做什么?剛才王總提到了一些,我們可以檢測車(chē),我們可以圍繞它畫(huà)一個(gè)方塊,可以是2D的,可以是3D的,3D知道它的朝向和長(cháng)寬高。另外,所有的物體不是每一幀都需要檢測,不同的框之間要有對應的關(guān)系,這就是追蹤。
檢 測確實(shí)可以滿(mǎn)足一些應用,例如對ADAS或者簡(jiǎn)單的自動(dòng)駕駛沒(méi)有問(wèn)題,但是如果想做很復雜的自動(dòng)駕駛確實(shí)需要語(yǔ)義分割,語(yǔ)義分割是我們對每個(gè)像素都指定類(lèi) 別,比如這是地面,這是建筑,這是天空,這是樹(shù)木,這是人,這是散落的一些小的物件,對不同的車(chē)、不同的物體有不同的顏色和不同的分類(lèi),可以幫助我們理解 場(chǎng)景到底是什么樣子和哪些地方可以走。
提一個(gè)悲傷的事情,特斯拉的這次事故,在今年的5月7號特斯拉發(fā)生了這起很?chē)乐氐能?chē)禍,車(chē)毀人亡。在進(jìn)入事件回顧之前,我們先看一下特斯拉本身是什么樣的技 術(shù),從傳感器來(lái)說(shuō),它的主傳感器也是視覺(jué)感知,是Mobileye的。圖像進(jìn)來(lái)能夠識別什么?第一,車(chē)尾,Mobileye里面跑的算法是SVM,識別的 是車(chē)后面的兩個(gè)車(chē)燈和后車(chē)輪,以這樣的方式檢測車(chē)很明顯的特征點(diǎn),然后對車(chē)尾進(jìn)行檢測。當然,特斯拉不會(huì )只用攝像頭,它也想到備選方案,就是毫米波,上面 可能是6個(gè)或者8個(gè)毫米波雷達,大概安裝在車(chē)牌那個(gè)位置,這個(gè)功能是自動(dòng)巡航定速,可以根據前面車(chē)的距離去定速,另外還有車(chē)道線(xiàn)的保持,通過(guò)這兩項在一起 達到從SAE的分級來(lái)說(shuō)達到L2,它比L2高級一點(diǎn),如果你想變道,確認沒(méi)問(wèn)題以后車(chē)會(huì )變到另外一條道,但是變道過(guò)程需要人來(lái)決策,所以這不能叫L3。
我們回顧這場(chǎng)事故,當時(shí)車(chē)主由西向東行使,另外一輛非常長(cháng)的白色車(chē)從另一邊拐下高速公路,當時(shí)車(chē)主本身不再監控這個(gè)狀態(tài)了,甚至有傳言說(shuō)他當時(shí)再看《哈利波 特》。結果這個(gè)車(chē)正好橫在了這個(gè)位置,當時(shí)特斯拉已經(jīng)很近了,它的系統并沒(méi)有做出反饋,它認為前面沒(méi)問(wèn)題,可以開(kāi)過(guò)去,沒(méi)有任何的剎車(chē)動(dòng)作。車(chē)從大卡車(chē)的 下面直接穿過(guò)去了,而且車(chē)穿過(guò)去以后還會(huì )繼續行使,連續撞擊,最后車(chē)是實(shí)在走不了了才停下。
為什么出現這個(gè)問(wèn)題?任何事故肯定都是很多具體 條件聚集起來(lái)才發(fā)生的,這起事故當中是什么呢?第一,從感知上來(lái)說(shuō),當車(chē)橫在這個(gè)位置,無(wú)論這個(gè)車(chē)是什么顏色,不能檢測到這個(gè)車(chē),這是Mobileye這 一代芯片的缺陷;第二,糟糕的是毫米波雷達位置正好穿越這輛車(chē)下面,所以它也認為前面沒(méi)有障礙物,于是系統判斷前面沒(méi)問(wèn)題,繼續往前開(kāi),就撞了。
為 什么說(shuō)它是視覺(jué)感知的錯誤打開(kāi)方式?Mobile在這個(gè)事情上沒(méi)有問(wèn)題,他的這一代產(chǎn)品本來(lái)就是這個(gè)功能。特斯拉也知道這個(gè)事情,但是它錯誤的把圖像只做 了這樣一個(gè)處理。也就是說(shuō)如果特斯拉想拿視覺(jué)作為主傳感器,不能只做這兩個(gè)傳感器,還需要用其他的傳感器或者算法去做,比如去識別這個(gè)地方的深度信息,或 者用單目做語(yǔ)義分割,判斷這個(gè)地方是不是一個(gè)可行駛路面,所有這些傳感器只是視覺(jué),就一張圖,但可以跑很多算法,這些算法融合起來(lái),最后進(jìn)行一個(gè)決策,對 于視覺(jué)來(lái)說(shuō)絕對不可能是只跑一個(gè)算法,然后拿這個(gè)作為真的物理量去做下面的決策,這是不對的。
正確的打開(kāi)方式,就是剛才說(shuō)的,是一組傳感器,單目、雙目或者多目都沒(méi)關(guān)系,它有不同的視角,有一些窄一點(diǎn)去關(guān)注比較遠的,有一些寬一點(diǎn)的去關(guān)注有沒(méi)有闖入的行人等等。然后跑多個(gè)算法,比如目標檢測、目標追蹤、可行駛路面。
它 第一次出現的時(shí)候會(huì )給它一個(gè)編號,然后追蹤它,對后續的算法可以預計它的軌跡,它是不是要轉彎、是不是要強行并道,都可以獲得。這邊有一個(gè)綠色的淡淡的區 域,這叫可行駛區域,可以理解為語(yǔ)義分割的一個(gè)子集,最關(guān)注的是哪部分可以開(kāi),哪部分開(kāi)了不會(huì )撞。這個(gè)信息不是雙目取得的,這是單目信息直接算出來(lái)的,通 過(guò)單目對場(chǎng)景的理解,然后它知道這個(gè)位置可以行駛,比如這邊有車(chē)擋著(zhù)就不能行駛。
我 們看看在北京很復雜的路段它跑到什么樣子,這是在CBD那邊我們拍攝的一段視頻,人和車(chē)以?xún)煞N顏色去做區分,因為語(yǔ)義分割規定了車(chē)跟人是屬于兩個(gè)分類(lèi)。除 此之外我們還可以看到天空,可以看到建筑物、樹(shù)木、車(chē)輛、隔離帶,都用不同的顏色去做區分。有這樣的技術(shù),無(wú)人駕駛就會(huì )更穩妥一點(diǎn)。
除 了語(yǔ)義分割,深度信息我們通過(guò)雙目獲取也是比較方便的。這也是CBD,是實(shí)際拍攝到的左眼的視頻,右眼我沒(méi)有放。紅色的部分表示離大家很近,紫色的部分表 示離大家很遠。這并不是實(shí)際到這個(gè)攝像頭的,而是對于任何一個(gè)特征點(diǎn),從左眼到右眼它們之間的距離有多遠,根據這個(gè)直接劃出的顏色。道路這一側是同一個(gè)顏 色,如果是距離的話(huà),中間肯定更近一點(diǎn)。
不同算法其實(shí)有不同的適用場(chǎng)景,比如剛才提到的目標檢測,可以跑得很遠,比如40度識別一個(gè)200米以外的車(chē)輛沒(méi)有問(wèn)題,這在高速場(chǎng)景就很必須,因為高速給你響應時(shí)間很短。
比 如對于雙目的深度信息,它在比較遠端就比較麻煩,因為雙目的識別距離跟這兩個(gè)攝像頭離多遠有關(guān),我們在這個(gè)視頻里面大概的距離基本在車(chē)頭的兩個(gè)三分之一 處,它能夠區分的距離應該是在三四十米比較精確,再往遠的話(huà)很難去分辨了,所以它對于近距離的物體做比較好。所以如何使用視覺(jué)傳感器,實(shí)際是拿這一組傳感 器傳回來(lái)的圖像去跑多個(gè)算法,所有這些拿出來(lái)結構化信息,比如目標檢測失敗了,但是可行使路面告訴我那有一個(gè)障礙物,或者深度信息告訴我這邊有一個(gè)異常的 坑,我都應該決策這個(gè)車(chē)不能行使,應該繞開(kāi)或者以其他的方式規避,這樣的情況下特斯拉的悲劇就不會(huì )重演了,這是視覺(jué)感知的正確打開(kāi)方式。