博客專欄

        EEPW首頁 > 博客 > 技術分享 | AVM合成數據仿真驗證方案

        技術分享 | AVM合成數據仿真驗證方案

        發布人:康謀自動駕駛 時間:2025-03-18 來源:工程師 發布文章

        隨著自動駕駛技術的快速發展,仿真軟件在開發過程中扮演著越來越重要的角色。仿真傳感器與環境不僅能夠加速算法驗證,還能在安全可控的條件下進行復雜場景的重復測試。

        本文將分享如何利用自動駕駛仿真軟件配置仿真傳感器與搭建仿真環境,并對腳本進行修改,優化和驗證4個魚眼相機生成AVM(Around View Monitor)合成數據的流程。通過這一過程,一同深入體驗仿真軟件的應用潛力!

        一、流程概述

        AVM是一種通過多相機實現車輛周圍環境的實時監控和顯示的系統,廣泛應用于自動駕駛和高級駕駛輔助系統(ADAS)的環境感知中。本文基于仿真軟件與腳本生成AVM圖像的流程如下所示:

        圖片1.png

        圖1:基于aiSim構建AVM圖像流程

        首先,在Unreal Engine中配置標定投影參數所需的地圖,并在仿真器中為車輛部署4個方向的魚眼相機;

        其次,基于相機內參進行去畸變,并記錄求解投影矩陣所需的關鍵參考值,例如AVM畫幅尺寸、參考點的相對坐標、參考區域的大小與位置、車輛與參考區域的距離等;

        隨后,在完成了角點提取預處理的標定圖像中快速選取參考點,生成單方向的BEV視圖,重復4次完成標定去畸變

        后文將對每個流程進行具體描述。

        二、仿真傳感器與環境配置

        對于AVM功能而言,通常需要配備4個及以上的大FOV相機以拍攝車輛周圍的圖像,在此基礎上還可配備雷達以更好地獲取車輛周圍的障礙物信息。

        圖片2.png

        圖2:aiSim相機傳感器障礙物真值輸出

        由于本文所使用仿真軟件的相機傳感器可以直接輸出識別對象(車輛、行人等)的2D、3D邊界框真值,所以只需配置4個方向的魚眼相機即可滿足整體需求:

        (1)前置魚眼相機:安裝在前方車標附近,約15°俯視角;

        (2)后置魚眼相機:安裝在后備箱附近,約25°俯視角;

        (3)左、右側魚眼相機:分別安裝在左右后視鏡下方,約40°俯視角與相對車縱軸約100°的偏航角。

        圖片3.png

        圖3:環視OpenCV魚眼相機傳感器配置

        除了傳感器的配置,考慮到腳本是通過選取地面點,求解相機到地面的投影矩陣,并轉換生成BEV視圖進行組合,所以還需要構建一張特征明顯、易于辨認標定效果的地圖。

        本文所使用的仿真軟件支持在Unreal Engine中進行地圖編輯與導出,并帶有一定數量的3D資產庫,因此可以基于一張基礎室內地圖,布置一定數量的正方形黑白標定板,根據需要搭建一個標定地圖:

        圖片4.png

        圖4:基于aiSim插件的Unreal Engine地圖編輯

        首先,在Unreal Engine中打開項目,并進入室內合成地圖;

        然后,從3D資產庫中選擇100cm×100cm×5cm的標定板靜態網格體,拖放到地圖中;

        隨后,通過直接拖動模型上的變換工具或者修改側邊欄中的變換屬性框調整標定板的位置與姿態;

        進而,配置標定板的材質,以黑色、白色的交替順序鋪展標定板;

        最終形成一個長方形的標定區域。

        圖片5.png

        圖5:編輯完成后的地圖效果參考

        批量鋪展的過程可以拆分為對2×2的標定板組合實施橫向與縱向陣列,完成后的地圖如圖所示,整體是一個6m×11m的矩形區域,車輛放置在中間2m×5m的矩形區域中。

        三、圖像處理與AVM合成驗證集

        如前文所述,本文使用的AVM腳本是基于車輛四周,位于相鄰兩個相機重疊視野的標定物,通過選取參考投影區域實現魚眼相機到BEV的轉化,以前視魚眼相機為例:

        圖片6.png

        圖6:投影區域及BEV轉化示意圖


        首先,由于是仿真傳感器的標準OpenCV魚眼相機模型,焦距、中心像素位置、畸變參數等內參均已知,可直接使用OpenCV的去畸變函數實現去畸變,如圖6的(c)到(d)所示;

        其次,設定圖6(a)與(b)所示關鍵參數,確定圖像上的點對應的真實世界位置,進而計算尺度:

        (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),以此類推右上角、左下角、右下角投影點坐標,形成投影區域;

        (6)inner_height與inner_width為投影區域相對車輛的橫向、縱向距離,單位cm,由此可以推算出自車所處區域;

        而后,對去畸變相機圖像追加Shi-Tomasi角點提取處理,并增加半自動采點的模式切換,自動選取鼠標點擊像素位置周圍歐式距離最小的角點,保障準確度的同時提升效率;

        最后,如圖6(d)選取4個角點,形成與(b)對應的參考投影區域,輸出的BEV視圖如圖6(e)所示。

        圖片7.png

        圖7:環視BEV合成AVM示例

        以此類推可以得到4個方向的BEV視圖及對應的投影參數,結合車輛圖層作為覆蓋,即可生成對應傳感器布置下的二維AVM合成圖像,如圖7所示,其中每個像素分辨率為1cm2。

        圖片8.png

        圖8:傳感器外參優化示例

        通過仿真軟件,一方面可以在控制算法不變的情況下尋找出更優的傳感器外參布局,另一方面也可以在控制傳感器不變的情況下在多種不同場景驗證,進而迭代優化AVM算法的表現。結合相機傳感器自帶的標注信息,后續也可以進行包括障礙物識別在內的更多功能驗證。

        圖片9.png

        圖9:不同場景下的AVM合成數據

        四、總結與展望

        本文介紹了基于仿真軟件aiSim生成AVM合成數據的完整流程,包括傳感器與地圖的配置、圖像處理與BEV視圖生成以及最終的AVM合成驗證。

        不難看出,仿真軟件的高效性與靈活性保障了在安全可控的環境中快速驗證算法性能的可行性,并可以通過多場景測試與參數優化改進算法,最終提升其綜合表現。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。




        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 怀来县| 锡林郭勒盟| 华容县| 阜新| 神池县| 西城区| 监利县| 淳化县| 祁门县| 班玛县| 策勒县| 礼泉县| 尤溪县| 孝感市| 新安县| 余干县| 孝昌县| 拜泉县| 通榆县| 霍林郭勒市| 奉新县| 抚顺县| 崇礼县| 炎陵县| 报价| 泸定县| 文安县| 石屏县| 鄂州市| 昂仁县| 偃师市| 柯坪县| 达拉特旗| 丹棱县| 鲜城| 营口市| 高密市| 西昌市| 惠东县| 郁南县| 南阳市|