技術(shù)分享 | AVM合成數(shù)據(jù)仿真驗證方案
隨著自動駕駛技術(shù)的快速發(fā)展,仿真軟件在開發(fā)過程中扮演著越來越重要的角色。仿真?zhèn)鞲衅髋c環(huán)境不僅能夠加速算法驗證,還能在安全可控的條件下進行復(fù)雜場景的重復(fù)測試。
本文將分享如何利用自動駕駛仿真軟件配置仿真?zhèn)鞲衅髋c搭建仿真環(huán)境,并對腳本進行修改,優(yōu)化和驗證4個魚眼相機生成AVM(Around View Monitor)合成數(shù)據(jù)的流程。通過這一過程,一同深入體驗仿真軟件的應(yīng)用潛力!
一、流程概述
AVM是一種通過多相機實現(xiàn)車輛周圍環(huán)境的實時監(jiān)控和顯示的系統(tǒng),廣泛應(yīng)用于自動駕駛和高級駕駛輔助系統(tǒng)(ADAS)的環(huán)境感知中。本文基于仿真軟件與腳本生成AVM圖像的流程如下所示:
圖1:基于aiSim構(gòu)建AVM圖像流程
首先,在Unreal Engine中配置標定投影參數(shù)所需的地圖,并在仿真器中為車輛部署4個方向的魚眼相機;
其次,基于相機內(nèi)參進行去畸變,并記錄求解投影矩陣所需的關(guān)鍵參考值,例如AVM畫幅尺寸、參考點的相對坐標、參考區(qū)域的大小與位置、車輛與參考區(qū)域的距離等;
隨后,在完成了角點提取預(yù)處理的標定圖像中快速選取參考點,生成單方向的BEV視圖,重復(fù)4次完成標定去畸變;
后文將對每個流程進行具體描述。
二、仿真?zhèn)鞲衅髋c環(huán)境配置
對于AVM功能而言,通常需要配備4個及以上的大FOV相機以拍攝車輛周圍的圖像,在此基礎(chǔ)上還可配備雷達以更好地獲取車輛周圍的障礙物信息。
圖2:aiSim相機傳感器障礙物真值輸出
由于本文所使用仿真軟件的相機傳感器可以直接輸出識別對象(車輛、行人等)的2D、3D邊界框真值,所以只需配置4個方向的魚眼相機即可滿足整體需求:
(1)前置魚眼相機:安裝在前方車標附近,約15°俯視角;
(2)后置魚眼相機:安裝在后備箱附近,約25°俯視角;
(3)左、右側(cè)魚眼相機:分別安裝在左右后視鏡下方,約40°俯視角與相對車縱軸約100°的偏航角。
圖3:環(huán)視OpenCV魚眼相機傳感器配置
除了傳感器的配置,考慮到腳本是通過選取地面點,求解相機到地面的投影矩陣,并轉(zhuǎn)換生成BEV視圖進行組合,所以還需要構(gòu)建一張特征明顯、易于辨認標定效果的地圖。
本文所使用的仿真軟件支持在Unreal Engine中進行地圖編輯與導(dǎo)出,并帶有一定數(shù)量的3D資產(chǎn)庫,因此可以基于一張基礎(chǔ)室內(nèi)地圖,布置一定數(shù)量的正方形黑白標定板,根據(jù)需要搭建一個標定地圖:
圖4:基于aiSim插件的Unreal Engine地圖編輯
首先,在Unreal Engine中打開項目,并進入室內(nèi)合成地圖;
然后,從3D資產(chǎn)庫中選擇100cm×100cm×5cm的標定板靜態(tài)網(wǎng)格體,拖放到地圖中;
隨后,通過直接拖動模型上的變換工具或者修改側(cè)邊欄中的變換屬性框調(diào)整標定板的位置與姿態(tài);
進而,配置標定板的材質(zhì),以黑色、白色的交替順序鋪展標定板;
最終形成一個長方形的標定區(qū)域。
圖5:編輯完成后的地圖效果參考
批量鋪展的過程可以拆分為對2×2的標定板組合實施橫向與縱向陣列,完成后的地圖如圖所示,整體是一個6m×11m的矩形區(qū)域,車輛放置在中間2m×5m的矩形區(qū)域中。
三、圖像處理與AVM合成驗證集
如前文所述,本文使用的AVM腳本是基于車輛四周,位于相鄰兩個相機重疊視野的標定物,通過選取參考投影區(qū)域實現(xiàn)魚眼相機到BEV的轉(zhuǎn)化,以前視魚眼相機為例:
圖6:投影區(qū)域及BEV轉(zhuǎn)化示意圖
首先,由于是仿真?zhèn)鞲衅鞯臉藴蔕penCV魚眼相機模型,焦距、中心像素位置、畸變參數(shù)等內(nèi)參均已知,可直接使用OpenCV的去畸變函數(shù)實現(xiàn)去畸變,如圖6的(c)到(d)所示;
其次,設(shè)定圖6(a)與(b)所示關(guān)鍵參數(shù),確定圖像上的點對應(yīng)的真實世界位置,進而計算尺度:
(1)AVM視野總寬total_width = 2 × shift_width + 6 × board_size;
(2)AVM視野總長total_height = 2 × shift_height + 11 × board_size;
(3)board_size為標定板邊長,此處為100,單位cm;
(4)shift_width與shift_height為視野延伸距離,單位cm;
(5)左上角投影點projection_point_0:(shift_width + 100, shift_height),以此類推右上角、左下角、右下角投影點坐標,形成投影區(qū)域;
(6)inner_height與inner_width為投影區(qū)域相對車輛的橫向、縱向距離,單位cm,由此可以推算出自車所處區(qū)域;
而后,對去畸變相機圖像追加Shi-Tomasi角點提取處理,并增加半自動采點的模式切換,自動選取鼠標點擊像素位置周圍歐式距離最小的角點,保障準確度的同時提升效率;
最后,如圖6(d)選取4個角點,形成與(b)對應(yīng)的參考投影區(qū)域,輸出的BEV視圖如圖6(e)所示。
圖7:環(huán)視BEV合成AVM示例
以此類推可以得到4個方向的BEV視圖及對應(yīng)的投影參數(shù),結(jié)合車輛圖層作為覆蓋,即可生成對應(yīng)傳感器布置下的二維AVM合成圖像,如圖7所示,其中每個像素分辨率為1cm2。
圖8:傳感器外參優(yōu)化示例
通過仿真軟件,一方面可以在控制算法不變的情況下尋找出更優(yōu)的傳感器外參布局,另一方面也可以在控制傳感器不變的情況下在多種不同場景驗證,進而迭代優(yōu)化AVM算法的表現(xiàn)。結(jié)合相機傳感器自帶的標注信息,后續(xù)也可以進行包括障礙物識別在內(nèi)的更多功能驗證。
圖9:不同場景下的AVM合成數(shù)據(jù)
四、總結(jié)與展望
本文介紹了基于仿真軟件aiSim生成AVM合成數(shù)據(jù)的完整流程,包括傳感器與地圖的配置、圖像處理與BEV視圖生成以及最終的AVM合成驗證。
不難看出,仿真軟件的高效性與靈活性保障了在安全可控的環(huán)境中快速驗證算法性能的可行性,并可以通過多場景測試與參數(shù)優(yōu)化改進算法,最終提升其綜合表現(xiàn)。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。