发明内容
本申请实施例提供一种路面的采集点识别方法、装置及服务器,以解决当前路面元素识别技术存在无法将路面点和路沿点精确识别的问题。
为解决上述技术问题,本申请实施例提供以下技术方案:
本申请实施例提供一种路面的采集点识别方法,包括:
获取路面的点云数据;
根据所述点云数据计算所述路面的各采集点的曲率;
根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
可选地,在本申请一些可能的实现方式中,所述各采集点为依序排列的采集点,所述根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合的步骤,包括:
从所述各采集点中确定曲率大于所述预设划分曲率的参考采集点;
以所述参考采集点为分割点,对所述各采集点进行划分,得到各采集点集合。
可选地,在本申请一些可能的实现方式中,所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤,包括:
针对每一个所述采集点集合,根据所述采集点集合中的各目标采集点的高度计算得到平均高度;
若所述平均高度处于预设阈值区间,则确定所述采集点集合为路沿点集合;
若所述平均高度不处于所述预设阈值区间,则确定所述采集点集合为路面点集合。
可选地,在本申请一些可能的实现方式中,所述根据所述点云数据计算所述路面的各采集点的曲率的步骤,包括:
对所述点云数据进行聚类,得到多个点云数据簇;
针对每一个所述点云数据簇,判断所述点云数据簇中的采集点的数量是否大于第一预设阈值;
若所述点云数据簇中的采集点的数量大于所述第一预设阈值,则计算所述点云数据簇中的各采集点的曲率。
可选地,在本申请一些可能的实现方式中,所述方法还包括:
若所述点云数据簇中的采集点的数量不大于所述第一预设阈值,则过滤所述点云数据簇。
可选地,在本申请一些可能的实现方式中,在所述若所述点云数据簇中的采集点的数量不大于所述第一预设阈值,则过滤所述点云数据簇的步骤之后,还包括:
根据所述识别结果确定所述各目标采集点中的地面点;
根据所述各目标采集点中的地面点进行平面拟合,得到目标平面;
计算已过滤的所述点云数据簇中的各采集点与所述目标平面的距离值;
将与所述目标平面的距离值小于第二预设阈值的采集点确定为地面点。
可选地,在本申请一些可能的实现方式中,在所述计算所述点云数据簇中的各采集点的曲率的步骤之前,还包括:
判断所述点云数据簇中的各采集点之间的最大高度差的绝对值是否小于第三预设阈值;
若所述点云数据簇中的各采集点之间的最大高度差的绝对值小于所述第三预设阈值,则执行所述计算所述点云数据簇中的各采集点的曲率的步骤;
若所述点云数据簇中的各采集点之间的最大高度差的绝对值不小于所述三预设阈值,则过滤所述点云数据簇。
可选地,在本申请一些可能的实现方式中,在所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤,包括:
针对每一个采集点集合,判断所述采集点集合中的采集点的数量是否大于第四预设阈值;
若所述采集点集合中的采集点的数量大于第四预设阈值,则根据所述采集点集合中的各目标采集点的参数信息,确定所述采集点集合为地面点集合或者路沿点集合;
若所述采集点集合中的采集点的数量不大于第四预设阈值,则过滤所述采集点集合。
本申请实施例提供一种路面的采集点识别装置,其包括:
获取模块,用于获取路面的点云数据;
计算模块,用于根据所述点云数据计算所述路面的各采集点的曲率;
划分模块,用于根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
确定模块,用于根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
识别模块,用于根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
本申请实施例提供一种服务器,其包括处理器和存储器,存储器存储有多条指令,指令适于处理器进行加载,以执行上述方法中的步骤。
本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行上述方法中的步骤。
本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中的步骤。
本申请提供一种路面的采集点识别方法、装置及服务器,该方法首先获取路面的点云数据,根据点云数据计算所述路面的各采集点的曲率,再根据各采集点的曲率以及预设划分曲率对各采集点进行划分,得到各采集点集合,此时划分后得到的各采集点的集合中只包含路面点或路沿点中的一种元素,之后根据各采集点集合中的各目标采集点的参数信息,确定各采集点集合为地面点集合或者路沿点集合,最后,根据确定后的各采集点集合确定各目标采集点的识别结果。本申请提供的采集点提取方法利用激光雷达点云数据的连续性,根据采集点的曲率特征以及参数信息识别路面采集点中的路面点和路沿点,提高了路面点和路沿点识别的精确度,提升了路面点和路沿点识别的效率,降低了识别计算的复杂度。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中,激光雷达是以发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息,如:目标距离、方位、高度、速度、姿态、甚至形状等参数。
本申请实施例中,所述的路面的点云数据是通过激光雷达采集到的路面数据,所述路面的各采集点,包括:路面点、路沿点、还有一些非路面点和路沿点的干扰点,其中,干扰点包括:路边电线杆、绿化带等。
请参阅图1,图1是本申请实施例提供的路面的采集点识别系统的场景示意图,用于驾驶车辆通过激光雷达等测量工具对路面数据进行采集,将采集到的点云数据通过数据传输设备发送到服务器中,服务器对采集到的点云数据进行识别,判断各路面采集点是地面点还是路沿点,服务器将判断的结果发送到该驾驶车辆中,进而驾驶车辆根据识别的结果做出继续直线行驶,还是调整行进方向或者角度避开路沿等行为决策,该系统可以包括:激光雷达101、驾驶车辆102、服务器103;其中:
驾驶车辆102包括但不局限于自动驾驶车辆、还可以是其他行驶的车辆;
服务器103包括本地服务器和/或远程服务器等;
驾驶车辆102通过位于自车上的激光雷达101来实时采集路面数据,其中,激光雷达101放在驾驶车辆102上的位置是便于测量地面数据的任意位置,不局限于驾驶车辆102的车顶,激光雷达101的数量根据实际的需要决定,在此,不做限定,驾驶车辆102将激光雷达101采集到的点云数据通过数据传输设备传输到服务器103中,其中,激光雷达101采集到的点云数据中各数据点对应的路面元素的三维空间信息中包括路面元素对应的高度,服务器103接收到点云数据后,通过对点云数据的计算、分析,识别出路面点和路沿点,最后,服务器103将判断的结果发送到该驾驶车辆中,进而驾驶车辆根据识别的结果做出继续直线行驶,还是调整行进方向或者角度避开路沿等行为决策。
其中,服务器103接收到点云数据后,通过对点云数据的计算、分析,识别出路面点和路沿点的步骤包括:
根据点云数据计算路面的各采集点的曲率,再根据各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合,之后根据各采集点集合中的各目标采集点的参数信息,确定各采集点集合为地面点集合或者路沿点集合,最后,根据确定后的各采集点集合确定所述各目标采集点的识别结果,即:从地面点集合或者路沿点集合中得到地面点和路沿点。
其中,根据点云数据计算路面的各采集点的曲率的步骤之前,还可以通过多种过滤方法,过滤掉路面的点云数据中一些干扰元素对应的数据,如:路边的电线杆等明显不属于地面元素的干扰元素,根据过滤后剩下的点云数据计算路面的各采集点的曲率,如图2所示,图2为本申请实施例所提供的将获取的路面的点云数据通过可视化工具得到的路面采集点示意图。本申请实施例中用到的可视化工具为Ros的可视化工具Rviz,也可以是其他可视化工具,在此不做限定,图2中实线代表的是路面点和路沿点(包括路面点与路沿点交界处的点),离散的点代表非路面点和路沿点的其他干扰点,干扰点包括:路边电线杆、绿化带等,由图2中可以看出激光雷达采集的路面数据中包含有多种干扰物对应的干扰点,由于激光雷达采集到的连续点云数据中路面点和路沿点的曲率都比较小,但是在路面点与路沿点的交接处的曲率会增大,路面的各干扰点的曲率也会比路面点和路沿点的曲率大,所以,当激光雷达采集到的连续点云数据中各采集点的曲率小于或等于阈值时,该采集点就为路面点或者路沿点(不包括路面点与路沿点交界处的点),当激光雷达采集到的连续点云数据中各采集点的曲率大于阈值时,该采集点就为路面点与路沿点交接处的点和干扰点,或者是路面点与路沿点交接处的点、干扰点中的一种,因此,可以通过各采集点的曲率与阈值的大小过滤掉干扰点和路面点与路沿点交界处的点,又因为激光雷达采集到的点云数据是连续的,所以将该阈值作为划分曲率得到的过滤后的任一采集点集合中的采集点为路沿点或者是路面点的一种。
考虑到实际情况在过滤的过程中可能会将一些被车辆或者行人等遮挡的地面点误过滤掉,因此,根据上述识别结果确定的各目标采集点中的地面点,对各目标采集点中的地面点进行平面拟合,得到目标平面,再通过比较已过滤的点云数据中的各采集点与目标平面的距离值与预设的阈值间的大小,将之前误过滤的地面点重新筛选出来,并将筛选出来的点确定为地面点。
需要说明的是,图1所示的系统场景示意图仅仅是一个示例,本申请实施例描述的服务器以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
图3是本申请实施例提供的路面的采集点识别方法的第一种流程示意图,该方法可以运用在一个或者多个服务器内;请参阅图3,该路面的采集点识别方法包括以下步骤:
301:获取路面的点云数据;
在一种实施例中,本申请的路面的采集点识别装置获取的地面数据不仅包括路面点和路沿点对应的数据,还包括一些非路面点和路沿点的地面元素对应的数据,如:路边的绿化带、路边的电线杆、路面上的遮挡物等对应的数据,其中,路面上的遮挡物包括路面的行人、车辆等所有遮挡住地面点的遮挡物。
302:根据点云数据计算路面的各采集点的曲率;
在一种实施例中,点云数据中任一当前采集点的曲率是根据当前采集点的高度与当前采集点前后多个采集点的高度计算得到的,具体公式为:
其中,C代表当前采集点的曲率,X代表当前采集点的高度,i代表当前采集点前后多个采集点中的第i个采集点,n代表当前采集点前后采集点个数,Xi代表当前采集点前后多个采集点中的第i个采集点的高度,一般选用当前采集点前后5个采集点的高度来计算当前采集点的曲率,即:n的数值为10,也可以根据实际情况选择,在此,不做限定。例如:有a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t等一组连续的采集点数据,现在需要求出采集点g的曲率,则采集点g前后5个采集点依次为:b、c、d、e、f、h、i、j、k、l,其中,采集点b对应的高度为X1,采集点c对应的高度为X2,采集点d对应的高度为X3,以此类推,采集点l对应的高度为X10,则采集点g的曲率C等于:b、c、d、e、f、h、i、j、k、l这10个采集点的高度分别与当前采集点g的高度之差相加得到的和的范数除以当前采集点高度的范数。
303:根据各采集点的曲率以及预设划分曲率对各采集点进行划分,得到各采集点集合;
在一种实施例中,各采集点为依序排列的采集点,所述根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合的步骤,包括:
从所述各采集点中确定曲率大于所述预设划分曲率的参考采集点;
以所述参考采集点为分割点,对所述各采集点进行划分,得到各采集点集合。
在一种实施例中,由于激光雷达采集到的连续点云数据中路面点和路沿点的曲率都比较小,但是在路面点与路沿点的交接处的曲率会增大,路面的各干扰点的曲率也会比路面点和路沿点的曲率大,所以,当激光雷达采集到的连续点云数据中各采集点的曲率小于或等于阈值时,该采集点就为路面点或者路沿点(不包括路面点与路沿点交界处的点),当激光雷达采集到的连续点云数据中各采集点的曲率大于阈值时,该采集点就为路面点与路沿点交接处的点和干扰点,或者是路面点与路沿点交接处的点、干扰点中的一种,即:该阈值就为预设划分曲率,因此,可以通过各采集点的曲率与预设划分曲率过滤掉干扰点和路面点与路沿点交界处的点,又因为激光雷达采集到的点云数据是连续的,所以将预设划分曲率作为划分曲率得到的过滤后的任一采集点集合中的采集点为路沿点或者是路面点的一种,如图4所示为本申请实施例提供的路面的采集点识别方法中的根据各采集点的曲率以及预设划分曲率对各采集点进行划分示意图,例如:A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q为点云数据中的一组连续的点,当E、F、K三个采集点对应的曲率大于预设的划分曲率,其他的A、B、C、D、G、H、I、J、L、M、N、O、P、Q的14个采集点对应曲率不大于预设划分曲率时,将E、F、K三个采集作为分割点,则E为分割点1,F为分割点2,K为分割点3,对上述云数据中的一组连续的点:A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q进行划分,最后得到了3个采集点集合,其中,采集点集合1中的点包括:A、B、C、D;采集点集合2中的点包括:F、G、H、I、J;采集点集合3中的点包括:k、L、M、N、O、P、Q。
304:根据各采集点集合中的各目标采集点的参数信息,确定各采集点集合为地面点集合或者路沿点集合;
在一种实施例中,所述根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合的步骤,包括:
所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤,包括:
针对每一个所述采集点集合,根据所述采集点集合中的各目标采集点的高度计算得到平均高度;
若所述平均高度处于预设阈值区间,则确定所述采集点集合为路沿点集合;
若所述平均高度不处于所述预设阈值区间,则确定所述采集点集合为路面点集合。
在一种实施例中,因为路沿点相对于地面点存在10-20cm的高度差,所以路沿点集合的平均高度比路面点集合的平均高度要高10-20cm,因此,计算出各采集点集合的平均高度,判断采集点集合的平均高度是否在预设阈值区间内,如果在预设阈值内,则该采集点集合为路沿点集合,如果不在预设阈值区间内,则该采集点为路面点集合。
305:根据确定后的各采集点集合确定各目标采集点的识别结果。
在一种实施例中,因为根据上述步骤已经判断出各采集点集合是路沿点集合还是路面点集合了,所以只需要根据采集点属于路沿点集合还是路面点集合来识别该采集点是路沿点还是路面点。
在一种实施例中,所述根据所述点云数据计算所述路面的各采集点的曲率的步骤,包括:对所述点云数据进行聚类,得到多个点云数据簇,针对每一个所述点云数据簇,判断所述点云数据簇中的采集点的数量是否大于第一预设阈值,若所述点云数据簇中的采集点的数量大于所述第一预设阈值,则计算所述点云数据簇中的各采集点的曲率。
其中,对所述点云数据进行聚类,得到多个点云数据簇的具体步骤包括:
计算所述点云数据中的各相邻采集点之间的高度差的绝对值,根据所述点云数据中的各相邻采集点之间的高度差的绝对值以及预设划分高度对所述点云数据进行划分,得到多个点云数据簇;因为,地面中相同的元素间的高度差的绝对值很小,例如:同一路面中相邻的两不同地面点的高度差的绝对值很小,同一路面中同一电线杆的对应的不同数据点中相邻数据点的高度差的绝对值也很小,所以,可以通过预设划分高度对点云数据进行划分,将近似为同一类的地面采集点对应的点云数据分到同一个点云数据簇中,此时,得到多个点云数据簇中任一点云数据簇中包含的地面采集点不一定完全是同一类的,因为在路沿点和路面点交接处的地面点和路沿点的高度差也很小,所以很难将路沿点和路面点对应的数据完全分到不同的点云数据簇中,因此,需要通过点云数据计算每个点云数据簇中路面元素曲率,根据各采集点的曲率以及预设划分曲率对各采集点进行划分,得到各采集点集合,再根据各采集点集合中的各目标采集点的参数信息,确定各采集点集合为地面点集合或者路沿点集合,最后,根据确定后的各采集点集合确定各目标采集点的识别结果。
在一种实施例中,在所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤之前,还包括:针对任一采集点集合,判断所述采集点集合中的采集点的数量是否大于第四预设阈值,若所述采集点集合中的采集点的数量大于第四预设阈值,则执行所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤,若所述采集点集合中的采集点的数量不大于第四预设阈值,则过滤所述采样点集合。在实际情况中,采集点的数量太小的采集点集合的结果可能与真实的结果有所偏差,因此,需要过滤掉一些可能引起结果有误差的采集点,根据实际情况来设定第四预设阈值,例如,当第四阈值设定为4时,上述例子中采集点集合1:A、B、C、D和采集点集合2:G、H、I、J的采集点数量都等同于4,因此,需要过滤掉采集点集合1和采集点集合2,则剩下的只有采集点集合3:L、M、N、O、P、Q,最后,根据采集点集合3中的采集点平均高度来确定是路沿点集合还是路面点集合,根据确定后的采集点集合3确定在采集点3中的采集点是路面点还是路沿点。
图5是本申请实施例提供的路面的采集点识别方法的第二种流程示意图,请参阅图5,该路面的采集点识别方法包括以下步骤:
501:获取点云数据;
在一种实施例中,本申请的路面的采集点识别装置获取的地面数据不仅包括路面点和路沿点对应的数据,还包括一些非路面点和路沿点的地面元素对应的数据,如:路边的绿化带、路边的电线杆、路面上的遮挡物等对应的数据,其中,路面上的遮挡物包括路面的行人、车辆等所有遮挡住地面点的遮挡物。
502:对点云数据进行聚类,得到多个点云数据簇;
在一种实施例中,将点云数据聚类得到多个点云数据簇的步骤为:先计算所述点云数据中的各相邻采集点之间的高度差的绝对值,再根据所述点云数据中的各相邻采集点之间的高度差的绝对值以及预设划分高度对所述点云数据进行划分,得到多个点云数据簇;因为,相同中的地面元素间的高度差的绝对值很小,如:同一路面中相邻的两不同地面点的高度差的绝对值很小,同一路面中同一电线杆的对应的不同数据点中相邻数据点的高度差的绝对值也很小,所以,可以通过预设划分高度对点云数据进行划分,将近似为同一类的地面采集点对应的点云数据分到同一个点云数据簇中,例如:有一组点云数据:A1、A2、A3、A4、A5、A6、A7、A8、B1、B2、B3、B4、B5、B6、B7、B8、C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、D8,E1、E2、E3、E4、E5、E6、E7、E8,预设划分高度为0.1cm,其中,A8与B1、B3与B4、B8与C1、C4与D5、E3和E4这5组的高度差的绝对值大于0.1cm,其他相邻两不同采集点的高度差的绝对值都小于或等于0.1cm,因此,该组点云数据可以划分为以下6个点云数据簇,点云数据簇1: A1、A2、A3、A4、A5、A6、A7、A8;点云数据簇2:B1、B2、B3;点云数据簇3:B4、B5、B6、B7、B8;点云数据簇4:C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4;点云数据簇5: D5、D6、D7、D8 、E1、E2、E3;点云数据簇6:E4、E5、E6、E7、E8,在这里点云数据簇中的采集点数量只是为了方便说明,实际情况中点云数据簇中的采集点数量很多。
503:针对每一个点云数据簇,判断点云数据簇中的采集点的数量是否大于第一预设阈值,若点云数据簇中的采集点的数量大于第一预设阈值,则执行504的步骤;
在一种实施例中,点云数据簇中采集点的数量太小可能会导致识别结果不准确,容易造成误差,因此,为保证对采集点识别结果的可靠性需要对点云数据簇中的采集点数量小于第一预设阈值的点云数据簇过滤掉,若点云数据簇中的采集点的数量大于第一预设阈值,则执行504的步骤,若点云数据簇中的采集点的数量是小于或等于第一预设阈值,则过滤掉该点云数据簇,第一预设阈值的具体数值根据实际情况确定,例如,当第一预设阈值为3时,上述6个点云数据簇中点云数据簇2就会被过滤出去,剩下点云数据簇1、点云数据簇3、点云数据簇4、点云数据簇5、点云数据簇6。
504:判断点云数据簇中的各采集点之间的最大高度差的绝对值是否小于第三预设阈值,若点云数据簇中的各采集点之间的最大高度差的绝对值小于第三预设阈值,则执行505的步骤;
在一种实施例中,在同一个点云数据簇中相邻两个采集点的高度差的绝对值小于预设的划分高度,但是不同采集点间的最大高度差的绝对值大于或等于第三预设阈值,例如:上述例子中,C8与D1、D8与E1两组采集点的高度差的绝对值小于预设划分高度,所以,点云数据簇4和点云数据簇5中包含两种不同类型的采集点,因此,需要根据点云数据簇中采集点间的最大高度差的绝对值是与第三预设阈值的大小对已经通过预设划分曲率和第一预设阈值的点云数据簇再进行过滤,即;对剩下点云数据簇1、点云数据簇3、点云数据簇4、点云数据簇5、点云数据簇6再过滤,若点云数据簇中的各采集点之间的最大高度差的绝对值小于第三预设阈值,则执行505的步骤,若点云数据簇中的各采集点之间的最大高度差的绝对值大于或等于第三预设阈值,则过滤掉该点云数据簇,第三预设阈值的数值大小根据实际情况确定,再此不做限定,例如:第三预设阈值为1cm,其中,点云数据簇1、点云数据簇3、点云数据簇5、点云数据簇6中采集点的最大高度差的绝对值都小于1cm,只有点云数据簇4中采集点的最大高度差的绝对值大于1簇cm,则过滤线点云数据簇4,过滤后剩下点云数据簇为:点云数据簇1、剩下点云数据簇3、剩下点云数据簇5、剩下点云数据簇6。
505:计算点云数据簇中各采集点的曲率;
在一种实施例中,点云数据簇中各采集点的曲率是根据当前采集点的高度与当前采集点前后多个采集点的高度计算得到的,具体公式为:
其中,C代表当前采集点的曲率,X代表当前采集点的高度,i代表当前采集点前后多个采集点中的第i个采集点,n代表当前采集点前后采集点个数,Xi代表当前采集点前后多个采集点中的第i个采集点的高度,如:选用当前采集点前后5个采集点的高度来计算当前采集点的曲率,即:n的数值为10,也可以根据实际情况选择,在此,不做限定。例如:有a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t等一组连续的采集点数据,现在需要求出采集点g的曲率,则采集点g前后5个采集点依次为:b、c、d、e、f、h、i、j、k、l,其中,采集点b对应的高度为X1,采集点c对应的高度为X2,采集点d对应的高度为X3,以此类推,采集点l对应的高度为X10,则采集点g的曲率C等于:b、c、d、e、f、h、i、j、k、l这10个采集点的高度分别与当前采集点g的高度之差相加得到的和的范数除以当前采集点高度的范数。
506:根据各采集点的曲率以及预设划分曲率对各采集点进行划分,得到各采集点集合;
在一种实施例中,通过上述过滤方法将点云数据簇2和点云数据簇4过滤掉了,还剩下其他4个点云数据簇,下一步对剩下的每个点云数据簇中根据采集点的曲率以及预设的划分曲率对各采集点进行划分,首先,对点云数据簇1中的采集点进行划分,若点云数据簇1中的各采集点 A1、A2、A3、A4、A5、A6、A7、A8的曲率都小于预设划分曲率,则将点云数据簇1中的采集点划分到同一个采集点集合1中,即,采集点集合1的采集点有:A1、A2、A3、A4、A5、A6、A7、A8;再对点云数据簇3中的采集点进行划分,若点云数据簇3中的各采集点 B4、B5、B6、B7、B8的曲率都小于预设划分曲率,则将点云数据簇3中的采集点划分到同一个采集点集合2中,即,采集点集合2中采集点有:B4、B5、B6、B7、B8;接下来对点云数据簇5中的各采集点进行划分,若点云数据簇5中采集点D7、采集点D8的曲率都大于或等于预设划分曲率,其他的采集点D5、D6、E1、E2、E3都小于预设划分曲率,则点云数据簇5可以分为采集点集合3和采集点集合4,其中,采集点集合3中的采集点为:D5、D6,采集点集合4中的采集点为:D8、E1、E2、E3;最后对点云数据簇6的各采集点进行划分,若点云数据簇6中的采集点E6的曲率大于或等于预设划分曲率,其他的采集点E4、E5、E7、E8的曲率都小于预设划分曲率,则点云数据簇6可以分为采集点集合5和采集点集合5,其中,采集点集合5中的采集点为:E4、E5,采集点6的采集点为:E6、E7、E8。
507: 针对每一个采集点集合,判断采集点集合中的采集点的数量是否大于第四预设阈值,若所述采集点集合中的采集点的数量大于第四预设阈值,则执行步骤508;
在一种实施例中,各采集点集合中采集点的数量太小可能会导致识别结果不准确,容易造成误差,因此,为保证对采集点识别结果的可靠性需要将各采集点集合中的采集点数量小于第四预设阈值的点云数据簇过滤掉,若所述采集点集合中的采集点的数量大于第四预设阈值,则执行步骤508,若所述采集点集合中的采集点的数量大于或等于第四预设阈值,则过滤所述采集点集合,第四预设阈值的具体数值根据实际情况确定,例如,当第四预设阈值为2时,上述6个采集点集合中采集点集合3和采集点集合5过滤出去,剩下采集点集合1、采集点集合2、采集点集合4、采集点集合6。
508: 针对每一个采集点集合,根据采集点集合中的各目标采集点的高度计算得到平均高度;
在一种实施例中,需要计算每个采集点集合中采集点的平均高度,例如,采集点集合1中采集点A1的高度为X
a1、A2的高度为X
a2、A3的高度为X
a3、A4的高度为X
a4、A5的高度为X
a5、A6的高度为X
a6、A7的高度为X
a7、A8的高度为X
a8,采集点集合1中采集点的平均高度为
,则
=(X
a1+X
a2+X
a3+X
a4+X
a5+X
a6+X
a7+X
a8)/8;采集点集合2中采集点B4的高度为X
b4、B5的高度为X
b5、B6的高度为X
b6、B7的高度为X
b7、B8的高度为X
b8,采集点集合2中采集点的平均高度为
,则
=(X
b4+X
b5+X
b6+X
b7+X
b8)/5;采集点集合4中采集点D8的高度为X
d8、E1的高度为X
e1、E2的高度为X
e2、E3的高度为X
e3,采集点集合4中采集点的平均高度为
,则
=(X
d8+X
e1+X
e2+X
e3)/4; 采集点集合6中采集点E6的高度为X
e6、E7的高度为X
e7、E8的高度为X
e8,采集点合6中采集点的平均高度为
,则
=(X
e6+X
e7+X
e8)/3。
509:采集点集合平均高度是否属于预设阈值区间,若采集点集合平均高度属于预设阈值区间,则该采集点集合为路沿点集合,若采集点集合平均高度不属于预设阈值区间,则该采集点集合为地面点集合。
在一种实施例中,因为路沿点相对于地面点存在10-20cm的高度差,所以路沿点集合的平均高度比路面点集合的平均高度要高10-20cm,因此,计算出各采集点集合的平均高度,判断采集点集合的平均高度是否在预设阈值区间内,如果在预设阈值内,则该采集点集合为路沿点集合,如果不在预设阈值区间内,则该采集点为路面点集合。假设采集点集合1的平均高度
和采集点集合2的平均高度
在预设的阈值区间,采集点集合4的平均高度
和采集点集合6的平均高度
不在预设的阈值区间内,则采集点集合1和采集点集合2为路沿点集合,采集点集合4和采集点集合6为路面点集合。确定各采集点集合为路面点或者路沿点类型集合后,就可以识别各采集点集合中的采集点是路沿点还是路面点,以上述内容为例,点云数据:A1、A2、A3、A4、A5、A6、A7、A8、B1、B2、B3、B4、B5、B6、B7、B8、C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、D8,E1、E2、E3、E4、E5、E6、E7、E8中的路沿点有:A1、A2、A3、A4、A5、A6、A7、A8、B4、B5、B6、B7、B8,路面点有:D8 、E1、E2、E3、E6、E7、E8;被过滤掉:B1、B2、B3,C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、E4、E5被过滤掉。
图6是本申请实施例提供的地面点优化方法流程示意图,在实际情况中,通过上述多种过滤方法,过滤掉路面的点云数据中一些干扰元素对应的数据,如:路边的电线杆等明显不属于地面元素的干扰元素,和一些不符合数量要求的点云数据,但是,在过滤的过程中可能会将一些被车辆或者行人等遮挡的地面点误过滤掉,因此,根据上述识别结果确定的各目标采集点中的地面点,对各目标采集点中的地面点进行平面拟合,得到目标平面,再通过比较已过滤的点云数据中的各采集点与目标平面的距离值与预设的阈值间的大小,将之前误过滤的地面点重新筛选出来,并将筛选选出来的点确定为地面点,请参阅图6,该地面点优化方法包括以下步骤:
601:根据识别结果确定各目标采集点中的地面点;
在一种实施例中,根据识别结果确定各目标采集点中的地面点,例如上述内容中地面点为:D8、E1、E2、E3、E6、E7、E8。
602:根据各目标采集点中的地面点进行平面拟合,得到目标平面;
在一种实施例中,根据上述已经确定好的地面点:D8、E1、E2、E3、E6、E7、E8,通过平面拟合的方式得到目标平面W和目标平面W的三维坐标方程。
603:计算已过滤的点云数据中各采集点与目标平面的距离值;
在一种实施例中,计算上述已经被过滤掉的点B1、B2、B3,C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、E4、E5分别与目标平面W的距离值。
604:各采集点与目标平面的距离值是否小于第二预设阈值,若采集点与目标平面的距离值小于第二预设阈值,则该采集点确定为地面点。
在一种实施例中,因为同一地面中地面点到所属平面的距离值会很小,且在一定的阈值范围内,所以可以根据上述过滤后的点带目标平后面W的距离值是否小于第二预设阈值来判断各过滤后的点是否为地面点,例如,上述被过滤后的点中采集点E4、E5到目标平面W的距离值小于第二预设阈值,其他采集点到目标平面W的距离值大于或等于低于预设阈值,所以上述所有过滤掉的点中只有E4、E5为地面点,所以点云数据组:A1、A2、A3、A4、A5、A6、A7、A8、B1、B2、B3、B4、B5、B6、B7、B8、C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、D8,E1、E2、E3、E4、E5、E6、E7、E8中的路沿点有:A1、A2、A3、A4、A5、A6、A7、A8、B4、B5、B6、B7、B8,路面点有:D8 、E1、E2、E3、E4、E5、E6、E7、E8。
在一种实施例中也可以根据所有的点云数据中采集点与目标平面W的距离值是否小于第二预设阈值来判断各过滤后的点是否为地面点,例如:分别计算点云数据组中所有采集点A1、A2、A3、A4、A5、A6、A7、A8、B1、B2、B3、B4、B5、B6、B7、B8、C1、C2、C3、C4、C5、C6、C7、C8、D1、D2、D3、D4、D5、D6、D7、D8,E1、E2、E3、E4、E5、E6、E7、E8到目标平面W的距离值,其中到目标平面W的距离值小于第二预设值的采集点为地面点。
图7是本申请实施例提供的路面的采集点识别装置的第一种结构示意图,请参阅图7,该路面的采集点识别装置包括以下模块:
获取模块701,用于获取路面的点云数据;
计算模块702,用于根据所述点云数据计算所述路面的各采集点的曲率;
划分模块703,用于根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
确定模块704,用于根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
识别模块705,用于根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
在一种实施例中,划分模块703具体用于:根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合,所述根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合的步骤,包括:
从所述各采集点中确定曲率大于所述预设划分曲率的参考采集点;
以所述参考采集点为分割点,对所述各采集点进行划分,得到各采集点集合。
在一种实施例中,确定模块704具体用于:根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合,其中,所述根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合的步骤,包括:
所述根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合的步骤,包括:
针对每一个所述采集点集合,根据所述采集点集合中的各目标采集点的高度计算得到平均高度;
若所述平均高度处于预设阈值区间,则确定所述采集点集合为路沿点集合;
若所述平均高度不处于所述预设阈值区间,则确定所述采集点集合为路面点集合。
图8是本申请实施例提供的路面的采集点识别装置的第二种结构示意图,请参阅图8,该路面的采集点识别装置包括以下模块:
获取模块801,用于获取路面的点云数据;
第一过滤模块806,用于过滤掉不符合要求的点云数据,得到点云数据簇;
计算模块802,用于根据所述点云数据计算所述路面的各采集点的曲率;
划分模块803,用于根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
第二过滤模块807,用于过滤掉不符合要求的采集点集合;
确定模块804,用于根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
识别模块805,用于根据确定后的所述各采集点集合确定所述各目标采集点的识别结果;
优化模块808,用于将过滤的过程中误过滤掉的一些地面点重新筛选出来,并将筛选选出来的点确定为地面点。
在一种实施例中,第一过滤模块806具体用于:对所述点云数据进行聚类,得到多个点云数据簇;针对每一个所述点云数据簇,判断所述点云数据簇中的采集点的数量是否大于第一预设阈值;若所述点云数据簇中的采集点的数量不大于所述第一预设阈值,则过滤所述点云数据簇;若所述点云数据簇中的采集点的数量大于所述第一预设阈值,则判断所述点云数据簇中的各采集点之间的最大高度差的绝对值是否小于第三预设阈值,若所述点云数据簇中的各采集点之间的最大高度差的绝对值小于所述第三预设阈值,则执行所述计算所述点云数据簇中的各采集点的曲率的步骤,若所述点云数据簇中的各采集点之间的最大高度差的绝对值不小于所述三预设阈值,则过滤所述点云数据簇。
在一种实施例中,划分模块803具体用于:从所述各采集点中确定曲率大于所述预设划分曲率的参考采集点;以所述参考采集点为分割点,对所述各采集点进行划分,得到各采集点集合。
在一种实施例中,第二过滤模块807具体用于:针对每一个采集点集合,判断所述采集点集合中的采集点的数量是否大于第四预设阈值;若所述采集点集合中的采集点的数量大于第四预设阈值,则根据所述采集点集合中的各目标采集点的参数信息,确定所述采集点集合为地面点集合或者路沿点集合;若所述采集点集合中的采集点的数量不大于第四预设阈值,则过滤所述采集点集合。
在一种实施例中,优化模块808具体用于:根据所述识别结果确定所述各目标采集点中的地面点;根据所述各目标采集点中的地面点进行平面拟合,得到目标平面;计算已过滤的所述点云数据簇中的各采集点与所述目标平面的距离值;将与所述目标平面的距离值小于第二预设阈值的采集点确定为地面点。
本申请实施例还提供一种服务器,如图9所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源904和输入单元903等部件。本领域技术人员可以理解,图9中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。
存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
服务器还包括给各个部件供电的电源904,优选的,电源904可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源904还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元903,该输入单元903可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示处理器等,在此不再赘述。具体在本实施例中,服务器中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:
获取路面的点云数据;
根据所述点云数据计算所述路面的各采集点的曲率;
根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对路面的采集点识别方法的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种路面的采集点识别方法中的步骤。例如,该指令可以执行如下步骤:
获取路面的点云数据;
根据所述点云数据计算所述路面的各采集点的曲率;
根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算器可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种路面的采集点识别方法的步骤,因此,可以实现本申请实施例所提供的任一种路面的采集点识别方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
同时,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。例如,实现以下功能:
获取路面的点云数据;
根据所述点云数据计算所述路面的各采集点的曲率;
根据所述各采集点的曲率以及预设划分曲率对所述各采集点进行划分,得到各采集点集合;
根据所述各采集点集合中的各目标采集点的参数信息,确定所述各采集点集合为地面点集合或者路沿点集合;
根据确定后的所述各采集点集合确定所述各目标采集点的识别结果。
以上对本申请实施例所提供的一种路面的采集点识别方法、装置及服务器进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。