自動駕駛中提到的“深度相機”是個啥?
[首發於智駕最前沿微信公眾號]自動駕駛的深度相機實現離不開各類傳感器的支持,其中純視覺方案成為很多技術方案的自動中提選擇,但由於攝像頭無法感知到環境深度信息,駕駛因此有部分技術方案提到了“深度相機”的個啥技術。深度相機,深度相機指的自動中提是那些除了拍顏色(RGB)以外,還能直接或間接給出“每個像素到攝像頭距離”信息的駕駛傳感器。簡單理解就是個啥,普通相機告訴你“這像素看起來是深度相機什麼顏色、有什麼紋理”,自動中提而深度相機還會告訴你“這點離車有多遠”。駕駛正因為在自動駕駛裏,個啥知道距離比知道顏色更重要,深度相機車輛要判斷碰不碰得上、自動中提要多早剎車、駕駛怎樣規規劃路徑等都要依賴深度信息或與其它傳感器融合後的三維感知結果。
深度相機常見的三種工作原理
深度相機的形式很多,常見的有基於兩個鏡頭的立體相機(stereo camera)、投影結構光或編碼光的相機、以及飛行時間(Time-of-Flight,ToF)相機。它們產生的深度表示通常是一張“深度圖”(depth map)或者稀疏的點雲,與激光雷達(LiDAR)產生的點雲在用途上有交集,但在原理、精度、成本和適用場景上都有明顯差別。
1)立體視覺(Stereo)
立體視覺的思路就是模仿人眼。把兩臺同類的彩色或黑白相機同框安裝,它們之間有一個固定的“基線”(baseline,兩個鏡頭中心之間的距離)。當看到同一場景時,圖像中的同一個物體點在兩幅圖像上的橫向位置會有差異,這個差異叫做視差(disparity)。通過已知的基線長度和攝像頭的內外參,視差可以反算成深度(距離)。
![]()
車載攝像頭 圖片源自網絡
立體法的關鍵在於“匹配”,算法要在左右圖像裏準確找到同一像素對應的點;匹配困難的地方包括無紋理表麵、重複紋理、強反光或遮擋區域等場景。立體視覺的優勢是可以用普通相機硬件實現,成本低、像素高,理論上分辨率和範圍可以通過更大基線、更高分辨率相機提升;但其劣勢就是對光照、紋理和計算資源敏感,長距離深度精度退化較快。
2)結構光與編碼光
這類方法在場景中投射已知的光學圖案(例如條紋、點陣或其他編碼圖形),然後用相機觀察圖案在物體表麵的變形,從變形情況反推出深度。結構光在如人體建模、人臉識別設備(早期的結構光人臉識別器)等近距離應用裏非常常見。其優點是近距離精度高,且因為係統自己提供“紋理”,因此對紋理依賴小。其缺點是對環境光敏感,在強陽光下投影圖案容易被淹沒,導致深度失敗。結構光僅適合短到中距離(幾厘米到幾米)的應用場景,若擴展到行車所需的幾十米就會遇到功率、可見性和安全性的問題。
3)飛行時間(ToF)
ToF相機通過測量光從傳感器發出、到物體反射、再返回傳感器所需的時間來算距離。常見實現有脈衝ToF和相位ToF兩類。脈衝ToF直接測量脈衝往返時間,原理簡單但要求高速電子。相位ToF發出連續調製的光信號,測量發射與接收信號之間的相位差來估算距離,這在短至中距離裏更常見。
ToF的優點是能直接得到每個像素的深度,實時性好、算法複雜度低於立體匹配;缺點包括多徑幹擾(光在場景中多次反射導致的誤讀)、對強光敏感(陽光含大量紅外會提升噪聲)、以及範圍和分辨率受限。工業級ToF可以做到幾十米的量級,但在車用場景裏,要兼顧分辨率、幀率和抗日照能力仍然需要工程折中。
除了這三種之外,還有一些混合方案和更靠近LiDAR的固態“閃光式”測距設備。但單純依靠單目RGB相機做“深度估計”的方法(基於學習的單目深度估計)嚴格來說不是深度相機,而是用算法從單張圖像推斷深度的技術;這樣的深度通常是相對的、帶有尺度不確定性或需要額外約束校準,隻能將它當作補充而不是可信賴的主深度源。
深度相機與普通相機的關鍵區別
普通相機輸出的是亮度和顏色信息,也就是每個像素的RGB值;深度相機除了這些(有時深度相機本身也能輸出RGB)之外,還輸出與攝像頭之間的距離信息。深度數據直接給出三維幾何信息,使得後續的檢測、跟蹤、避障和定位變得更直接;普通相機則需要依賴視覺算法(比如通過特征匹配、結構從運動或單目深度估計)來間接獲得距離。
![]()
圖片源自網絡
普通相機的設計追求高分辨率、寬動態範圍和低噪聲的圖像采集,傳感器以記錄光子數為主。深度相機的硬件則要額外設計光源(結構光、ToF)或雙攝同步與高精度時鍾(ToF)以及在某些係統中更嚴格的機械安裝精度(立體需要精確的基線和標定)。這意味著深度相機往往在功耗、複雜度和成本上高於單純的普通相機,雖然基於兩個普通相機的立體係統可以在成本上有優勢,但對計算和標定提出了更高要求。
深度圖通常也是單通道的浮點或整數距離數據,需要與相機內參轉換成三維點雲或用於後續的感知模塊。普通相機的數據更適合直接送入目標檢測、語義分割等視覺網絡。深度數據和RGB數據各有長處,RGB擅長識別類別和外觀,深度擅長提供幾何信息,因此在自動駕駛係統裏,常見做法是把兩者融合,用RGB做識別,用深度做定位與幾何推理。
此外,立體視覺在暗光或無紋理時會失效;結構光在強光下會被淹沒;ToF在直射陽光或存在強紅外光源時噪聲會上升。普通相機在寬動態場景下也有挑戰,但可以通過曝光控製、HDR等手段改善。總之,不同傳感器在不同環境下各有盲區,這正是為什麼自動駕駛係統要用相機、雷達、激光雷達等多傳感器融合的原因。
深度相機的缺點有哪些
由於深度相機能讓機器直接看到三維世界,很多人感覺其可以直接替代激光雷達,但事實並非如此。深度相機的確能帶來如立體感知、精準測距、三維建模等很多好處,但它也有不少短板,尤其是在車載這種複雜場景下,更是要各種“妥協”和“取舍”。
![]()
圖片源自網絡
先說最典型的一個問題,那就是距離和精度的矛盾。立體視覺靠的是“視差”原理,簡單來說就是兩個攝像頭看到同一個物體的角度差來計算深度。問題是,距離越遠,角度差就越小,計算的誤差就越明顯。你想要讓遠處也測得準,就得拉大兩個攝像頭之間的距離,或者提高圖像分辨率。但拉太開安裝位置受限,還容易被遮擋;分辨率太高又增加算力負擔和成本。ToF(飛行時間)相機在近距離表現不錯,但想讓它測得遠、看得清,就得用更複雜的光源和接收器,功耗、熱量、成本全都往上飆。至於結構光,在汽車這種強光、遠距離的環境裏幾乎“吃不開”,更多是短距應用。
還有就是環境光和物體表麵的問題。不管是哪種原理的深度相機,本質上都要依賴光線的反射。現實世界裏的光照條件可比實驗室複雜多了。陽光太強會把信號淹沒,雪地的反光能“晃瞎”傳感器,金屬表麵、玻璃、濕滑路麵這些都能讓測量結果亂成一團。ToF可能會被多次反射的光幹擾,導致算出錯誤的距離;結構光在透明或鏡麵物體上會出現形變;立體相機在一大片沒有紋理的區域,如在光滑車門或者天窗上,根本找不到對應點。更別提下雨、下雪、起霧、夜間燈光這些情況了,都是深度相機的“敵人”。
深度圖的分辨率也是一個老大難問題。很多車用深度相機輸出的深度圖其實挺“糙”的,點比較稀疏,還容易帶噪聲。相比清晰的RGB圖像,深度圖往往細節不足,這在識別細小物體或複雜邊緣時會出麻煩。雖然可以用算法補全或者把深度和RGB結合來提升效果,但那也意味著要消耗更多算力。
立體視覺需要大量計算來匹配圖像,尤其是高分辨率、高幀率的時候,對處理器的壓力特別大。ToF雖然直接輸出深度信息,但為了讓結果更幹淨,還要做多頻信號解碼、噪聲過濾、多路徑校正,這些都比較耗費資源。車載係統的算力和功耗都有限,所以必須在精度、幀率和實時性之間找平衡。
還有一個很現實的問題,那就是標定和穩定性。深度相機其實特別“嬌氣”,尤其是立體視覺那種。兩個攝像頭的角度、位置稍微有點偏差,測出來的深度就會跑偏。汽車在行駛過程中會有震動、溫度變化、甚至輕微碰撞,這些都會影響標定結果。ToF相機也怕溫漂,需要做溫度補償,否則數據會飄。為了保持準確,就得設計堅固的支架、加上定期標定,甚至用算法實時校準。
此外,深度相機還有個天然的限製,它隻能“看見”眼前的東西。被擋住的物體,它完全無能為力。比如車旁邊的低矮障礙物、角落裏的行人,隻要被遮擋了,深度相機就測不到,這也是為什麼自動駕駛技術上從來不會隻靠深度相機。它更像是輔助感知的一環,用來填補其他傳感器的空白。
理論上,立體相機用兩顆普通鏡頭就能實現深度感知,看起來挺劃算。但要真正上車,事情就變複雜了。你得考慮它的防塵、防水、抗震,還得通過車規認證、EMC測試、熱設計驗證……這些都要花錢。而且深度相機出來的數據量大,對後端處理單元要求也高,算力芯片、數據傳輸、冗餘設計全都得配齊。ToF和結構光更貴,還涉及主動光源、安全認證等問題。要在整車上集成好,不僅費錢,還費腦。
所以說,深度相機確實有它的厲害之處,但也沒那麼“完美”。它能提供直觀的空間信息,是視覺體係的重要補充,但想讓它單獨承擔自動駕駛的感知任務,還遠遠不夠。真正成熟的方案,都是多傳感器融合,讓深度相機、雷達、激光雷達、普通相機各司其職,互相補短。隻有這樣,車輛才能在複雜環境裏既“看得清”,又“看得穩”。
什麼時候用深度相機,怎樣組合其它傳感器
在自動駕駛係統設計中,選擇深度相機還是其他傳感器,取決於任務、場景和成本。近距離低速場景(比如自動泊車、駕駛員監控、車內交互)非常適合ToF或結構光,因為這些場景對短距精度要求高,環境相對可控。需要高分辨率幾何信息以做精細定位或障礙物邊界判斷時,立體視覺搭配高分辨率相機是個劃算的選擇,但必須配合強大的視差計算和可靠的在線校準。
![]()
圖片源自網絡
對於高速公路或遠距感知,激光雷達和毫米波雷達仍然是主力。激光雷達的遠距分辨率和精度,以及毫米波雷達對惡劣天氣的魯棒性,都是光學深度相機難以完全替代的。此時深度相機作為幾何感知的補充,把RGB相機、深度相機、雷達與激光雷達的數據融合在一起,取各自的強項來覆蓋彼此的弱點。比如用深度圖快速篩選近距障礙物,用RGB做語義識別,用雷達做速度估計和惡劣天氣下的穩定探測,用激光雷達做遠距精確定位。深度相機還能降低某些計算負擔:在已知深度的區域,很多視覺算法可以避開昂貴的三維重建步驟,直接在深度空間做決策。
當然,還有很多實際細節要考慮,傳感器放置位置與視場覆蓋、傳感器同步與時間戳精度、數據帶寬與壓縮策略、在線去噪與異常檢測、在不同光照/天氣下的退化檢測與降級策略、以及冗餘與故障切換機製。這些都是把深度相機從實驗室帶到車規產品化時必須解決的問題。



