普適性感知處理架構
智能駕駛汽車上已經越來越多的應用了計算密集型的計算機視覺算法,這就對汽車SoC提出了很多關于硬件加速的要求。這些硬件加速單元主要用于圖像信號處理、鏡頭畸變校正、密集光流、深度學習等。其中,基于視覺點云和激光點云深度學習由于其對環境的幾何重建能力、目標運動估計,在各種識別任務中越來越發揮著主導作用。因此,為了最大限度地提高處理硬件的性能,最好從處理階段的角度考慮嵌入式視覺,并在每個處理階段考慮共享處理策略。對于自動駕駛中的視覺處理架構而言,這種共享處理策略通常是指對多傳感輸入源進行多維算法同步并行的管道處理方式(即Pipelines設計處理)。
如上圖所示,總體上Pipelines的傳感數據處理包含預處理、像素/點云級處理、中間過度處理、核心目標處理、后處理等幾個階段。
在感知數據的“預處理階段”,涉及圖像視頻信息處理過程包含有基礎的ISP處理模塊,如白平衡、去噪、顏色校正和顏色空間轉換等。這類處理過程通常是像素級別的處理過程,因此需要在SOC芯片中設置專門的硬件引擎模塊進行處理。激光雷達數據預處理方面,包括從指定區域獲取點云、去除給定區域的點、點云下采樣,通過格柵化采樣和區域密度規律濾波,從而獲得可以被穩定觀察和篩選的激光點云。毫米波雷達的預處理則包含根據反射目標能量剔除空目標和無效目標,以保證環境感知的準確性,避免因干擾目標的出現而引起誤判。該階段在神經網絡階段主要是編碼階段出現。
“像素級/點云級處理階段”主要是有硬件加速器和GPU主導的前端精細化處理階段。這類處理算法相對固化(比如經典的前端處理算法:邊緣檢測、特征提取、描述算子、點云配準、視差估計等),其核心主要與硬件每秒運行次數相關。
“中間過度處理”是一種從像素級到目標級處理的過渡階段,主要涉及神經網絡CNN的解碼過程。該階段的主要處理器是DSP處理器,包括通過視覺里程表估計車輛運動,雙目視差圖進行場景深度信息估計和點云三維重建等過程。
“前融合處理階段”簡單的說就是進行目標聚類,以便為高層次推理提供依據。聚類的原理是對已經具備先驗知識的目標對象進行分類提取。可以應用一定的算法來抑制移動目標的重縮放,也可以應用目標重構的方式進行自學習。并且該過程需要將各類傳感器聚類的各種目標按照指定分配不同的置信度進行一定的目標融合。通常這類前融合算法會將相同類型的傳感器數據首先進行融合(如先分別做7V視覺前融合、5R毫米波雷達前融合、2-3激光雷達前融合)。融合過程給各傳感器本身識別能力參數標定為相同的值,而給予傳感器感知的場景方位數據分配不同的權重。比如對于本車道的前方目標,給前視攝像頭分配比側視攝像頭分配更高的權重。這類算法通常需要在ARM或DSP這類通用處理單元上進行有效處理。
“后融合處理階段”又稱為全局感知目標處理階段。即對于前端感知形成一定持久性、穩定性的大空間數據地圖進行后期優化。該優化過程包含Bundle adjustment、地圖構建、高級目標跟蹤和預測,也包括對探測的相同類目標的不同感知源根據其本身特性和感知目標的關注特性分配不同的權重,從而獲得系統對環境目標的最高級別推理。
非標準同構雙目攝像頭能否考慮深度估計
通常對于車載相機的多任務處理而言:包含深度估計、視覺里程計、語義分割、移動分割、物體檢測以及鏡頭污染檢測等六個主要任務。在智能駕駛場景中,移動目標的相關信息是非常重要的,一般采用連續幀或者光流來進行計算。此外,為了銜接后續規控任務,往往需要基于視覺里程計來實現檢測物體建圖。
這里我們重點講解下其中的深度估計方法。
在智駕汽車域中的深度信息估計中,大范圍采用的是利用前視同構雙目相機來進行深度估計的。其目的是通過深度估計來實現對前方目標的三維立體信息檢測。在最新的視覺感知算法中,還會進一步考慮對車輛側邊的目標進行距離信息估計,這時就需要考慮利用魚眼相機進行深度距離信息估計。
基于此,隨著智駕感知研究深度逐漸提升,很多廠家也在考慮采用魚眼攝像頭進行視差估計(甚至有些也在研究側視或前視大小眼相機的深度估計)。實際上,四個魚眼相機/普通側視同側相機雖然從基本的構造上可以被視作簡單同構相機(當然由于安裝位置的不同,需要排除簡單的基線影響)。但是其安裝位置上講,確實無法真正滿足對于標準雙目攝像頭的布置需求(可以說兩種非標準魚眼/側視相機的基線是非常巨大的,測出來的結果也不準確)。因此,環視/側視這類非標準相機圖像會增加對于三維信息重建任務的復雜度。
考慮魚眼圖像會增加三維重建任務的復雜度,比如對于多視角幾何、立體視覺和深度估計而言,大多數工作通常是假設其拍攝的場景是平面透視圖像的,并且傳統的立體幾何求解方式進一步限制了圖像中的極線必須是水平的。
此外,對于真實的全景魚眼相機而言,由于鏡頭拍攝的圖像存在大量的畸變,除了很難保證其寬動態范圍需求外,也會導致相機坐標模型不再適用于標準的投影模型,因此在對魚眼相機做立體幾何重建之前需要進行有效的圖像校準和畸變矯正。
當然,對于立體幾何重建而言,通常會考慮保持極線筆直和水平的立體要求(主要滿足立體幾何中的對極幾何要求),在此前提下,可能會利用類似最小化重采樣的方式對非平面圖像進行定制化畸變矯正。這類定制去畸變方法可能會導致有些邊緣的幾何圖像扭矩甚至深度畸變。此外,整個圖像重采樣過程中,噪聲函數也會被重采樣過程扭曲,這種扭曲將增加重投影誤差。
如上所述,采用不合理的校正算法可能會有比較大的副作用,比如視場角減小以及重采樣扭曲缺陷等。同一物體因為成像空間畸變破壞了表觀特征位移不變性,同樣會給下游感知算法帶來了巨大挑戰。
因此,是否能夠在深度學習中盡量繞開畸變矯正環節或者期間做適當優化,使得處理過程變得更加符合真實性呢?
這里,我們可以通過建立多任務學習模型來實現相應的深度估計。“多任務”顧名思義就是同時通過對場景建立多種模型估計,這種模型可以利用單目和多目攝像頭的各種優勢來彌補由于畸變矯正導致的圖像邊緣信息扭曲、失真等。同時,實現估計過程的并行處理Pipeline(包括環境目標的外觀、移動、深度估計等),期間也可以實現計算資源共享的問題。
此外,整個多視角圖像的深度估計過程也可以通過附加監督信號(如光流和目標運動),加強其估計的準確性。通過建立視差網絡可以將各個不同方位的攝像頭數據所采集的立體視頻數據集信息傳輸到真實世界的深度估計中。
基于此,我們對于魚眼/側視相機這類非標準同構雙目相機而言,其深度估計則可以參照如下圖的方式進行。
如上圖中所示,其基礎原理是將來自多個周圍視圖的信息合并到一起,以預測攝像頭之間的深度圖,具體地說:
1)使用一個圖像聯合網絡來處理所有相機拍攝的周邊視圖;
2)使用一個交叉視圖轉換器來有效地融合來自多個視圖的信息,并進行全局交互;
3) 使用多組攝像頭外參矩陣,結合采用其運動估計架構的稀疏矩陣所構造的深度圖來訓練識別模型,以實現對真實世界的尺度預測;
4)估計自車的整體運動狀態,并將其傳輸到每個視圖,以實現多視圖估計的一致性;
此外,也可以適當引入曲面法線來幫助進行預測深度,因為深度信息估計會受到曲面法線所確定的局部切平面約束(如下圖所示)。其中,深度到法線(depth-to-normal)關系將迫使最終預測遵循幾何約束。因此整個目標深度在法線投影后仍然遵循場景目標約束。
眾所周知,從圖像坐標到世界坐標的投影由于受到校準不良、平地假設、檢測變化、像素密度和相機模型誤差的影響很容易出錯。由于測量噪聲的失真取決于圖像中感興趣點的位置以及相機相對于路面的位置,因此解決這一問題變得更加復雜。如果目標在感興趣的點都沒有實際接觸地面,那么對于投影到世界坐標系的平地假設將存在重大錯誤。
比如對于多視角幾何、立體視覺和深度估計而言,大多數工作通常是假設其拍攝的場景是平面透視圖像的,并且傳統的立體幾何求解方式進一步限制了圖像中的極線必須是水平的。
大火的BEV需要解決哪些問題
這兩年智駕系統中的BEV相關算法發展讓深度學習應用于BEV空間轉換的方式逐漸成為主流。BEV感知的本質是對物理世界的三維重建,這個過程需要高效優質的檢測端和精確標定的攝像頭內外參數。基于數據輸入,整個BEV的感知研究通常是以視覺為中心的算法,用于從多個周圍攝像頭角度進行三維目標檢測或分割,BEV激光雷達描述了點云輸入的檢測或分割任務。
本文通過闡述了BEV感知原理,并對不同解決方案進行深入分析,描述行業中幾個BEV系統設計方法。從而針對BEV存在的如下核心問題進行了詳細的方案分析。
(a)如何通過從透視圖到BEV的視圖轉換來重建丟失的3D信息;(b)如何在BEV網格中獲取真值標注;(c)如何制定流水線,納入來自不同來源和視圖的特征;(d)當傳感器配置在不同場景中不一樣時,如何適應和推廣算法。
如圖是BEV攝像機的普通流水線(僅攝像機感知)。它包括三個部分,包括二維特征提取、視圖變換和三維解碼器。
然而,對于整個BEV設計中,目前還需要解決的問題還包括:
1) BEV模塊如何設計更精確的深度估計器;
搭載多傳感器生成的BEV主要解決不同的深度預測場景。首先就是標準的立體視差估計,并在時域范圍內進行運動預測;其次,將2D圖像到3D圖像設置對應的投影矩陣進行合理的變換。
這里為了保證更好的估計性能,引入大量的監督數據也顯得至關重要。監督數據可以作為很好的先驗數據來為整個變換做前置條件。
視圖變換是構建3D信息和編碼3D先驗假設的主要模塊。大體上,它可以分為兩個方面:一是利用2D特征構造深度信息并將2D特征“提升”到3D空間,即從2D特征預測深度信息;核心問題是如何從2D圖像中重建丟失的3D信息。
從2D到3D,有如下幾種常用的方法:
① 基于LSS的單目方法
這是根據2D特征預測每個像素的深度分布,而立體視覺方法沿著成本體構建的截頭錐體發散2D特征。從3D到2D的變換是基于單應矩陣的方法假定3D采樣點是一種稀疏矩陣,通過攝像機內外參數構建的投影矩陣將其投影到2D平面,從而拼接成圖。
② 基于純網絡的方法
與以往的算法相比,利用神經網絡進行二維BEV空間變換可以獲得更好的視覺效果。而其中,基于純網格的BEV方法可以使用MLP或transformer的方法進行隱式建模,從而構建整個3D空間到2D平面的投影矩陣。
2) 如何在新的融合機制中更好地對齊來自多個傳感器的特征表示;
BEV的傳感器融合算法最直接的設計是將攝像機和激光雷達的兩組特征分別連接起來。由于3D空間中的點云與2D域中的點云有精確的對應關系,這就需要保證激光雷達和攝像頭之間實現有效的軟同步和硬同步。
BEV融合階段則需要將如上幾種不同的傳感器端數據(例如攝像頭、激光雷達、全球導航衛星系統、里程計、高清地圖、CAN總線等)進行有效的數據融合。該階段需要在BEV空間設計了一種融合策略,同時從攝像機和激光雷達輸入執行3D檢測和跟蹤。特斯拉發布了系統流水線,用于檢測矢量空間(BEV)中的目標和車道線,用于L2高速公路導航和智能召喚。
BEV感知背后的要點是從攝像機和激光雷達輸入中學習魯棒性和可泛化的特征表示。BEV感知背后的核心問題需要從原始傳感器輸入進行深度估計的實質性創新,特別是對于攝像頭分支。由于BEV感知需要攝像機和激光雷達,高質量標注和2D和3D目標之間的精確對齊是此類基準點的兩個關鍵評估。這些新提出的基準通常具有高質量的標簽;場景多樣性和數據量也在很大程度上擴大。對于BEV感知任務,3D目標邊框標注和3D分割標注至關重要,高清地圖配置已成為主流趨勢。
3) 考慮BEV算法需要具備更強的魯棒性,算法應考慮與傳感器姿態變化或位置進行解耦,并同步實現在各種場景中實現更好的泛化能力;
BEV感知中要求在每個數據集中都需要針對性的進行訓練、數據、標注等。實際上BEV的整個網格參數是與攝像機參數關聯的,因此整個BEV的感知過程會對不同的傳感器設置(攝像機的內外參數如物理位置、重疊區域、FOV和畸變參數等)提出不同的需求。同時,如上這些因素都會造成良好性能從一個場景遷移到另一個領域的(極端)困難。因此,重要的方案是要確保BEV網絡與攝像機參數進行解耦,使得特征學習獨立于內外參數之外,以確保由于路面顛簸和攝像機不穩定導致的檢測跳變,不魯棒的問題。
4)BEV算法模塊如何以基礎模型為藍本進行性能提升;
BEV的感知模型目前已經相對固化,目前形成的基礎模型子塊已經在很多場景上已經得到了廣泛的運用。但是如何選擇適配性更好的基礎模型將會很深刻的影響整個自動駕駛控制的任務。同時,如果能夠在單BEV模型中構建多任務學習機制,也將會更多的影響認知領域對復雜場景的協作處理。
總結
智駕系統的感知常規處理方法中還有很多不被人們重點關注的部分,比如如何進行Pipelines的并行處理,如何考慮結合功能設計場景的將整個前端能力建設,其中包括識別、重構、重定位等重要步驟元素。此外,從成本和性能角度上講,還有一些適配于傳統感知架構的優化模型,比如如何應用已有的攝像頭做更深層次的感知探索(涉及利用非標準同構雙目左深度信息識別等)。這類優化傳感性能的算法實際還有很多。我們在開發過程中還可以做進一步的能力探索。
編輯:黃飛
評論
查看更多