自動駕駛干貨鋪:沒有視覺傳感器,還談什么無人駕駛?
文/陳光
微信公眾號/自動駕駛干貨鋪
前言
上一次的分享里,我介紹了GPS+IMU這組黃金搭檔,這兩個傳感器的組合能夠實現城區道路 自動駕駛 的穩定定位功能,解決了第一個大問題“我”在哪的問題。
為了能讓無人車能像人一樣,遇到障礙物或紅燈就減速,直到停止;遇到綠燈或前方無障礙物的情況,進行加速等操作。這就需要車載傳感器去周圍的環境進行感知。
應用于無人車上的傳感器目前有四大類,分別是攝像機,激光雷達、毫米波雷達和超聲波雷達。不同的傳感器根據其傳感特性,布置在車身的不同位置。
今天我以百度Apollo 2.0開放的攝像頭及其模塊作為引子,對無人車上的攝像機進行詳細介紹。
下圖就是百度Apollo 2.0推薦使用的攝像機LI-USB30-AR023ZWDR。Apollo 2.0中使用了兩個同樣的攝像機,通過USB3.0的轉接線接入控制器,傳遞彩色圖像信息。兩個攝像機的鏡頭的焦距分別是6mm和25mm,分別用于檢測近處和遠處的紅綠燈。
正文
攝像機的分類
攝像機根據鏡頭和布置方式的不同主要有以下四種:單目攝像機、雙目攝像機、三目攝像機和環視攝像機。
單目攝像機
單目攝像機模組只包含一個攝像機和一個鏡頭。
由于很多圖像算法的研究都是基于單目攝像機開發的,因此相對于其他類別的攝像機,單目攝像機的算法成熟度更高。
但是單目有著兩個先天的缺陷。
一是它的視野完全取決于鏡頭。
焦距短的鏡頭,視野廣,但缺失遠處的信息。反之亦然。因此單目攝像機一般選用適中焦距的鏡頭。
二是單目測距的精度較低。
攝像機的成像圖是透視圖,即越遠的物體成像越小。近處的物體,需要用幾百甚至上千個像素點描述;而處于遠處的同一物體,可能只需要幾個像素點即可描述出來。這種特性會導致,越遠的地方,一個像素點代表的距離越大,因此對單目來說物體越遠,測距的精度越低。
雙目攝像機
由于單目測距存在缺陷,雙目攝像機應運而生。
相近的兩個攝像機拍攝物體時,會得到同一物體在攝像機的成像平面的像素偏移量。有了像素偏移量、相機焦距和兩個攝像機的實際距離這些信息,根據數學換算即可得到物體的距離。原理圖下圖。
圖片出處:https://www.slideshare.net/DngNguyn43/stereo-vision-42147593
根據雙目測距原理應用在圖像上每一個像素點時,即可得到圖像的深度信息,如下圖。
圖片出處:《2D-3D-based on-board pedestrian detection system》
深度信息的加入,不僅能便于障礙物的分類,更能提高高精度地圖定位匹配的精度。
雖然雙目能得到較高精度的測距結果和提供圖像分割的能力,但是它與單目一樣,鏡頭的視野完全依賴于鏡頭。而且雙目測距原理對兩個鏡頭的安裝位置和距離要求較多,這就會給相機的標定帶來麻煩。
三目攝像機
由于單目和雙目都存在某些缺陷,因此廣泛應用于無人駕駛的攝像機方案為三目攝像機。三目攝像機其實就是三個不同焦距單目攝像機的組合。
下圖為特斯拉 AutoPilot 2.0安裝在擋風玻璃下方的三目攝像機。
根據焦距不同,每個攝像機所感知的范圍也不盡相同。
如下圖,可以看出三個攝像頭的感知范圍由遠及近,分別為前視窄視野攝像頭(最遠感知250米)、前視主視野攝像頭(最遠感知150米)及前視寬視野攝像頭(最遠感知60米)。
對攝像機來說,感知的范圍要么損失視野,要么損失距離。三目攝像機能較好地彌補感知范圍的問題。因此在業界被廣泛應用。
那么測距精度的問題怎么辦?
正是由于三目攝像機每個相機的視野不同,因此近處的測距交給寬視野攝像頭,中距離的測距交給主視野攝像頭,更遠的測距交給窄視野攝像頭。這樣一來每個攝像機都能發揮其最大優勢。
三目的缺點是需要同時標定三個攝像機,因而工作量更大一些。其次軟件部分需要關聯三個攝像機的數據,對算法要求也很高。
環視攝像機
之前提到的三款攝像機它們所用的鏡頭都是非魚眼的,環視攝像機的鏡頭是魚眼鏡頭,而且安裝位置是朝向地面的。某些高配車型上會有“360°全景顯示”功能,所用到的就是環視攝像機。
安裝于車輛前方、車輛左右后視鏡下和車輛后方的四個魚眼鏡頭采集圖像,采集到的圖像與下圖類似。魚眼攝像機為了獲取足夠大的視野,代價是圖像的畸變嚴重。
通過標定值,進行圖像的投影變換,可將圖像還原成俯視圖的樣子。之后對四個方向的圖像進行拼接,再在四幅圖像的中間放上一張車的俯視圖,即可實現從車頂往下看的效果。如下圖。
環視攝像機的感知范圍并不大,主要用于車身5~10米內的障礙物檢測、自主泊車時的庫位線識別等。
攝像機的功能
攝像機在無人車上的應用,主要有兩大類功能。分別是感知能力,其次是定位能力。
感知能力
在無人駕駛領域,攝像機的主要功能是實現各種環境信息的感知。接下來我會以Mobileye(一家國際上功能做視覺最牛的公司)為例介紹攝像機能夠實現的功能。先看兩張圖,視頻可以拖拽到最后點擊“閱讀全文”。
可以看出攝像機可以提供的感知能力有:
①車道線(lane)
圖中的深綠色線。車道線是攝像機能夠感知的最基本的信息,擁有車道線檢測功能即可實現高速公路的車道保持功能。
②障礙物(Obstacle)
圖中使用矩形框框中的物體。圖中僅有汽車、行人和自行車等物體。其實障礙物的種類可以更豐富,比如摩托車、卡車,甚至動物都是可以檢測到的。有了障礙物信息,無人車即可完成車道內的跟車行駛。
③交通標志牌和地面標志(Traffic Sign and Road Sign)
圖中使用綠色或紅色矩形框框出的物體。這些感知信息更多的是作為道路特征與高精度地圖做匹配后,輔助定位。當然也可以基于這些感知結果進行地圖的更新。
④可通行空間(FreeSpace)
圖中使用透明綠的覆蓋的區域。該區域表示無人車可以正常行使的區域。可通行空間可以讓車輛不再局限于車道內行駛,實現更多跨車道的超車功能等,把車開的更像老司機。
⑤交通信號燈(Traffic Light)
圖中使用綠框框出來的物體。交通信號燈狀態的感知能力對于城區行駛的無人駕駛汽車十分重要,這也是為什么百度Apollo 2.0實現“簡單路況自動駕駛”所必須開放的功能。
定位能力
相信大家都對視覺SLAM技術都有所耳聞,根據提前建好的地圖和實時的感知結果做匹配,獲取當前無人車的位置。視覺SLAM需要解決的最大問題在于地圖的容量過大,稍微大一點的區域,就對硬盤的容量要求很高。如何制作出足夠輕量化的地圖,成為SLAM技術商業化的關鍵。
Mobileye在已實現的道路經驗管理(Road Experience Management,REM)功能,能夠實現復雜路況的全局定位能力。如下圖。
看個視頻感受一下。
小結
目前百度Apollo 2.0僅開放了攝像機的交通信號燈檢測能力,障礙物的感知還是強烈依賴于激光雷達和毫米波雷達。相信在未來,文章中介紹的這些功能都會慢慢開放的。
攝像機是所有車載傳感器中,感知能力最強的,沒有之一。這也是為什么特斯拉采用了純視覺的感知方案,而堅持不使用激光雷達的原因(當然激光雷達貴也是一個因素)。
好了\(^o^)/~,這篇分享基本上讓大家了解了無人車所使用到的視覺感知技術。
如果您覺得有收獲,希望您能把文章分享給更多的人。這是我持續更新文章的最大動力。
感謝(?ω?)?!