具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本申请实施例为了满足后续的高精度自动识别需求,以及便于生产作业人员进行目视检核的数据成果,提供了一种激光点云数据预处理方法,常应用于基于激光雷达数据的路面伪彩色正视图像的生成。具体通过将基于激光雷达数据的复杂三维识别与交互问题,转换为二维数据处理问题。通过本发明具体实现时引入采集车采集所述三维激光点云时的轨迹信息,以及预设的关注的高度范围来对所述三维激光点云进行滤波,使用滤波后的三维点云生成覆盖整个场景的强度图和高度图,能够提高处理激光点云数据的效率,并能过滤掉三维激光点云对应的环境中不关注的物体的图像。使用覆盖整个场景的强度图和高度图生成伪彩色正视图像,可以有效提升车道线、马路牙、减速带等路面核心地图要素的作业生产效率,即仅保留使用者关注部分的图像信息。
下面结合附图,详细说明本申请实施例中激光点云数据预处理过程。执行激光点云数据预处理的设备,具有执行下述处理信息的功能即可,如可以是一台PC等,为了描述方便,下文执行主体可简称为处理设备。
参见图1,图1为本申请实施例中三维激光点云数据预处理的流程示意图。具体步骤为:
步骤101,获取采集车采集的三维激光点云和采集车采集所述三维激光点云时的轨迹信息,以及三维激光点云的反射强度信息、高度信息和采集车的轨迹信息中的高度信息。
采集车采集的三维激光点云为由大量三维激光点组成,三维激光点云以点的形式记录,每一个点包含有三维坐标,有些可能还含有颜色(RGB)信息或反射强度(Intensity)信息,本申请实施例中以至少含有三维坐标和反射强度信息为例。
采集车的轨迹信息由等时间间隔的轨迹点串表示,每个轨迹点使用三维坐标标识。
采集车在采集数据,即三维激光点云的同时,获取对应的轨迹信息。
本申请实施例中处理设备获取采集车采集的三维激光点云,以及采集车采集所述三维激光点云时采集车的轨迹信息的方式可以是网络传输,也可以是硬件拷贝,对此不进行限制。
采集车采集数据,以及获取轨迹信息的过程可以同现有实现,本申请实施例中对此不进行限制。
三维点云的高度信息为Z坐标对应的值,轨迹信息中的高度信息为轨迹信息中Z坐标对应的值。
步骤102,将所述三维激光点云,以及采集车的轨迹信息投影到预设平面上。
所述三维激光点云的三维坐标为X、Y、Z;所述预设平面可以为坐标Z的值为0的平面。
步骤103,使用采集车的轨迹信息中的高度信息,以及预设关注的高度范围对所述三维点云进行滤波。
本步骤中的滤波,即将三维激光点云的纵坐标设置到预设关注的高度范围内。
下面给出使用采集车的轨迹信息中的高度信息,以及预设关注的高度范围对所述三维点云进行滤波的具体实现过程:
参见图2,图2为本申请实施例中对三维点云滤波的流程示意图。具体步骤为:
步骤201,将所述三维激光点云在预设平面上覆盖的区域以间隔S进行等距划分;形成多个格网单元。
将三维激光点云投影到预设平面上,即XY平面,将每一个三维激光点的(X,Y)坐标展绘在XY平面上;
三维激光点云在XY平面上覆盖的区域可以是包括所有点的最小长方形区域,即可以以三维激光点云中选择投影在XY平面上的X轴及Y轴上的最小值Xmin和Ymin为起始点,也可以以Xmin和Ymin的对应的三维激光点对应编号为(0,0)的网格单元。
最好是S的整倍数,如果不是S的整倍数,可以根据实际需要在某个方向上扩大覆盖的区域达到整倍数。
对整个区域以间隔S进行等距划分,形成多个网格单元,左下角的单元格的编号记为(0,0),依次对所划分的所有网格单元进行编号。
参见图3,图3为本申请实施例中的格网划分示意图。图3中以14×14个网格单元为例,每个三维激光点(3D点)对应一个网格单元。
本申请实施例中的S可以根据实际需要设置,S代表分别率,即看实际需要中需要生成图像的分辨率的高低,设置S的大小,如果需要分辩率高一些,则设置S的值小一些;如果需要分辨率低一些,则设置S的值大一些。
步骤202,确定三维激光点云中的每个三维激光点对应的格网单元的编号,生成点云格网索引图。
其中,确定三维激光点云中的每个三维激光点对应的格网单元的编号,包括:
针对横坐标为X,纵坐标为Y的三维激光点对应的格网单元的编号(i,j)的i和j通过如下方式确定:
计算X与Xmin的差值,将所述差值与s的比值向下取整后的值作为i;
计算Y与Ymin的差值,将所述差值与s的比值向下取整后的值作为j;
其中,Xmin为三维激光点云中在XY平面上的X轴的最小的三维激光点的横坐标,Ymin为三维激光点云在XY平面上Y轴的最小的三维激光点的纵坐标。
上述描述通过如下公式表示:
其中,表示向下取整。
本步骤中生成的点云格网索引图包括信息为:每个三维激光点的坐标与格网单元的编号的映射关系。
步骤203,针对每个格网单元,在投影到预设平面上的采集车的轨迹信息中查找与所述格网单元的中心距离最小的点,使用该点的坐标信息计算所述格网单元的基础高度,使用所有格网单元的基础高度生成覆盖整个场景的三维地面高度图。
本步骤中针对每个格网单元,在投影到预设平面上的采集车的轨迹信息中查找与所述格网单元的中心距离最小的点,使用该点的坐标信息计算所述格网单元的基础高度的具体过程如下:
参见图4,图4为本申请实施例中计算网格单元的基础高度的流程示意图。具体步骤为:
步骤401,计算投影到预设平面上的采集车的轨迹信息中的所有点与对应格网单元的中心的距离,获取距离最小的点。
步骤402,计算该点的坐标信息中的高度坐标的值与采集车的车身高度值的差值,作为所述格网单元的基础高度。
参见图5,图5为采集车的轨迹信息与车身高度值的关系示意图。图5中的h为车身高度,(Xt、Yt、Tt)为t时刻采集车的轨迹信息。
步骤204,根据所述三维地面高度图,以及预设关注的高度范围对点云格网索引图进行滤波处理。
步骤204的具体实现过程如下:
针对每个格网单元对应的每个三维激光点,进行如下滤波处理:
当该三维激光点的Z坐标Zk小于h(i,j)-hd时,将Zk更新为h(i,j)-hd;
当该三维激光点的Z坐标Zk大于h(i,j)+hu时,从该格网单元中删除该点云对应的编号;
其他情况,均不作处理,即保留坐标原值。
其中,h(i,j)为当前格网单元的基础地面高度,hd为预设滤波低点阈值,hu为预设滤波高点阈值。
针对上述三维激光点云数据的处理过程中,考虑到关注点为道路面上的车道线、马路牙、减速带等地图要素,即确定预设关注的高度范围,进而设置对应的滤波地点阈值和滤波高点阈值,来进行滤波。
具体实现时,hd可以为1.5,hu可以为1.0,表示路面以下1.0米至路面以上1.5米范围的空间的数据保留,其他空间的数据不保留。
步骤104,根据滤波后的三维点云的反射强度信息、高度信息,以及各点在预设平面上的投影图生成覆盖整个场景的强度图和高度图。
当本申请实施例中采用网格为单元进行相关信息处理时,根据滤波后的三维点云的反射强度信息、高度信息,以及各点在预设平面上的投影图生成覆盖整个场景的强度图和高度图的具体实现可以为:
根据滤波后的三维点云的反射强度,以及各点的高度确定所属网格单元的反射强度和高度,生成覆盖整个场景的强度图和高度图。
下面结合附图,详细给出确定格网单元的高度,以及反射强度的过程。
参见图6,图6为本申请实施例中确定格网单元的高度和反射强度的流程示意图。具体步骤为
步骤601,针对每个格网单元,若对应多个三维激光点云,则选择出一个激光点云作为代表点;若对应一个三维激光点云,则该激光点云作为代表点,若不存在激光点云,该格网单元不存在代表点。
本步骤中针对每个格网单元,若对应多个三维激光点云,则选择出一个激光点云作为代表点,包括:
将所述多个三维激光点云按照各自的纵坐标值的大小进行排序,将处于中间位置的Z坐标值对应的单位激光点云作为代表点。
如果中间点存在两个,则按照预设规则,选择其中一个点作为代表点,预设规则可以为选择靠前的点,也可以选择靠后的点。
步骤602,针对每个格网单元,使用代表点的反射强度值,以及高度值确定该格网单元的反射强度值,以及高度值。
本步骤中使用代表点的反射强度值,以及高度值确定该格网单元的反射强度,以及高度,包括:
格网单元的反射强度vr(i,j)为:
255(I(i,j)-Imin)/(Imax-Imin);
格网单元的高度值vh(i,j)为:
255(Z(i,j)-h(i,j)+hd)/(hu+hd);
其中,Z(i,j)为格网单元(i,j)的代表点的高度坐标值,I(i,j)为格网单元(i,j)的代表点的反射强度值;Imin为整个覆盖区域范围内所有三维激光点的预设最小反射强度;Imax为整个覆盖区域范围内所有三维激光点的预设最大反射强度值;h(i,j)为当前格网单元的基础地面高度,hd为预设滤波低点阈值,hu为预设滤波高点阈值。
至此完成三维激光点云数据的预处理,经过上述预处理方式,能够提高处理激光点云数据的效率,并能过滤掉三维激光点云对应的环境中不关注的物体的图像。
通过上述方式对三维激光点云数据的预处理后获得的强度图和高度图,可以进一步用于利用彩色图像合成原理对所述强度图和高度图进行通道组合,生成伪彩色正视图像。
本申请实施例中利用彩色图像合成原理对所述强度图和高度图进行通道组合,生成伪彩色正视图像的具体过程如下:
参见图7,图7为本申请实施例中生成伪彩色正视图像的流程示意图。具体步骤为:
步骤701,将高度图赋予红色通道。
步骤702,将强度图复制两份,分别赋予绿色通道和蓝色通道。
步骤703,将红、绿、蓝三个通道进行合成,生成红青伪彩色正视图像。
本申请实施例中通过对三维激光点云进行XY平面的二维正射投影实现了数据降维,将三维点云识别与编辑问题转化为二维图像识别与编辑问题。由于投影后的图像是正视图像,与像机获取的透视图像相比,消除了“近大远小”的透视形变,降低了自动识别的难度。
此外,本发明通过多通道图像合成技术,将点云数据中包含的高程信息与地物反射强度信息通过不同的色彩通道进行组合,所生成的覆盖整个路面的伪彩色图像包含了更多的场景信息,有利于自动识别算法准确率与鲁棒性的双重提升。
最后,由于所合成图像具有较好的视觉效果,因此非常便于内业作业人员以此作为底图,在自动识别的基础上进行高效的检核与修编,这进一步体现出了本发明的应用价值。
基于同样的发明构思,本申请实施例中提供一种三维激光点云数据预处理装置。参见图8,图8为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:获取单元801、投影单元804、滤波单元803和生成单元804;
获取单元801,用于获取采集车采集的三维激光点云和采集车采集所述三维激光点云时的轨迹信息,以及三维激光点云的反射强度信息、高度信息和采集车的轨迹信息中的高度信息;
投影单元802,用于将获取单元801获取的三维激光点云,以及采集车的轨迹信息投影到预设平面上;
滤波单元803,用于使用获取单元801获取的采集车的轨迹信息中的高度信息,以及预设关注的高度范围对所述三维点云进行滤波;
生成单元804,用于根据滤波单元803滤波后的三维点云的反射强度信息、高度信息,以及投影单元802中各点在预设平面上的投影图生成覆盖整个场景的强度图和高度图。
优选地,
滤波单元803,具体用于使用采集车的轨迹信息中的高度信息,以及预设关注的高度范围对所述三维点云进行滤波时,将所述三维激光点云在预设平面上覆盖的区域以间隔S进行等距划分;形成多个格网单元;确定三维激光点云中的每个三维激光点对应的格网单元的编号,生成点云格网索引图;针对每个格网单元,在投影到预设平面上的采集车的轨迹信息中查找与所述格网单元的中心距离最小的点,使用该点的坐标信息计算所述格网单元的基础高度,使用所有格网单元的基础高度生成覆盖整个场景的三维地面高度图;根据所述三维地面高度图,以及预设关注的高度范围对点云格网索引图进行滤波处理。
其中,确定三维激光点云中的每个三维激光点对应的格网单元的编号,包括:
针对横坐标为X,纵坐标为Y的三维激光点对应的格网单元的编号(i,j)通过下述公式确定:
计算X与Xmin的差值,将所述差值与s的比值向下取整后的值作为i;
计算Y与Ymin的差值,将所述差值与s的比值向下取整后的值作为j;
其中,Xmin为三维激光点云中在XY平面上的X轴的最小的三维激光点的横坐标,Ymin为三维激光点云在XY平面上Y轴的最小的三维激光点的纵坐标。
优选地,
滤波单元803,具体用于计算投影到预设平面上的采集车的轨迹信息中的所有点与对应格网单元的中心的距离,获取距离最小的点;计算该点的坐标信息中的高度坐标的值与采集车的车身高度值的差值,作为所述格网单元的基础高度。
其中,针对每个格网单元,在投影到预设平面上的采集车的轨迹信息中查找与所述格网单元的中心距离最小的点,使用该点的坐标信息计算所述格网单元的基础高度,包括:
计算投影到预设平面上的采集车的轨迹信息中的所有点与对应格网单元的中心的距离,获取距离最小的点;
计算该点的坐标信息中的高度坐标的值与采集车的车身高度值的差值,作为所述格网单元的基础高度。
优选地,
滤波单元803,具体用于根据所述三维地面高度图,以及预设关注的高度范围对点云格网索引图进行滤波处理时:针对每个格网单元对应的每个三维激光点,进行如下滤波处理:当该三维激光点的Z坐标Zk小于h(i,j)-hd时,将Zk更新为h(i,j)-hd;当该三维激光点的Z坐标Zk大于h(i,j)+hu时,从该格网单元中删除该点云对应的编号;其中,h(i,j)为当前格网单元的基础地面高度,hd为预设滤波低点阈值,hu为预设滤波高点阈值。
其中,所述根据所述三维地面高度图,以及预设关注的高度范围对点云格网索引图进行滤波处理,包括:针对每个格网单元对应的每个三维激光点,进行如下滤波处理:
当该三维激光点的Z坐标Zk小于h(i,j)-hd时,将Zk更新为h(i,j)-hd;
当该三维激光点的Z坐标Zk大于h(i,j)+hu时,从该格网单元中删除该点云对应的编号;
其中,h(i,j)为当前格网单元的基础地面高度,hd为预设滤波低点阈值,hu为预设滤波高点阈值。
优选地,
生成单元804,具体用于根据滤波后的三维点云的反射强度,以及各点的高度确定所属网格单元的反射强度和高度,生成覆盖整个场景的强度图和高度图。
其中,确定格网单元高度,以及反射强度,包括:
针对每个格网单元,若对应多个三维激光点云,则选择出一个激光点云作为代表点;若对应一个三维激光点云,则该激光点云作为代表点,若不存在激光点云,该格网单元不存在代表点;
针对每个格网单元,使用代表点的反射强度值,以及高度值确定该格网单元的反射强度值,以及高度值。
针对每个格网单元,若对应多个三维激光点云,则选择出一个激光点云作为代表点,包括:
将所述多个三维激光点云按照各自的纵坐标值的大小进行排序,将处于中间位置的Z坐标值对应的单位激光点云作为代表点。
使用代表点的反射强度值,以及高度值确定该格网单元的反射强度,以及高度,包括:
格网单元的反射强度vr(i,j)为:
255(I(i,j)-Imin)/(Imax-Imin);
格网单元的高度值vh(i,j)为:
255(Z(i,j)-h(i,j)+hd)/(hu+hd);
其中,Z(i,j)为格网单元(i,j)的代表点的高度坐标值,I(i,j)为格网单元(i,j)的代表点的反射强度值;Imin为整个覆盖区域范围内所有三维激光点的预设最小反射强度;Imax为整个覆盖区域范围内所有三维激光点的预设最大反射强度值;h(i,j)为当前格网单元的基础地面高度,hd为预设滤波低点阈值,hu为预设滤波高点阈值。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
此外,本申请实施例中还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述三维激光点云预处理方法的步骤。
另外,本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述三维激光点云预处理方法的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。