
DYNA4為乘用車和商用車提供各種復雜的仿真模型,包括車輛動力學模型、發動機模型、動力系統模型、電機模型、交通環境模型和ADAS物理傳感器模型等。由于攝像頭需要同時滿足視場更廣、更近的成像距離、體積更小以及成本更低等多方面要求,鏡頭設計過程中往往會主動接受一定程度的畸變。較大的畸變有助于實現更大的視場角(FOV)、更緊湊的結構、更高的透光效率以及更低的制造成本。攝像頭畸變模型用于描述真實鏡頭成像與理想針孔成像模型之間的偏差,其建模精度將直接決定像素坐標與空間方向之間映射關系的準確性。畸變模型不準確將引入系統性幾何誤差,并對相機標定、多目標融合以及下游感知與定位算法產生基礎性影響,尤其在廣角和魚眼攝像頭中尤為關鍵。
以下將基于DYNA4實現攝像頭畸變應用進行系統介紹。
01攝像頭畸變的種類
攝像頭的畸變是鏡頭設計者主動接受的一種權衡選擇,因為人們想讓它“看得更廣、更近、更小、更便宜”。畸變并非設計缺陷,而是光學系統在視野、體積和成本之間做出的工程取舍,其影響通過畸變模型在軟件中進行描述和補償。

圖1:攝像頭畸變示意
現實中快速評估畸變程度,可以通過查看圖片邊緣的彎曲程度、以及尋找圖片中直線物體(如建筑邊框、門框、地磚縫、路沿、車道線、護欄等)的彎曲來近似評估。表達攝像頭畸變有很多成熟的方法,包括參數化畸變模型和查表式畸變模型。參數化畸變模型具有參數少、物理意義明確和易于標定的優點,適合大多數標準鏡頭;而查表式畸變模型通過直接存儲像素映射關系,能夠準確描述復雜和非對稱畸變,但代價是存儲開銷大、外延性差以及工程復用性差等因素。下面是學術和工程界常用的一些畸變模型:
>
OpenCV normal
>
Kannala-Brandt(KB)
>
Scaramuzza
>
Polynomial 4th Degree Distortion
>
Modified Division Distortion
對于視場角小于約120°的標準攝像頭系統,采用基于針孔模型的OpenCV normal畸變模型,可在保證物理可解釋性的同時獲得穩定且成熟的工程效果。對于視場角在120°~180°范圍內、畸變以徑向對稱為主的車載魚眼攝像頭,OpenCV fisheye是不錯的選擇,Kannala-Brandt畸變模型在OpenCV中以fisheye模型的形式進行了工程化實現,并在算法表達和數值穩定性方面進行了優化,FOV視角延展到大于180°廣角以外。對于存在明顯非對稱與高階殘余畸變的非標準廣角鏡頭,Scaramuzza(OCamCalib)模型因其高度通用的幾何描述能力更加適合。對于僅針對特定鏡頭進行的離線高精度擬合,而不太在乎其物理可解釋性能力的,可以使用Polynomial高階多項式畸變模型或Modified Division Distortion模型作為補充方案。
其中,OpenCV normal和KB(OpenCV fisheye)均屬于OpenCV范疇,有官方網頁且Github上有開源代碼更新;Scaramuzza自帶辨識代碼的工箱箱,從使用角度來說是較為方便的。在量產項目和多系統集成場景中,通常會優先考慮生態成熟度、算法兼容性和長期可維護性,例如選擇OpenCV normal或Kannala-Brandt等畸變模型。
02攝像頭的參數以及參數獲取手段
攝像頭通常有內參和外參兩組數據。攝像頭內參用于描述鏡頭和成像系統的幾何特性,定義空間光線到像素坐標的投影關系;外參用于描述攝像頭相對于車輛或其他傳感器的空間位置和姿態,兩者共同決定了視覺信息在系統中的幾何一致性,是多傳感器融合和高精度感知的基礎。
圖2中紅色方塊代表攝像頭的空間位置使用,棋盤格為拍攝對象(棋盤格黑白等間距)。圖中棋盤上的綠色點在大地坐標原點,攝像頭相對于棋盤格,可以通過平移向量t和旋轉矩陣R來表達。當空間六坐標(位置姿態)固定后,攝像頭在空間角度便固定了。
圖3為攝像頭的視角,即拍攝出來的照片。可以發現,雖然棋盤格黑白等間距且線性,但是投影到照片里并不是等距離變化,甚至直線變為曲線。從棋盤格里各個交點,映射到照片里各交點坐標的這一個過程,便是擬合攝像頭的內參畸變的重要步驟。


圖2(上):攝像頭的空間位置第3視角
圖3(下):攝像頭拍攝視角內容
通常典型內參包括:
>
焦距:fx ,fy
>
主點:cx ,cy
>
畸變參數:
徑向畸變(k1, k2, …)
切向畸變(p1, p2)
或魚眼/多項式模型參數
圖3中主點,接近圖片的正中央位置,為光軸與成像平面的交點(投影中心落點),可以看出示例中的攝像頭是偏右側的,同時該主點通常近似為畸變的中心點。相對外參,內參是攝像頭的固有屬性,對于不具備變焦的攝像頭,其內參基本是固定不變的。簡而言之,內參定義了空間光線如何被投影到圖像平面上的像素坐標。對比如下:
內參 | 外參 | |
描述對象 | 攝像頭自身 | 攝像頭在空間中的位置 |
是否與安裝相關 | 否 | 是 |
是否與分辨率相關 | 是 | 否 |
是否與鏡頭相關 | 強相關 | 否 |
是否需要標定 | 需要 | 需要 |
對于內外參的獲取,通常可以使用棋盤格拍照然后通過辨識工具來辨識,例如:
OpenCV:
https://docs.opencv.org/4.x/db/d58/group__calib3d__fisheye.html
Scaramuzza:
https://sites.google.com/site/scarabotix/ocamcalib-omnidirectional-camera-calibration-toolbox-for-matlab提供的函數或工具箱。
其中棋盤格可以采用工具里推薦的黑白相間棋盤格,也可以是自定義的其它棋盤格布置形式,還可以從供應商處直接獲取。由于外參是空間尺寸,所以也可以直接用機械測量距離和角度獲取的。維克多汽車同時也提供相關項目服務。
03DYNA4攝像頭傳感器模型參數填寫
DYNA4支持不同的傳感器畸變模型。在DYNA4中,實現攝像頭仿真的步驟如圖4。首先打開車輛的動畫配置文件.dapx并進行編輯,從左側Animation Object Database里將Camera拉入Animation Project,按需將Camera固定在空間某一固定位置,也可以放置在車輛里面。然后如紅色2處,選擇對應的畸變模型(圖4中是KB模型的參數)。不同的畸變模型有不同的參數,如紅色3處為模型內參。
攝像頭的安裝位置,即攝像頭外參,在紅色4處填寫,包含平移和旋轉兩大部分。這里注意攝像頭坐標的定義,DYNA4里攝像頭坐標滿足右手定則,攝像頭正前方是X正,正上方是Z正。根據不同畸變模型里坐標定義的差異進行坐標的角度轉換即可。平移數值分別為相對于整車或路側的相對的平移安裝距離(取決于攝像頭是固定在車上還是在路側安裝的RSU)。
除了攝像頭內外參數,還有常規參數,例如水平垂直分辨率、ISO、光圈、快門時間等。填寫完畢后,便實現了攝像頭在DYNA4里的設置。

圖4:DYNA4攝像頭參數設置
04DYNA4攝像頭傳感器標定的復現以及棋盤格的制作
在攝像頭參數配置完畢之后,可以對軟件仿真的效果與實際標定的結果進行對比。首先需在DYNA4里制作實際過程中使用的棋盤格,如圖5采用的黑白交錯、等間距的棋盤,棋盤上也可以寫字或者其它標記以便于后續校對,然后填入攝像頭的外參來確定攝像頭安裝位置。圖5是OpenCV建議的10*7等間距的棋盤格,這里加入了一些其他文字。圖6是自定義的棋盤格。在DYNA4中實現上述功能較為方便。在DYNA4的動畫模塊中,可以通過棋盤格圖片貼圖的方式,將棋盤格PNG或JPG圖片直接貼附在平面對象上,其整體尺寸可通過設置貼圖平面的長和寬進行調整。


圖5:常用的棋盤格
圖6:自定義棋盤格舉例
05不同畸變模型在DYNA4中的應用效果
由于篇幅有限,選取Scaramuzza、KB、OpenCV normal/pinhole模型在DYNA4里的應用為例。
5.1
Scaramuzza的應用效果
圖7是Scaramuzza提供的工具箱中的示例棋盤格圖像。Scaramuzza對大廣角畸變的攝像頭有較好的辨識效果。圖片展示了DYNA4中基于Scaramuzza攝像頭模型的棋盤格仿真結果與實際標定過程中棋盤格圖像的對比。
圖7a是在DYNA4里填入內外參,然后配置對應的棋盤格,仿真得出的對應棋盤格照片。圖7b為實際標定過程攝像頭在某一角度下拍出來的棋盤格照片。圖7c是實際標定的照片與DYNA4仿真的圖片疊加顯示。具體方法是在DYNA4攝像頭上加上濾鏡,濾鏡的圖片為對應的實際圖片,這樣便可以方便進行比對。圖7d-7f是在標定過程中,其他拍攝角度下的DYNA4仿真圖片與實際照片的對比。


圖7a
圖7b


圖7c
圖7d


圖7e
圖7f
上下滑動閱讀更多內容
5.2
Kannala-Brandt模型/OpenCV fisheye的應用效果
圖8是某客戶采用Kannala-Brandt模型的仿真對比效果。對于徑向對稱魚眼,KB模型非常精準,工程落地成熟。KB模型基于OpenCV fisheye公式,經過相關處理后適合大于180°廣角的應用,與OpenCV fisheye的參數相同。這里展示的是某一典型車輛前、后、左、右四個環視魚眼攝像頭的仿真結果與真實效果對比。圖8a是在DYNA4里填入內外參,然后配置對應的棋盤格,仿真得出的對應棋盤格照片。圖8b為前魚眼攝像頭的實拍照片。圖8c是實際的照片與DYNA4仿真的圖片疊加顯示。圖8d-8f分別是DYNA4仿真的左側、后方、右側魚眼攝像頭仿真圖片與實車拍攝的對比。


圖8a
圖8b


圖8c
圖8d


圖8e
圖8f
上下滑動閱讀更多內容
5.3
OpenCV Normal的應用效果
OpenCV normal對中小畸變非常穩定,尤其在小廣角的前后視攝像頭上應用較多,有時亦叫Pinhole模型。圖9是Github OpenCV工具里提供的棋盤格照片,通過辨識后,在DYNA4里OpenCV攝像頭棋盤格仿真與實際過程的棋盤格的對比的圖片。圖9a是在DYNA4里填入內外參,配置對應的棋盤格,仿真得出的對應棋盤格照片。圖9b是在實際標定過程中,在某一角度下拍出來的棋盤格照片。圖9c是實際標定的照片與DYNA4仿真的圖片疊加顯示。圖9d-9f是在標定過程中,其他拍攝角度下的DYNA4仿真圖片與實際攝像頭的對比。


圖9a
圖9b


圖9c
圖9d


圖9e
圖9f
-
仿真
+關注
關注
54文章
4488瀏覽量
138322 -
攝像頭
+關注
關注
61文章
5095瀏覽量
103169 -
光學系統
+關注
關注
5文章
265瀏覽量
19091
發布評論請先 登錄
回收攝像頭ic 收購攝像頭ic
回收手機攝像頭 收購手機攝像頭
【FPGA DEMO】Lab 4:攝像頭HDMI顯示(高速--HDMI&攝像頭)
三星新推出屏下攝像頭實現“透明攝像頭”技術
車輛動力學虛擬仿真環境平臺DYNA4的新特性介紹
【文章轉載】車輛動力學及場景建模軟件DYNA4新特性介紹
DYNA4集成SUMO在CANoe中實現V2X三維場景
聊聊車輛仿真軟件之DYNA4——Overview
Vector DYNA4 R10新特性介紹
DYNA4 R10新特性
基于DYNA4實現攝像頭畸變應用
評論