
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4.2 点云预处理
首先将Velodyne HDL-64E激光扫描仪采集的单帧3D点云转换为一张鸟瞰RGB图像,它覆盖了正前方80m×40m的区域(如图2-2所示)。

图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Ω:

考虑到激光雷达的z的1.73m位置,应选择z∈[-2m,1.25m],以覆盖地面上方约3m高的区域,并以卡车为最高对象。再定义一个映射函数,其中S∈Rm×n,将每个索引为i的点映射到RGB映射图的特定网格单元Sj中。然后用一个集合描述映射到特定网格单元中的所有点:
,因此,可以将Velodyne强度视为I(PΩ)来计算每个像素的通道:


式中,N表示从PΩi映射到Sj的点数,而g是网格单元大小的参数。显然,zg编码表征了最大高度,zb编码表征了最大强度,zr编码表征了映射到Sj中的所有点的归一化密度。下面这段代码实现了点云预处理。
代码2-1 点云预处理

