发明内容
发明人进行分析后发现,由于相关技术的方法直接将数据的高度值与阈值进行比较,因而会将高度缓慢变化、而在某一点达到较高数值的物体误判为障碍物,例如斜坡、减速带等,而车辆实际上是可以安全通过的。此外,相关技术的方法也无法感知负向障碍物,例如树坑、井等等。因此,相关技术在进行障碍点检测时准确性较差。
本发明实施例所要解决的一个技术问题是:如何提高障碍点检测的准确性。
根据本发明一些实施例的第一个方面,提供一种障碍点检测方法,包括:采集车辆感测范围内的物体的三维数据点;获取三维数据点中待测点的检测数据对,检测数据对中的两个数据点分别为在待测点的两个相反的方向上的数据点;根据检测数据对中两个数据点的高度差确定待测点的阶差;在待测点的阶差大于预设高度值的情况下,将待测点确定为障碍点。
在一些实施例中,检测数据对中的两个数据点分别为在待测点的两个相反的方向上、最邻近待测点的数据点。
在一些实施例中,获取三维数据中待测点的多组检测数据对,其中,不同检测数据对中的数据点位于待测点的不同方向。
在一些实施例中,将多组检测数据对中两个数据点的高度差的最大值确定为待测点的阶差。
在一些实施例中,障碍点检测方法还包括:对车辆感测范围内的物体的三维数据点进行中值滤波。
在一些实施例中,采集车辆感测范围内的物体的三维数据点包括:采集感测范围内的物体的点云数据;对感测范围进行栅格化处理,将每个栅格中最高的点云数据作为该栅格的三维数据点。
在一些实施例中,障碍点检测方法还包括:根据检测数据对中两个数据点的高度差的符号,确定检测数据对对应的方向上的障碍点的朝向。
根据本发明一些实施例的第二个方面,提供一种障碍点检测装置,包括:数据点采集模块,被配置为采集车辆感测范围内的物体的三维数据点;检测数据对获取模块,被配置为获取三维数据点中待测点的检测数据对,检测数据对中的两个数据点分别为在待测点的两个相反的方向上的数据点;阶差确定模块,被配置为根据检测数据对中两个数据点的高度差确定待测点的阶差;障碍点确定模块,被配置为在待测点的阶差大于预设高度值的情况下,将待测点确定为障碍点。
在一些实施例中,检测数据对中的两个数据点分别为在待测点的两个相反的方向上、最邻近待测点的数据点。
在一些实施例中,检测数据对获取模块进一步被配置为获取三维数据中待测点的多组检测数据对,其中,不同检测数据对中的数据点位于待测点的不同方向。
在一些实施例中,阶差确定模块进一步被配置为将多组检测数据对中两个数据点的高度差的最大值确定为待测点的阶差。
在一些实施例中,障碍点检测装置还包括:中值滤波模块,被配置为对车辆感测范围内的物体的三维数据点进行中值滤波。
在一些实施例中,数据点采集模块进一步被配置为采集感测范围内的物体的点云数据;对感测范围进行栅格化处理,将每个栅格中最高的点云数据作为该栅格的三维数据点。
在一些实施例中,障碍点检测装置还包括:障碍朝向判断模块,被配置为根据检测数据对中两个数据点的高度差的符号,确定检测数据对对应的方向上的障碍点的朝向。
根据本发明一些实施例的第三个方面,提供一种障碍点检测装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种障碍点检测方法。
根据本发明一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种障碍点检测方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例能够检测车辆感测范围内的物体在短距离内的高度变化,从而能够准确地识别出车辆周围的障碍点、继而确定障碍物,并且计算简便,提高了车辆行驶的安全性和行驶效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的障碍点检测方法的流程图。如图1所示,该实施例的障碍点检测方法包括步骤S102~S108。
在步骤S102中,采集车辆感测范围内的物体的三维数据点。
三维数据点可以通过激光、雷达、红外线、摄像机等多种传感器获得,每个数据点包括该点处对应的物体的水平位置信息和高度信息。
车辆的感测范围可以根据障碍物检测需求以及传感器的检测能力决定。例如,在无人配送车的行驶场景中,无人配送车处于低速行驶状态,因而可以仅采集水平位置在无人配送车前方20m2内的三维数据点。
在一些实施例中,可以使用传感器采集感测范围内的物体的点云数据,再对感测范围进行栅格化处理,将每个栅格中最高的点云数据作为该栅格的三维数据点,进而得到车辆感测范围内的物体的三维数据点。栅格的分辨率可以根据需要确定,例如,无人配送车对应的栅格地图的分辨率可以为0.03~0.1m。
通过将采集的点云数据转换为高度栅格地图,可以降低参与计算的数据点,提高了障碍点检测效率,节约了计算资源。
当然,本领域技术人员也可以不采用将点云数据进行栅格化的方式,具体处理方式可以根据需要进行选择。
在步骤S104中,获取三维数据点中待测点的检测数据对,检测数据对中的两个数据点分别为在待测点的两个相反的方向上的数据点。
待测点通常可以提取四组方向不同检测数据对,例如包括待测点的前-后、左-右、左前-右后、右前-左后这几组不同方向上的数据对。本领域技术人员可以根据需要选择检测数据对的方向和数量。
在步骤S106中,根据检测数据对中两个数据点的高度差确定待测点的阶差。
当只提取了一组待测数据对时,可以直接将该待测数据对中两个数据的高度差的绝对值确定为待测点的阶差。
当提取了多组待测数据对时,可以将多组检测数据对中两个数据点的高度差的绝对值的最大值确定为待测点的阶差。
在步骤S108中,在待测点的阶差大于预设高度值的情况下,将待测点确定为障碍点。
如果待测点的阶差大于预设高度值,表明以待测点为基准、在极短的距离内产生了较大的距离差,从而说明待测点为障碍点。
如果待测点的阶差不大于预设高度值,可以将待测点确定为可通行点。
此外,还可以根据检测数据对中两个数据点的高度差的符号,确定检测数据对对应的方向上的障碍点的朝向,继而确定障碍物的朝向。例如,对于前-后检测数据对中的数据点,如果位于待测点前方的数据点与位于待测点后方的数据点的高度差为正数且大于预设高度值,则说明此处为正向障碍物,即凸起障碍物;如果位于待测点前方的数据点与位于待测点后方的数据点的高度差为负数、且该负数的绝对值大于预设高度值,则说明此处为负向障碍物,即凹陷障碍物,例如坑洞等。从而,可以进一步确定障碍物的朝向以便获知障碍物的类型。
通过上述实施例的方法,本发明能够检测车辆感测范围内的物体在短距离内的高度变化,从而能够准确地识别出车辆周围的障碍点、继而确定障碍物,并且计算简便,提高了车辆行驶的安全性和行驶效率。
在一些实施例中,检测数据对中的两个数据点可以分别为在待测点的两个相反的方向上、最邻近待测点的数据点。从而,可以尽可能小的尺度检测存在的障碍物,检测精度更高。
图2A为本发明一些实施例中的三维数据点的平面分布示意图。设图2A中的数据点20为待测点,待测点20周围的数据点依次采用21~28表示。设数据点22位于待测点20的前方,数据点28位于待测点20的左方。如果数据点21~28都有数值,则可以提取包括数据点22和26的前-后待测数据对、包括数据点28和24的左-右待测数据对、包括数据点21和25的左前-右后待测数据对、包括数据点23和27的右前-左后待测数据对中的一组或多组。
有时,会由于传感器灵敏度、传感器的工作状况或者传感器的覆盖范围产生车辆感测范围内的某些数据无法采集的情况。此时,可以设此处的点为空值、极小值(例如设为-1000)或者采用特殊符号进行标记。而由于这些位置没有采集到数值,因而无法参与高度差的计算,此时,可以选择与这些未采集的数值处于待测点的同一方向、并且具有数值的点。
图2B为本发明另一些实施例中的三维数据点的平面分布示意图。数据点20~27的设置参见图2A的设置。在图2B中,在左侧方向上距离待测点20最近的斜线填充的点没有数值,则继续向左搜索,直到在该方向上获取到有数值的点为止。在图2B中,在左侧最邻近待测点20的数据点为29,则可以将数据点29和24作为待测点20的左-右待测数据对。从而,在数据采集不全的情况下,本发明实施例的方法也可以正常执行。
在一些实施例中,检测数据对中的两个数据点也可以不是最邻近待测点的数据点。例如,检测数据对中的两个数据点可以分别为在待测点的两个相反的方向上、距离待测点的距离相等的数据点等等。本领域技术人员可以根据需要进行选择检测数据对的具体提取方式。
传感器采集的数据一般会具有噪声信息,会造成障碍物的误报。本发明可以对采集的三维数据点进行中值滤波处理,以降低噪声。中值滤波是将每一个点对应的信息值设置为该点某邻域窗口内的所有点的信息值的中值。下面参考图3描述本发明数据降噪方法的实施例。
图3为根据本发明一些实施例的数据降噪方法的流程图。如图3所示,该实施例的数据降噪方法包括步骤S302~S308。
在步骤S302中,获取三维数据点中的第一个待处理点。
在步骤S304中,获取待处理点以及待处理点的邻域窗口内其他数据点的高度值。
在步骤S306中,以步骤S304中获取的所有高度值的中值替换待处理点的高度值。
在步骤S308中,将三维数据点中的下一个数据点作为待处理点,并执行步骤S304。
可以按照一定的顺序来遍历三维数据点,例如以从左至右、从上至下的顺序进行遍历鞥的。
如果没有未处理的数据点,则中值滤波过程结束。
通过上述实施例的方法,可以对三维数据点进行降噪处理,从而,可以降低数据中的噪声以及错误信息,提高了障碍点检测的准确度。
本发明的一些实施例可以对车辆感测范围内的所有三维数据点依次进行处理。下面参考图4描述本发明障碍点检测方法的实施例。
图4为根据本发明一些实施例的障碍点检测方法的流程图。如图4所示,该实施例的障碍点检测方法包括步骤S402~S
在步骤S402中,采集车辆感测范围内的物体数据并进行栅格化,获得每个栅格对应的三维数据点,生成栅格地图。
以下为了简化叙述,将栅格对应的三维数据点的高度值称为栅格的高度值。设待测栅格为Hi,坐标值为(ui,vi,hi),i表示栅格的序号。
在步骤S404中,将栅格地图中的第一个栅格作为待测栅格。
此时,i=1,即当前的待测栅格为H1。
在步骤S406中,获得待测栅格在前-后、左-右、左前-右后、右前-左后方向上的待测数据对。
在步骤S408中,分别计算待测栅格的待测数据对中每对数据的高度差的绝对值。设待测栅格Hi的前-后、左-右、左前-右后、右前-左后方向上的四组数据对对应的高度差的绝对值分别为ΔFBi、ΔLRi、ΔLFRBi、ΔRFLBi。
在步骤S410中,确定待测栅格的待测数据对对应的高度差的绝对值的最大值,将其作为待测栅格的阶差。设待测栅格Hi的阶差为Gi,则Gi=max{ΔFBi,ΔLRi,ΔLFRBi,ΔRFLBi}。
在步骤S412中,根据待测栅格的阶差与预设高度值的比较结果对待测栅格进行标记。即,如果待测栅格的阶差大于预设高度值,则将待测栅格标记为障碍点;否则将待测栅格标记为可通行点。
在步骤S414中,判断待测栅格是否为栅格地图中的最后一个栅格。如果是,则结束流程;如果不是,则执行步骤S416。
在步骤S416中,将下一个栅格更新为待测栅格。即,采用i+1的值作为更新后的i值,并回到步骤S406。
在检测完毕所有栅格后,可以根据判断结果获得车辆的前方障碍信息以及可通行区域信息,以便车辆进行下一步的操作。
通过上述实施例的方法,可以对车辆的感测范围内的所有三维数据点进行检测。从而实现了车辆感测范围内的障碍点检测。
下面参考图5描述本发明障碍点检测装置的实施例。
图5为根据本发明一些实施例的障碍点检测装置的结构图。如图5所示,该实施例的障碍点检测装置50包括:数据点采集模块510,被配置为采集车辆感测范围内的物体的三维数据点;检测数据对获取模块520,被配置为获取三维数据点中待测点的检测数据对,检测数据对中的两个数据点分别为在待测点的两个相反的方向上的数据点;阶差确定模块530,被配置为根据检测数据对中两个数据点的高度差确定待测点的阶差;障碍点确定模块540,被配置为在待测点的阶差大于预设高度值的情况下,将待测点确定为障碍点。
在一些实施例中,检测数据对中的两个数据点可以分别为在待测点的两个相反的方向上、最邻近待测点的数据点。
在一些实施例中,检测数据对获取模块520可以进一步被配置为获取三维数据中待测点的多组检测数据对,其中,不同检测数据对中的数据点位于待测点的不同方向。
在一些实施例中,阶差确定模块530可以进一步被配置为将多组检测数据对中两个数据点的高度差的最大值确定为待测点的阶差。
在一些实施例中,障碍点检测装置50还可以包括:中值滤波模块550,被配置为对车辆感测范围内的物体的三维数据点进行中值滤波。
在一些实施例中,数据点采集模块510可以进一步被配置为采集感测范围内的物体的点云数据;对感测范围进行栅格化处理,将每个栅格中最高的点云数据作为该栅格的三维数据点。
在一些实施例中,障碍点检测装置50还可以包括:障碍朝向判断模块560,被配置为根据检测数据对中两个数据点的高度差的符号,确定检测数据对对应的方向上的障碍点的朝向。
图6为根据本发明另一些实施例的障碍点检测装置的结构图。如图6所示,该实施例的障碍点检测装置600包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的障碍点检测方法。
其中,存储器610例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图7为根据本发明又一些实施例的障碍点检测装置的结构图。如图7所示,该实施例的障碍点检测装置700包括:存储器710以及处理器720,还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种障碍点检测方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。