障碍物检测方法、装置与流程

文档序号:22117512发布日期:2020-09-04 15:45阅读:257来源:国知局
障碍物检测方法、装置与流程

本申请涉及移动机器人技术领域,具体而言,涉及一种障碍物检测方法、装置。



背景技术:

目前,自主导航的移动机器人日益广泛地应用于各种商业与工业环境中,其安全性也显得日益重要。为了提高移动机器人的安全性,避免机器人在工作过程中与人或障碍物发生碰撞,机器人需要具有强大的障碍物检测的功能。机器人障碍物检测的功能是指机器人根据传感器采集的数据,感知其周边环境中障碍物的信息,从而为机器人避障提供充足且准确的依据。只有准确地检测到机器人周边环境的障碍物信息,机器人才能更好地避免与之发生碰撞。

然而现有的机器人障碍物检测方法存在检测成本昂贵、检测精度不高、容易导致误检测等缺陷,不能满足机器人的障碍物检测需求。



技术实现要素:

本申请的实施例提供了一种障碍物检测方法、装置,进而至少在一定程度上能够提高检测精度,避免误检。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供了一种障碍物检测方法,包括:获取二维激光雷达探测到的激光点云数据以及三维视觉传感器采集到的深度图数据,所述二维激光雷达和所述三维视觉传感器均安装在移动载体上;对所述激光点云数据进行聚类处理,得到多个障碍点,将所述多个障碍点投射到栅格地图中,得到第一障碍物栅格地图;对所述深度图数据进行非地平面点提取处理,得到多个障碍点,将所述多个障碍点投射到所述栅格地图中,得到第二障碍物栅格地图;根据所述第一障碍物栅格地图和所述第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

根据本申请实施例的一个方面,提供了一种障碍物检测装置,包括:获取单元,配置为获取二维激光雷达探测到的激光点云数据以及三维视觉传感器采集到的深度图数据,所述二维激光雷达和所述三维视觉传感器均安装在移动载体上;聚类单元,配置为对所述激光点云数据进行聚类处理,得到多个障碍点,将所述多个障碍点投射到栅格地图中,得到第一障碍物栅格地图;提取单元,配置为对所述深度图数据进行非地平面点提取处理,得到多个障碍点,将所述多个障碍点投射到所述栅格地图中,得到第二障碍物栅格地图;检测单元,配置为根据所述第一障碍物栅格地图和所述第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

在本申请的一些实施例中,基于前述方案,所述聚类单元包括:排序子单元,配置为根据所述激光点云数据中各个激光点的极坐标所包含的角度值的大小进行激光点排序,得到排序后的激光点云数据;创建子单元,配置为将所述排序后的激光点云数据中的目标激光点在所述排序后的激光点云数据中对应的排序序号作为索引值,创建索引列表;查找子单元,配置为对于所述索引列表中相邻的两个索引值,从所述排序后的激光点云数据中查找所述相邻的两个索引值之间的所有激光点;确定子单元,配置为根据查找得到的激光点,确定多个障碍点。

在本申请的一些实施例中,基于前述方案,所述排序子单元还配置为:根据所述激光点云数据中的各个激光点的极坐标、激光角度分辨率,计算所述各个激光点对应的距离阈值;将与相邻激光点之间的距离大于对应的所述距离阈值的激光点确定为所述目标激光点。

在本申请的一些实施例中,基于前述方案,所述确定子单元还配置为:若查找到的相邻的两个索引值之间的所有激光点的数目大于预设阈值,则将查找到的激光点作为多个障碍点。

在本申请的一些实施例中,基于前述方案,所述确定子单元还配置为:对所述查找到的激光点进行坐标系转换处理,得到基于移动载体坐标系的激光点;从所述基于移动载体坐标系的激光点中移除超出所述移动载体的障碍物检测范围的激光点,将移除后的激光点作为多个障碍点。

在本申请的一些实施例中,基于前述方案,所述提取单元包括:第一获取子单元,配置为根据所述深度图数据获得基于移动载体坐标系的三维点云数据;第二获取子单元,配置为从所述三维点云数据中获取竖直方向坐标值小于第一预设阈值的像素点作为第一点云数据,并获取竖直方向坐标值大于等于所述第一预设阈值的像素点作为第二点云数据;非地平面点提取子单元,配置为提取所述第一点云数据中的非地平面点,得到第三点云数据;第三获取子单元,配置为根据所述第二点云数据和所述第三点云数据得到多个障碍点。

在本申请的一些实施例中,基于前述方案,所述第一获取子单元配置为:根据所述深度图数据,获取基于相机坐标系的三维点云数据;对所述基于相机坐标系的三维点云数据进行坐标系转换处理以及超出所述移动载体的障碍物检测范围的像素点的移除处理,获得基于移动载体坐标系的三维点云数据。

在本申请的一些实施例中,基于前述方案,所述非地平面点提取子单元配置为:根据所述第一点云数据中各个像素点的竖直方向坐标值的大小进行像素点排序,得到排序后的第一点云数据;计算排序前预设数量个像素点的竖直方向坐标值的平均值,并从所述排序后的第一点云数据中提取竖直方向坐标值小于所述平均值和第二预设阈值之和的像素点,得到地平面点列表;根据所述地平面点列表拟合出地平面,计算所述第一点云数据中的各个像素点到所述地平面的距离,将所述距离大于预设距离的像素点作为非地平面点,得到第三点云数据。

在本申请的一些实施例中,基于前述方案,所述检测单元配置为:将所述第一障碍物栅格地图和所述第二障碍物栅格地图中的一个障碍物栅格地图的障碍物区域与另一个障碍物栅格地图的障碍物区域、无障碍物区域和未知区域进行融合,得到融合后的障碍物区域;在所述融合后的障碍物区域进行障碍物检测,得到障碍物检测结果。

在本申请的一些实施例所提供的技术方案中,通过对获取的激光点云数据进行聚类处理,得到多个障碍点,以及对获取的深度图数据进行非地面点提取处理,得到多个障碍点,并将得到的多个障碍点投射到栅格地图中,分别得到第一障碍栅格地图和第二障碍栅格地图,并基于第一障碍栅格地图和第二障碍栅格地图进行障碍物检测确定障碍物。本申请实施例提供的方法,通过安装在移动载体上的二维激光雷达探测到的激光点云数据和三维视觉传感器采集到的深度图数据进行障碍物检测,既可以实现大范围的障碍物检测,降低了障碍物漏检的可能性,又可以提高障碍物检测的准确性,避免了障碍物误检问题,大大提升了用户体验。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了可以应用本申请实施例的技术方案的一个示例性系统架构的示意图;

图2示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图3示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图4示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图5示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图6示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图7示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图8示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图9示出了根据本申请的一个实施例的障碍物检测方法的流程图;

图10示出了根据本申请的一个实施例的障碍物检测装置的框图;

图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。

如图1所示,系统架构100可以包括移动载体101以及服务器102。移动载体101和服务器102之间通过网络进行连接,网络可以包括但不限于:无线网络、有线网络或者光纤电缆等等,有线网络包括但不限于以下至少之一:广域网、城域网、局域网。无线网络包括但不限于以下至少之一:蓝牙、wi-fi、近场通信(nearfieldcommunication,简称nfc)。

移动载体101可以是能够自主移动的机器人、无人车、无人船等可移动设备,移动载体101上可以设置有二维激光雷达1011和三维视觉传感器1012,对于二维激光雷达1011和三维视觉传感器1012的个数不进行特殊限定。二维激光雷达1011和三维视觉传感器1012用于对移动载体101周边环境的障碍物进行检测。移动载体101上还可以设置有处理单元1013,处理单元1013用于对移动载体101感知的数据进行处理、进行移动决策等。

服务器102可以是为移动载体101提供后台支持的服务器,可以对移动载体101感知的环境数据进行分析处理,并将分析处理结果反馈回移动载体101。

在本申请的应用场景中,移动载体101可以通过处理单元1013将二维激光雷达1011探测到的激光点云数据和三维视觉传感器1012采集到的深度图数据发送至服务器102,服务器102可以根据接收到的数据进行障碍物检测和识别,将检测和识别结果返回至移动载体101,移动载体101根据障碍物检测和识别结果进行移动决策。或者,服务器102还可以根据障碍物检测和识别结果进行移动决策,将决策指令反馈至移动载体101。

需要说明的是,服务器102可以是硬件,也可以是软件。当服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。

本申请的实施例所提供的障碍物检测方法可以由服务器102执行,相应地,障碍物检测装置可以设置于服务器102中。或者,本申请的实施例所提供的障碍物检测方法也可以由移动载体101上的处理单元1013执行,相应地,障碍物检测装置可以设置于移动载体101上的处理单元1013中。

应该理解,图1中的移动载体、网络、服务器、二维激光雷达、三维视觉传感器、处理单元的数目仅仅是示意性的。根据实现需要,可以具有任意数目的移动载体、网络、服务器、二维激光雷达、三维视觉传感器、处理单元。

以下对本申请实施例的技术方案的实现细节进行详细阐述:

图2示出了根据本申请的一个实施例的障碍物检测方法的流程图,该障碍物检测方法可以由服务器来执行,该服务器可以是图1中所示的服务器102,当然该障碍物检测方法也可以由处理单元来执行,比如可以由图1中所示的处理单元1013来执行。参照图2所示,所述方法包括:

步骤s210、获取二维激光雷达探测到的激光点云数据以及三维视觉传感器采集到的深度图数据,所述二维激光雷达和所述三维视觉传感器均安装在移动载体上;

步骤s220、对所述激光点云数据进行聚类处理,得到多个障碍点,将所述多个障碍点投射到栅格地图中,得到第一障碍物栅格地图;

步骤s230、对所述深度图数据进行非地平面点提取处理,得到多个障碍点,将所述多个障碍点投射到所述栅格地图中,得到第二障碍物栅格地图;

步骤s240、根据所述第一障碍物栅格地图和所述第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

下面对这些步骤进行详细描述。

在步骤s210中,获取二维激光雷达探测到的激光点云数据以及三维视觉传感器采集到的深度图数据,所述二维激光雷达和所述三维视觉传感器均安装在移动载体上。

由于使用二维激光雷达来进行障碍物检测,可以检测到大范围的障碍物,但采用二维激光雷达只能检测激光平面内的障碍物,高于或低于激光平面的障碍物均不能检测到,而使用三维视觉传感器来进行障碍物检测,可以检测到障碍物的三维信息,但三维视觉传感器的视野范围有限,在这个视野范围外的障碍物不能检测到。因此,本申请实施例通过获取二维激光雷达和三维视觉传感器所得到的数据来进行障碍物检测,这样一来,既可以获取近距离障碍物丰富的三维信息,也可以获取较大范围内的障碍物信息。

二维激光雷达和三维视觉传感器安装在同一移动载体上,上述激光点云数据和深度图数据可以是移动载体在同一位置处分别由二维激光雷达和三维视觉传感器得到的数据,例如,可以是同一时刻分别由二维激光雷达和三维视觉传感器得到的数据。

其中,二维激光雷达是一种感知传感器,其基本原理为主动对被探测对象发射激光脉冲信号,并获得其反射回来的脉冲信号,根据发射信号和接收信号之间的时间差计算被测对象距离探测器的深度信息,基于激光雷达的已知发射方向,获得被测对象相对激光雷达的角度信息,结合前述深度信息和角度信息得到海量的激光点(称为点云),得到激光点云数据。

在三维计算机图形中,深度图是包含与视点的场景对象的表面的距离有关的信息的图像或图像通道,深度图的每个像素值是传感器距离物体的实际距离。在本申请的具体实施例中,执行主体可以获取三维视觉传感器利用相机采集到的移动载体周围的深度图数据。

在本实施例中,上述执行主体可以通过与二维激光雷达和三维视觉传感器连接来获取激光点云数据和深度图数据。或者,上述执行主体可以从移动载体的存储单元存储的数据中分别获取激光点云数据和深度图数据。

步骤s220、对所述激光点云数据进行聚类处理,得到多个障碍点,将所述多个障碍点投射到栅格地图中,得到第一障碍物栅格地图。

在本实施例中,执行主体可以对激光点云数据中的各个激光点进行聚类,得到至少一个障碍点。具体地,执行主体可以利用聚类算法,对激光点云数据中的各个激光点进行聚类,得到至少一个聚类结果,每个聚类结果作为检测到的一个障碍点。例如,执行主体可以先将各个激光点进行区域划分,得到至少一个候选区域;然后对各个候选区域内的各个激光点进行聚类。若某一个候选区域内的激光点比较集中,则执行主体可以将该候选区域内的激光点进行聚类,得到该候选区域内的至少一个障碍点。

在得到多个障碍点后,可以将多个障碍点投射到栅格地图中,也即是,将障碍点对应的坐标转换到栅格坐标系中,具体的,在该方法中,可以以移动载体为原点建立栅格坐标系,其中,栅格坐标系可以是直角坐标系,也可以是极坐标系。通过将障碍点对应的坐标转换为栅格坐标系中的坐标,投射到栅格地图中,从而可以得到第一障碍物栅格地图。

步骤s230、对所述深度图数据进行非地平面点提取处理,得到多个障碍点,将所述多个障碍点投射到所述栅格地图中,得到第二障碍物栅格地图。

三维视觉传感器可以获取深度图数据,这些深度图数据包含了移动载体周围环境下的点的三维信息。由于三维视觉传感器安装在移动载体上,所以深度图数据中会有很大一部分点位于地平面上,其余一部分点在三维空间中。基于这样的特点,可以对深度图数据进行非地平面点提取处理,得到多个障碍点,使得地平面部分与障碍物部分更加准确地分离开来,从而提高了障碍物检测的精确性。

如前所述,在得到障碍点后,可以通过将障碍点对应的坐标转换为栅格坐标系中的坐标,实现将障碍点投射到栅格地图中,从而可以得到第二障碍物栅格地图。

步骤s240、根据所述第一障碍物栅格地图和所述第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

由于第一障碍物栅格地图是对二维激光雷达探测到的激光点云数据进行处理后得到的,第二障碍物栅格地图是对三维视觉传感器采集到的深度图数据进行处理后得到的,第一障碍物栅格地图和第二障碍物栅格地图都包含有检测到的障碍物,因此,可以根据第一障碍物栅格地图和第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

在一个实施例中,可以是根据第一障碍物栅格地图和第二障碍物栅格地图融合得到障碍物栅格地图,并根据障碍栅格地图中的障碍栅格中点的坐标,判断障碍物的位置,并采用模板匹配算法,确定障碍物的形状。

通过以上实施例提供的技术方案,通过安装在移动载体上的二维激光雷达探测到的激光点云数据和三维视觉传感器采集到的深度图数据进行障碍物检测,既可以实现大范围的障碍物检测,降低了障碍物漏检的可能性,又可以提高障碍物检测的准确性,避免了障碍物误检问题,大大提升了用户体验。

在本申请的一个实施例中,如图3所示,步骤s220可以包括如下步骤s2201至s2204,详细说明如下:

步骤s2201、根据所述激光点云数据中各个激光点的极坐标所包含的角度值的大小进行激光点排序,得到排序后的激光点云数据。

由于从二维激光雷达处获取激光点云数据是共面且以激光雷达为中心进行分布的,因此在以激光雷达为中心的极坐标系中,各个激光点的极坐标可以表示为[r,θ],其中,r为激光点相对于激光雷达的半径值,θ为激光点相对于激光雷达的角度值。

将各个激光点按照角度值进行排序,排序的方式可以是按照角度值从小到大进行排序,也可以是按照角度值从大到小进行排序,从而,得到排序后的激光点云数据。

步骤s2202、将所述排序后的激光点云数据中的目标激光点在所述排序后的激光点云数据中对应的排序序号作为索引值,创建索引列表。

具体的,在对激光点云数据进行排序之后,可以构建索引列表,该索引列表用于存放索引值,初始化时,可以先将索引列表中的第一个索引值设置为0,最后一个索引值设置为激光点云数据中激光点的总数量,其余的索引值是目标激光点在排序后的激光点云数据中对应的排序序号。

举例说明,通过步骤s2201得到排序后的激光点云数据point_list=([r1,θ1],[r2,θ2],[r3,θ3],[r4,θ4],[r5,θ5],[r6,θ6]),该point_list中包括了6个激光点,假设[r1,θ1],[r2,θ2],[r4,θ4],[r5,θ5]均为目标激光点,则创建得到的索引列表为idx_list={0,1,2,4,5,6}。

在本申请的一个实施例中,激光点云数据中包含了海量的激光点,这些激光点共面且以激光雷达为中心进行分布,在海量激光点中确定目标激光点的方法,如图4所示,可以包括步骤s410至步骤s420:

步骤s410、根据所述激光点云数据中的各个激光点的极坐标、激光角度分辨率,计算所述各个激光点对应的距离阈值;

步骤s420、将与相邻激光点之间的距离大于对应的所述距离阈值的激光点确定为所述目标激光点。

在步骤s410中,可以通过如下公式计算各个激光点对应的距离阈值dth:

其中,δ为激光角度分辨率,c和σ为预先设置的常数,ri为在排序后的激光点云数据中排序为i的激光点的半径值。

步骤s420中,将与相邻激光点之间的距离大于对应的所述距离阈值的激光点确定为所述目标激光点。

具体的,可以通过如下公式计算第i个激光点与相邻第i+1个激光点的距离d:

如果d>dth,则确定激光点[ri,θi]为目标激光点。

继续参见图3,步骤s2203、对于所述索引列表中相邻的两个索引值,从所述排序后的激光点云数据中查找所述相邻的两个索引值之间的所有激光点。

在该步骤中,当创建索引列表之后,可以从排序后的激光点云数据中查找索引列表中相邻的两个索引值之间的所有激光点。

值得说明的是,为了避免查找得到的激光点重复,查找相邻的两个索引值之间的所有激光点可以包括相邻的两个索引值中前一个索引值对应的激光点,也可以包括相邻的两个索引值中后一个索引值对应的激光点,但不能是同时包括相邻的两个索引值分别对应的激光点。

继续上面的例子进行说明,排序后的激光点云数据point_list=([r1,θ1],[r2,θ2],[r3,θ3],[r4,θ4],[r5,θ5],[r6,θ6]),假设[r1,θ1],[r2,θ2],[r4,θ4],[r5,θ5]均为目标激光点,则创建得到的索引列表为idx_list={0,1,2,4,5,6},因此,查找相邻的两个索引值之间的所有激光点可以得到索引值0和1之间没有激光点,索引值1和2之间的所有激光点为object1=([r1,θ1]),索引值2和4之间的所有激光点为object2=([r2,θ2],[r3,θ3]),索引值4和5之间的所有激光点为object3=([r4,θ4]),索引值5和6之间的所有激光点为object4=([r5,θ5])

步骤s2204、根据查找得到的激光点,确定多个障碍点。

如前所述,在查找得到相邻索引值之间的所有激光点之后,则可以确定出多个障碍点。例如,继续前面的例子,通过查找相邻索引值之间的所有激光点可以获取到object1、object2、object3、object4,每一个object都可以作为一个障碍点,因此,可以获取到4个障碍点。

为了提高障碍物检测结果的准确度,可以在查找得到多个激光点之后,判断查找到的激光点是否为噪声,若是,则对激光点进行移除,在一个实施例中,判断查找到的激光点是否为噪声的方法可以根据相邻的两个索引值之间的所有激光点的数目进行判定,在该实施例中,步骤s2204具体包括:

若查找到的相邻的两个索引值之间的所有激光点的数目大于预设阈值,则将查找到的激光点作为多个障碍点。

在该实施例中,可以通过设定预设阈值判定查找到的相邻索引值之间的所有激光点是否可以作为障碍点,当查找到的相邻的两个索引值之间的所有激光点的数目大于预设阈值,则将查找到的激光点作为多个障碍点,当查找到的相邻的两个索引值之间的所有激光点的数目小于等于预设阈值,则将其视为噪声进行移除。

继续上面的例子,通过查找相邻索引值之间的所有激光点可以得到索引值1和2之间的所有激光点为object1=([r1,θ1]),索引值2和4之间的所有激光点为object2=([r2,θ2],[r3,θ3]),索引值4和5之间的所有激光点为object3=([r4,θ4]),索引值5和6之间的所有激光点为object4=([r5,θ5]),当预设阈值为1时,则可以判断object1、object3、object4为噪声,可以将其进行移除,而object2可以作为一个障碍点。

在本申请的一个实施例中,为了提到障碍物检测精度,在查找得到激光点后,还可以对查找到的激光点进行坐标系转换处理,得到基于移动载体坐标系的激光点,从而可以从基于移动载体坐标系的激光点中移除超出移动载体的障碍物检测范围的激光点,如图5所示,所述方法还包括:

步骤s510、对所述查找到的激光点进行坐标系转换处理,得到基于移动载体坐标系的激光点;

步骤s520、从所述基于移动载体坐标系的激光点中移除超出所述移动载体的障碍物检测范围的激光点,将移除后的激光点作为多个障碍点。

对查找到的激光点进行坐标系转换处理,将基于极坐标系的激光点转换成基于移动载体坐标系的激光点,并根据移动载体的障碍物检测范围(x_min,x_max,y_min,y_max,z_min,z_max)将查找到的激光点中位于障碍物检测范围以外的像素点进行移除,将移除后的激光点作为多个障碍点。

在本申请的一个实施例中,如图6所示,步骤s230可以包括如下步骤s2301至步骤s2304,详细说明如下:

步骤s2301、根据所述深度图数据获得基于所述移动载体坐标系的三维点云数据。

具体的,在获取到三维视觉传感器利用相机采集到的深度图数据后,可以根据相机内参和深度图数据,获得基于相机坐标系的三维点云数据,然后将基于相机坐标系的三维点云数据转换为基于移动载体坐标系的三维点云数据。

步骤s2302、从所述三维点云数据中获取竖直方向坐标值小于第一预设阈值的像素点作为第一点云数据,并获取竖直方向坐标值大于等于所述第一预设阈值的像素点作为第二点云数据。

可以理解的是,移动载体坐标系包括了x轴、y轴以及z轴,其中,x轴、y轴和z轴相互垂直,x轴与y轴为水平轴,该水平轴与地面平行,其中,移动载体前进方向可以由x轴表示,也可以由y轴表示,z轴为竖直轴,该竖直轴与地面垂直。

具体到该步骤,从三维点云数据中获取竖直方向坐标值小于第一预设阈值的像素点作为第一点云数据,并获取竖直方向坐标值大于等于第一预设阈值的像素点作为第二点云数据,也即是获取z坐标值小于第一预设阈值的像素点作为第一点云数据,获取z坐标值大于等于第一预设阈值的像素点作为第二点云数据。

需要解释的是,第一预设阈值的大小可以根据移动载体的中心距离地面高度进行设置,因为三维点云数据中的像素点是基于移动载体坐标系来描述,而移动载体的z轴是垂直于地面且方向向上,因此可以很容易获取到地面在移动载体坐标系中的方程为z=zth,由移动载体的机构设计易知,移动载体坐标系原点距离地面高度为z0,那么就可以得到地面在移动载体坐标系中的方程为:z=zth=z0+δz,其中,δz为一个裕量,其值可以是5-10cm。因此,在设定了第一预设阈值zth后,可以获取三维点云数据中z坐标值小于zth的像素点作为第一点云数据,该第一点云数据中包括了地面部分的所有像素点,当然,它也包含了一些低矮障碍物的像素点,对于这些低矮障碍物点可以通过后续步骤中的方法进行提取。

通过从三维点云数据中获取出第一点云数据和第二点云数据,进而可以直接从第二点云数据中提取非地平面点,相比于从三维点云数据中提取非地平面点,第一点云数据中的像素点的数目大幅减少,有利于降低计算量,大大地提升处理效率。

步骤s2303、提取所述第一点云数据中的非地平面点,得到第三点云数据。

如前所述,第一点云数据中包含了地面部分的所有像素点,同时也包含了一些低矮障碍物的像素点,这些低矮障碍物的像素点即在该步骤中需要提取出的非地平面点。

步骤s2304、根据所述第二点云数据和所述第三点云数据得到多个障碍点。

具体的,在通过步骤s2302获取到第二点云数据,以及通过步骤s2303获取到第三点云数据后,由于第二点云数据和第三点云数据中都包含有检测到的障碍点,因此,可以直接从第二点云数据和第三点云数据中获取到多个障碍点。

通过以上实施例的技术方案,首先利用z坐标值与第一预设阈值的比较结果,获取第一点云数据和第二点云数据,从而区分出了地面部分以及非地面部分,由于第一点云数据所描述的地面部分可能仍然包含障碍物点,因此,进一步对第一点云数据进行非地平面点提取,得到第三点云数据,最后,根据第二点云数据与第三点云数据得到多个障碍点,相比于从三维点云数据中直接提取非地平面点,本申请实施例大大降低计算量,提升了处理效率。

在本申请的一个实施例中,为了提高障碍物检测准确性,还可以对超出移动载体的障碍物检测范围的像素点进行移除处理,如图7所示,步骤s2301具体包括步骤s23011至步骤s23012,现详细说明如下:

步骤s23011、根据所述深度图数据,获取基于相机坐标系的三维点云数据。

具体而言,在获取到三维视觉传感器利用相机采集到的深度图数据后,可以根据相机内参和深度图数据,获得基于相机坐标系的三维点云数据,即计算获得深度图像中所有像素点在相机坐标系中的实际位置(x,y,z);其中,x表示像素点对应实际物体点到相机中心的横向距离,y表示像素点对应实际物体点到相机中心的纵向距离,z表示像素点对应实际物体点到相机中心的深度距离,

步骤s23012、对所述基于相机坐标系的三维点云数据进行坐标系转换处理以及超出所述移动载体的障碍物检测范围的像素点的移除处理,获得基于移动载体坐标系的三维点云数据。

在获取到基于相机坐标系的三维点云数据后,进行坐标系转换,转换成移动载体坐标系,并根据移动载体的障碍物检测范围(x_min,x_max,y_min,y_max,z_min,z_max)将三维点云数据中位于障碍物检测范围以外的像素点进行移除,最后得到基于移动载体坐标系的三维点云数据。

在本申请的一个实施例中,如图8所示,步骤s2303具体包括:

步骤s23031、根据所述第一点云数据中各个像素点的竖直方向坐标值的大小进行像素点排序,得到排序后的第一点云数据;

步骤s23032、计算排序前预设数量个像素点的竖直方向坐标值的平均值,并从所述排序后的第一点云数据中提取竖直方向坐标值小于所述平均值和第二预设阈值之和的像素点,得到地平面点列表;

步骤s23033、根据所述地平面点列表拟合出地平面,计算所述第一点云数据中的各个像素点到所述地平面的距离,将所述距离大于预设距离的像素点作为非地平面点,得到第三点云数据。

在步骤s23031中,根据所述第一点云数据中各个像素点的竖直方向坐标值的大小进行像素点排序,得到排序后的第一点云数据。

在通过获取到第一点云数据中,对第一点云数据中各个像素点进行排序,排序的方法可以是按照第一点云数据中各个像素点的z坐标值从小到大进行排序,也可以是按照第一点云数据中各个像素点的z坐标值从大到小进行排序,本申请实施例在此不做特殊限定。

通过像素点排序,可以得到排序后的第一点云数据。

步骤s23032、计算排序前预设数量个像素点的竖直方向坐标值的平均值,并从所述排序后的第一点云数据中提取竖直方向坐标值小于所述平均值和第二预设阈值之和的像素点,得到地平面点列表。

其中,在得到排序后的第一点云数据后,可以取出前预设数量个像素点,计算所取出的预设数量个像素点的z坐标值的平均值,并从排序后的第一点云数据中提取出z坐标值小于该平均值和第二预设阈值之和的像素点,形成地平面点列表。

举例说明,用sort_rgc表示排序后的第一点云数据,则从sort_rgc取出前预设数量ninit个像素点,计算出这ninit个像素点的z坐标值的平均值zavg,设定第二阈值zinit,遍历sort_rgc中的像素点,将sort_rgc中z<zavg+zinit的所有像素点提取出来,形成地平面点列表gpl。

步骤s23033、根据所述地平面点列表拟合出地平面,计算所述第一点云数据中的各个像素点到所述地平面的距离,将所述距离大于预设距离的像素点作为非地平面点,得到第三点云数据。

在得到地平面点列表之后,可以利用最小二乘法拟合出地平面,计算第一点云数据中的各个像素点到地平面的距离,将计算得到的距离大于预设距离的像素点作为非地平面点,得到第三点云数据,第三点云数据中的像素点是不属于地平面的像素点。

在本申请的一个实施例中,根据第一障碍物栅格地图和第二障碍物栅格地图进行障碍物检测可以是将两个障碍物栅格地图的各个区域进行融合,从而在融合后的区域中进行障碍物检测,如图9所示,步骤s240具体包括步骤s2401至步骤s2402,现详细说明如下:

步骤s2401、将所述第一障碍物栅格地图和所述第二障碍物栅格地图中的一个障碍物栅格地图的障碍物区域与另一个障碍物栅格地图的障碍物区域、无障碍物区域和未知区域进行融合,得到融合后的障碍物区域。

具体的,由激光点云数据可以得到第一障碍物栅格地图,将其记为map1,由深度图数据可以得到第二障碍物栅格地图,记为map2。

可以理解的是,由于第一障碍物栅格地图和第二障碍物栅格地图都是通过障碍点投射到同一栅格地图所得到的,因此,map1和map2的大小相同,坐标相同,每个栅格所代表的实际尺寸也相同。

还应当理解的是,在得到第一障碍物栅格地图和第二障碍物栅格地图后,可以分别在第一障碍物栅格地图和第二障碍物栅格地图上标记出:障碍物区域,无障碍物区域以及未知区域。其中,未知区域是未被检测到的区域。

具体到本步骤中,为了进行障碍物检测,可以将第一障碍物栅格地图和第二障碍物栅格地图中的一个障碍物栅格地图的障碍物区域与另一个障碍物栅格地图的障碍物区域、无障碍物区域和未知区域进行融合,得到融合后的障碍物区域。

步骤s2402、在所述融合后的障碍物区域进行障碍物检测,得到障碍物检测结果。

在第一障碍物栅格地图和第二障碍物栅格地图进行融合得到障碍物区域后,可以直接根据融合后的障碍物区域进行障碍物检测,得到障碍物检测结果,即障碍物的位置、形状、大小等多个检测信息。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的障碍物检测方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的障碍物检测方法的实施例。

图10示出了根据本申请的一个实施例的障碍物检测装置的框图,参照图10所示,根据本申请的一个实施例的障碍物检测装置1000,包括:获取单元1002、聚类单元1004、提取单元1006和检测单元1008。

其中,获取单元1002,配置为获取二维激光雷达探测到的激光点云数据以及三维视觉传感器采集到的深度图数据,所述二维激光雷达和所述三维视觉传感器均安装在移动载体上;聚类单元1004,配置为对所述激光点云数据进行聚类处理,得到多个障碍点,将所述多个障碍点投射到栅格地图中,得到第一障碍物栅格地图;提取单元1006,配置为对所述深度图数据进行非地平面点提取处理,得到多个障碍点,将所述多个障碍点投射到所述栅格地图中,得到第二障碍物栅格地图;检测单元1008,配置为根据所述第一障碍物栅格地图和所述第二障碍物栅格地图进行障碍物检测,得到障碍物检测结果。

在本申请的一些实施例中,所述聚类单元1004包括:排序子单元,配置为根据所述激光点云数据中各个激光点的极坐标所包含的角度值的大小进行激光点排序,得到排序后的激光点云数据;创建子单元,配置为将所述排序后的激光点云数据中的目标激光点在所述排序后的激光点云数据中对应的排序序号作为索引值,创建索引列表;查找子单元,配置为对于所述索引列表中相邻的两个索引值,从所述排序后的激光点云数据中查找所述相邻的两个索引值之间的所有激光点;确定子单元,配置为根据查找得到的激光点,确定多个障碍点。

在本申请的一些实施例中,所述排序子单元还配置为:根据所述激光点云数据中的各个激光点的极坐标、激光角度分辨率,计算所述各个激光点对应的距离阈值;将与相邻激光点之间的距离大于对应的所述距离阈值的激光点确定为所述目标激光点。

在本申请的一些实施例中,所述确定子单元还配置为:若查找到的相邻的两个索引值之间的所有激光点的数目大于预设阈值,则将查找到的激光点作为多个障碍点。

在本申请的一些实施例中,所述确定子单元还配置为:对所述查找到的激光点进行坐标系转换处理,得到基于移动载体坐标系的激光点;从所述基于移动载体坐标系的激光点中移除超出所述移动载体的障碍物检测范围的激光点,将移除后的激光点作为多个障碍点。

在本申请的一些实施例中,所述提取单元1006包括:第一获取子单元,配置为根据所述深度图数据获得基于移动载体坐标系的三维点云数据;第二获取子单元,配置为从所述三维点云数据中获取竖直方向坐标值小于第一预设阈值的像素点作为第一点云数据,并获取竖直方向坐标值大于等于所述第一预设阈值的像素点作为第二点云数据;非地平面点提取子单元,配置为提取所述第一点云数据中的非地平面点,得到第三点云数据;第三获取子单元,配置为根据所述第二点云数据和所述第三点云数据得到多个障碍点。

在本申请的一些实施例中,所述第一获取子单元配置为:根据所述深度图数据,获取基于相机坐标系的三维点云数据;对所述基于相机坐标系的三维点云数据进行坐标系转换处理以及超出所述移动载体的障碍物检测范围的像素点的移除处理,获得基于移动载体坐标系的三维点云数据。

在本申请的一些实施例中,所述非地平面点提取子单元配置为:根据所述第一点云数据中各个像素点的竖直方向坐标值的大小进行像素点排序,得到排序后的第一点云数据;计算排序前预设数量个像素点的竖直方向坐标值的平均值,并从所述排序后的第一点云数据中提取竖直方向坐标值小于所述平均值和第二预设阈值之和的像素点,得到地平面点列表;根据所述地平面点列表拟合出地平面,计算所述第一点云数据中的各个像素点到所述地平面的距离,将所述距离大于预设距离的像素点作为非地平面点,得到第三点云数据。

在本申请的一些实施例中,所述检测单元1008配置为:将所述第一障碍物栅格地图和所述第二障碍物栅格地图中的一个障碍物栅格地图的障碍物区域与另一个障碍物栅格地图的障碍物区域、无障碍物区域和未知区域进行融合,得到融合后的障碍物区域;在所述融合后的障碍物区域进行障碍物检测,得到障碍物检测结果。

图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图11所示,计算机系统1100包括中央处理单元(centralprocessingunit,cpu)1101,其可以根据存储在只读存储器(read-onlymemory,rom)1102中的程序或者从存储部分1108加载到随机访问存储器(randomaccessmemory,ram)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram1103中,还存储有系统操作所需的各种程序和数据。cpu1101、rom1102以及ram1103通过总线1104彼此相连。输入/输出(input/output,i/o)接口1105也连接至总线1104。

以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan(localareanetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1