![自动驾驶算法与芯片设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/732/44819732/b_44819732.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4.2 点云预处理
首先将Velodyne HDL-64E激光扫描仪采集的单帧3D点云转换为一张鸟瞰RGB图像,它覆盖了正前方80m×40m的区域(如图2-2所示)。
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_42_2.jpg?sign=1738827872-ja4XKrq9WeUwLpHcaM5SiftkbF632CeI-0-083d1b419b67ebce4027f4352f3dd84d)
图2-2 鸟瞰图[32]
受MV3D[28]的启发,点云的高度、强度和密度可以被编码组成RGB图像。网格图的大小被定义为n=1024,m=512。因此,将3D点云投影,并离散化为2D网格,其分辨率约为g=8cm。与MV3D相比,略微减小了像元的大小,以实现更小的量化误差,同时具有更高的输入分辨率。由于效率和性能方面的原因,这里仅使用一张而不是多张高度图。因此,针对覆盖区域Ω内的整个点云∈R3,计算所有三个特征通道(zr,zg,zb,zr,g,b∈Rm×n)。定义PΩ:
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_42_3.jpg?sign=1738827872-pbe5J84zQGv6MujMU1zKPxEnLS6rwjE0-0-10e2fac66ff034b7eacedd63bfdef445)
考虑到激光雷达的z的1.73m位置,应选择z∈[-2m,1.25m],以覆盖地面上方约3m高的区域,并以卡车为最高对象。再定义一个映射函数,其中S∈Rm×n,将每个索引为i的点映射到RGB映射图的特定网格单元Sj中。然后用一个集合描述映射到特定网格单元中的所有点:
,因此,可以将Velodyne强度视为I(PΩ)来计算每个像素的通道:
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_42_6.jpg?sign=1738827872-Sfah3f65Nv8at21BivPOZT27r7YIF8SE-0-cb15ba26d5c16adbfeb9e42e72e5fe2c)
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_43_1.jpg?sign=1738827872-KqbVSqFMUNe16fQ3mP0irTYO9ffL6GuX-0-f71e731b57ec73113f029edcb11e6943)
式中,N表示从PΩi映射到Sj的点数,而g是网格单元大小的参数。显然,zg编码表征了最大高度,zb编码表征了最大强度,zr编码表征了映射到Sj中的所有点的归一化密度。下面这段代码实现了点云预处理。
代码2-1 点云预处理
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_43_2.jpg?sign=1738827872-GyDrY09GLIjg2SV0LzzzmseezHtD0z19-0-07ace21593a8f3da4ba424774a6ef183)
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_44_1.jpg?sign=1738827872-JzVeFF8TOgY71tVJ65gSPIoEclDE32SZ-0-dd184ba3ae9e32015623dfca00480110)