?

基于CARLA的仿真數據集生成框架研究

2023-12-22 13:15王宇唯黃宏成
傳動技術 2023年4期
關鍵詞:視場激光雷達反射率

王宇唯 黃宏成

(上海交通大學機械與動力工程學院,上海 200240)

1 仿真數據集研究現狀

3D檢測是自動駕駛技術的基礎,隨著技術的發展,3D檢測也從最初的基于圖像和基于點云的方法發展到了基于融合的方法[1]。但隨著技術的快速發展,業界也對自動駕駛數據集提出的更高的要求,如要求激光雷達數據要有更高的線數,要求數據集包含多模態數據等。這時,傳統多模態數據集時效性差、標注成本高、校準困難等問題就暴露出來,仿真數據集在進行算法快速迭代時成為了不二之選。

仿真數據集具有獲取成本低、易獲取極端場景、有較強的連續性等特征,已經有如SHIFT[2]這樣的多尺度、多場景、多模態的連續性仿真數據集問世。大多數仿真數據集都是基于CARLA這樣的仿真平臺生成的,但這些平臺都不重視點云的第四維度即點云反射率的值(點云的4維分別為x, y, z, intensity),往往通過一些簡單的填充方式把一些與反射率無關的值填到第四維上,這在做3D檢測算法時會白白損失掉一維重要的信息,在檢測車牌、車輛表面、車道線等高反物體上是極其不利的。所以,本文基于BRDF反射率模型對CARLA的激光雷達模型進行了重建,使其可以生成具有較為準確反射率的點云,并利用該模型搭建了一個多模態仿真數據集的生成框架。

2 基于BRDF的激光雷達反射率模型

2.1 CARLA仿真平臺及其激光雷達模型

CARLA是一個基于虛幻4引擎為了支持自動駕駛系統的開發、訓練和驗證而被開發出來的開源自動駕駛仿真平臺。CARLA具有很高的靈活性,支持相機、激光雷達、深度相機等多種傳感器,支持雨天、雪天、霧天、夜晚等復雜天氣與光照情況,支持城鎮、鄉村、高速、居民區等多種場景,支持控制多個動態或靜態交通參與者。同時,CARLA代碼完全開源,具有很強的二次開發性,用戶可自定義傳感器、地圖場景、車輛模型等,對自動駕駛感知、決策都能起到強大的賦能作用。

CARLA并未對激光雷達的反射率進行準確建模,其反射率公式為

I=e-ad

(1)

其中a為衰減系數,d為距離,衰減系數與激光波長以及空氣有關,同一情況下為定值。不難看出,CARLA對激光雷達反射率的建模只與距離有關,距離越大,反射率越小,與被照射的物體的性質無關,這顯然是不符合現實的,所以需要對激光雷達模型進行重建。

2.2 基于BRDF的反射率模型

BRDF(Bidirectional Reflectance Distribution Function)是一種常用在圖形學算法中的用于描述光反射現象的基本模型。一般來說,物體對光的反射分為漫反射和鏡面反射,對于一個物體,單個光源照射到物體上反射到觀測點的輻射強度可以表示為式(2)。

(2)

則反射率可表示為

(3)

其中,Lo是出射的輻亮度,Li是入射的輻亮度,θi是入射角,kd是不發生鏡面反射的比例,rd是漫反射的系數,ks是發生鏡面反射的比例,rs是鏡面反射的系數,他們之間存在以下關系:

(4)

進一步地,根據Cook-Torrance的BRDF模型[3],反射過程的示意圖如圖1所示。

圖1 BRDF反射過程示意圖

其中,L為反射點指向光源的單位向量,N為反射點的法向單位向量,V為反射點指向觀察點的單位向量,H為V和L的角平分線單位向量,R是遵循鏡面反射的出射單位向量。

ks,kd,rs,rd,分別等于:

(5)

(6)

(7)

(8)

其中,F0為反射率,表達式如式(9)所示。

F0=0.04+(albedo-0.04)×metallic

(9)

(10)

a=roughness2

(11)

到現在,還只剩下albedo、metallic、roughness三個未知量,metallic和roughness容易理解,分別為金屬度和粗糙度,為0~1之間的小數,albedo為物體的基礎反射率,也為0~1之間的小數,同一物體對不同波長的光的基礎反射率是不同的,在UE4引擎中,所有物體的基礎反射率都為一個三維的矩陣,分別表示對RGB三個通道的光的基礎反射率,由于激光雷達用的是近紅外光,物體對激光的基礎反射率與紅光的近似,所以采用R通道的基礎反射率作為物體對激光的基礎反射率。通過CARLA的相機傳感器接后處理獲取到場景的金屬度、粗糙度和基礎反射率,把得到的屬性圖像傳到client端,后處理的藍圖如下頁圖2所示。

圖2 基礎反射率、金屬度、粗糙度后處理藍圖

獲取各個通道的灰度圖如下頁圖3。

圖3 R通道基礎反射率、金屬度、粗糙度灰度圖

3 仿真數據集生成框架

已經有了激光雷達的模型,還需要一個自動化的仿真數據集生成框架,在該框架中,只需通過一個簡單的config文件對雷達的線數、視場角、分辨率等進行配置,就可以在仿真場景中進行仿真數據采集。

3.1 仿真點云生成

大部分的激光雷達的垂直視場角都在30°以內,所以獲取屬性的相機傳感器的視場角設為60°,這樣在垂直視場角上單個相機就可以涵蓋絕大部分的激光雷達,至于水平方向,當激光雷達的水平視場角大于60°時,通過在水平方向上堆疊多個相機獲取多張圖像從而實現大于60°的水平視場角的圖像獲取,示意圖如圖4所示。

圖4 3個相機組成180°視場角

獲取到金屬度、粗糙度、基礎反射率的圖像后,需要獲取到激光雷達點云投影到圖像坐標系下對應的像素點,只需要利用坐標系轉換公式,把激光雷達坐標系下的點坐標轉到相機坐標系下即可,由于激光雷達的位置坐標和相機的位置坐標相同,所以只需對激光雷達坐標系下的點坐標進行旋轉變換即可,公式如下

xcam=Axlidar

(12)

其中,坐標系用的是左手系,正前方為x軸,正上方為z軸,yaw表示相機相對于雷達的z軸轉角。

轉換到相機坐標系后,把相機坐標系下的三維點坐標轉到圖像的二維坐標系下,這樣即可實現激光點云對應的金屬度、粗糙度、基礎反射率的獲取,圖5為變換后采樣點的示意圖,其中黑色點為采樣點。

圖5 基礎反射率、金屬度、粗糙度采樣圖

采樣讀取各個灰度圖的值,得到采樣點的金屬度、粗糙度、基礎反射率,利用公式(3)~(8)即可計算出點云的反射率,利用jet色度圖對點云進行可視化(反射率從低到高變化時點云的顏色從藍色向紅色過渡),得到的點云示意圖如圖6所示。

圖6 點云示意圖

可以看到車道線、車牌等高反物體的反射率明顯高于其他物體,通過BRDF模型對激光雷達建模的結果正確。

3.2 標注框獲取

通過UE4的hitresult獲取點對應的actor id,在client端通過actor id讀取到actor,通過CARLA自帶的Api獲取actor的綁定框即可,獲取到的綁定框如圖7所示。

圖7 帶標注框的點云示意圖

3.3 多模態數據集框架搭建

利用config文件對雷達和相機參數進行配置,如圖8所示。

圖8 數據集采集框架配置示意

在該配置中,cameras_fov和cameras_pos是兩個長度相同的列表,分別表示相機的視場角和相對于數據采集車的位置,位置列表有三個量,分別表示相對于數據采集車的Δx,Δy和Δyaw(左手系,車輛正前方為x軸正方向),把上圖的配置注入腳本后,得到的數據集如圖9所示。

圖9 采集到的多模態數據集

4 結 論

本文基于BRDF模型對CARLA中的激光雷達模型進行了重建,使激光雷達反饋回較為準確的反射率結果,同時在該激光雷達的基礎上搭建了一個自動化的多模態數據集采集框架,自動化地獲取多模態的3D檢測數據集。

猜你喜歡
視場激光雷達反射率
影響Mini LED板油墨層反射率的因素
手持激光雷達應用解決方案
近岸水體異源遙感反射率產品的融合方法研究
一種晶圓自動光學檢測系統的混合路徑規劃算法
具有顏色恒常性的光譜反射率重建
星模擬器光學系統視場拼接方法的研究
法雷奧第二代SCALA?激光雷達
基于激光雷達通信的地面特征識別技術
醫用內窺鏡矩形視場下入瞳視場角的測試方法研究
基于激光雷達的多旋翼無人機室內定位與避障研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合