![自动驾驶算法与芯片设计](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=1739019007-FkgMYI4mYnzXmUHmBeStKbpqztSAGJ0M-0-89afd94eea50c468e84774992832227f)
图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=1739019007-60ms8D8auoHZg0T8FAZC7B0YiH2jJlSe-0-76046f6960c1712c55831165b240d40f)
考虑到激光雷达的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=1739019007-b4S7AOHVNBaxMHRfE8iY336BJX3twaZJ-0-c92d2f6235b21477a208cf9a54d0b792)
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_43_1.jpg?sign=1739019007-3ifg5sV8fJwGHgR6cGY8VfJdvuWSIJCR-0-3976bc387e672e76632476ddf13e1aec)
式中,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=1739019007-SEbbNWyqyhoDgzRXMPVEnN4hKpSLVY1B-0-235d0de7a8296fb53e4fcf5b4b917587)
![](https://epubservercos.yuewen.com/8CA78A/23950220201292606/epubprivate/OEBPS/Images/43643_44_1.jpg?sign=1739019007-fsivqVDFCTkyAKFoEUCR20d9Lxn0JEa0-0-ad02dd4fee83b947afddf5b4265fb4c8)