掌桥专利:专业的专利平台
掌桥专利
首页

一种障碍物检测的方法及装置

文献发布时间:2023-06-19 10:46:31


一种障碍物检测的方法及装置

技术领域

本说明书涉及无人驾驶领域,尤其涉及一种障碍物检测的方法及装置。

背景技术

在无人驾驶领域中,激光雷达和摄像头是无人驾驶设备的重要传感器,用来检测周围的障碍物。为了达到更好的障碍物检测效果,往往需要将两个传感器的数据进行关联。具体的,两个传感器每帧会检测出多个障碍物,在这多个障碍物中,两个传感器可能会检测到相同的障碍物,无人驾驶设备需要将两个传感器检测到的相同障碍物进行关联。在关联障碍物的过程中,可能会将不相同的障碍物进行关联,产生错误的关联障碍物,也可能会将相同的障碍物漏关联,导致结果出现多个相同的障碍物。

因此,如何能够有效地提高障碍物关联的准确性,则是一个亟待解决的问题。

发明内容

本说明书提供一种障碍物检测的方法及装置,以部分的解决现有技术存在的上述问题。

本说明书采用下述技术方案:

本说明书提供了一种障碍物检测的方法,包括:

获取指定设备在当前时刻对应的点云数据以及图像数据;

针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,并根据所述点云信息,确定该第一障碍物与所述点云数据中涉及的各障碍物之间的相似度,作为第一相似度,以及针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,并根据所述图像信息,确定该第二障碍物与所述图像数据中涉及的各障碍物之间的相似度,作为第二相似度;

根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果;

根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

可选地,针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,具体包括:

针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的障碍物类别;

根据所述障碍物类别,确定该第一障碍物对应的点云信息,所述点云信息中包含有针对所述障碍物类别对应的预设障碍物尺寸。

可选地,针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,具体包括:

针对所述点云数据中涉及的每个第二障碍物,从所述点云数据选取出该第二障碍物对应的若干采样点;

确定该第二障碍物对应的若干采样点在二维平面中的投影信息,以得到该第二障碍物对应的图像信息。

可选地,根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果,具体包括:

确定第一序列以及第二序列,所述第一序列中包含有所述图像数据中涉及的各第一障碍物对应的第一相似度,所述第二序列中包含有所述点云数据中涉及的各第二障碍物对应的第二相似度;

针对所述第二序列中的每个排序位置,根据该排序位置对应的第二相似度以及所述第一序列中包含的各第一相似度,确定该排序位置对应的综合相似度;

根据所述第二序列中每个排序位置对应的综合相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果。

可选地,根据所述第二序列中每个排序位置对应的综合相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果,具体包括:

从所述第二序列中确定出综合相似度不低于第一设定相似度的排序位置,作为第一目标排序位置;

根据所述第一目标排序位置在所述图像数据中对应的第一障碍物以及在所述点云数据中对应的第二障碍物,确定所述第一匹配结果。

可选地,所述方法还包括:

从所述第二序列中确定出综合相似度低于第一设定相似度的排序位置,作为候选排序位置;

从所述候选排序位置中确定出第二相似度不低于第二设定相似度的排序位置,作为第二目标排序位置;

根据所述第二目标排序位置在所述图像数据中对应的第一障碍物以及在所述点云数据中对应的第二障碍物,确定针对所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第二匹配结果。

可选地,根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测,具体包括:

根据所述第一匹配结果以及所述第二匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

本说明书提供了一种障碍物检测的装置,包括:

获取模块,用于获取指定设备在当前时刻对应的点云数据以及图像数据;

确定模块,用于针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,并根据所述点云信息,确定该第一障碍物与所述点云数据中涉及的各障碍物之间的相似度,作为第一相似度,以及针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,并根据所述图像信息,确定该第二障碍物与所述图像数据中涉及的各障碍物之间的相似度,作为第二相似度;

匹配模块,用于根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果;

检测模块,用于根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述障碍物检测的方法。

本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述障碍物检测的方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书提供的障碍物检测的方法中,获取指定设备在当前时刻对应的点云数据以及图像数据。针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,并根据所述点云信息,确定该第一障碍物与所述点云数据中涉及的各障碍物之间的相似度,作为第一相似度,以及针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,并根据所述图像信息,确定该第二障碍物与所述图像数据中涉及的各障碍物之间的相似度,作为第二相似度。而后,根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果。最后,根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

从上述方法中可以看出,由于本方法能够在点云数据下将图像数据中涉及的每个第一障碍物与点云数据中涉及的每个第二障碍物进行匹配,以及能够在图像数据下将点云数据中涉及的每个第二障碍物与图像数据中涉及的每个第一障碍物进行匹配,这样可以保证图像数据与点云数据中涉及的每个障碍物能够充分关联,从而有效地提高了障碍物匹配的准确性,保证了指定设备的安全行驶。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书中一种障碍物检测的方法的流程示意图;

图2为本说明书中一种指定设备应用障碍物检测方法的流程示意图;

图3A、3B为本说明书提供的将第一障碍物对应的点云信息在点云数据中进行投影的示意图;

图4为本说明书提供的一种障碍物检测的装置示意图;

图5为本说明书提供的对应于图1的电子设备示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

在现有技术中,无人驾驶设备可以将两个传感器检测到的相同障碍物进行关联,由于两个传感器的障碍物检测原理不同以及检测范围不同,可能导致障碍物检测结果出现误差,因此,需要设定阈值来过滤相似度较低的障碍物匹配结果。然而在实际使用过程中,采用统一的设定阈值来过滤障碍物的匹配结果,将会出现障碍物关联错误的情况。具体的,若设定阈值设置的过低,可能导致会将不相同的障碍物进行关联,即,产生错误的关联障碍物,而若设定阈值设置的过高,可能导致会将相同的障碍物漏关联。

为了解决以上问题,本说明书提供了一种障碍物检测的方法,获取指定设备在当前时刻对应的点云数据以及图像数据,根据图像数据中涉及的每个第一障碍物在点云数据中对应的障碍物位置与尺寸,再与点云数据中涉及的每个第二障碍物进行相似度计算,得到第一相似度,同样的,根据点云数据中涉及的每个第二障碍物在图像数据中对应的障碍物位置与尺寸,再与图像数据中涉及的每个第一障碍物进行相似度计算,得到第二相似度,根据第一相似度以及第二相似度,确定第一匹配结果,进而根据该第一匹配结果,对当前时刻位于指定设备周围的障碍物进行检测,这样可以保证图像数据与点云数据中涉及的每个障碍物能够充分关联,从而有效地提高了障碍物匹配的准确性,保证了指定设备的安全行驶。

图1为本说明书中一种障碍物检测的方法的流程示意图,具体包括以下步骤:

S100:获取指定设备在当前时刻对应的点云数据以及图像数据。

在本说明书实施例中,指定设备在运动过程中,可以采集指定设备周围的障碍物在当前时刻对应的点云数据以及图像数据,其中,这里提到的点云数据可以是通过指定设备上设置的激光雷达获取到的数据,图像数据则可以是通过指定设备上设置的摄像机获取到的数据,其中,摄像机可以为任意类型的摄像机,例如广角摄像机、高清摄像机。

本说明书提到的指定设备可以是指在运动过程中进行数据采集的设备,如有人驾驶的汽车、有人操控的机器人等有人操控设备。若是指定设备为有人操控设备,则本说明书提供的障碍物的检测方法可以在人为控制指定设备时,向驾驶员或是操控员提供操控的辅助信息,如,提示驾驶员注意避让障碍物等。当然,指定设备也可以是指无人驾驶设备、机器人、自动配送设备等能够实现自动驾驶的设备。为了便于描述,下面仅以无人驾驶设备为执行主体,对本说明书提供的障碍物检测的方法进行说明。

基于此,应用本说明书提供的障碍物检测的方法的无人驾驶设备可以用于执行配送领域的配送任务,如,使用无人驾驶设备进行快递、物流、外卖等配送的业务场景。

指定设备可以获取指定设备周围在当前时刻对应的点云数据以及图像数据。其中,该指定设备可以通过获取到的点云数据,得到指定设备周围的障碍物的位置数据、周围的障碍物的类别数据、周围的障碍物的尺寸数据、周围的障碍物的转向角数据等。当然,该指定设备通过获取到的图像数据,也可以得到周围的障碍物的类别数据,周围的障碍物的在图像中的位置数据,周围的障碍物的在图像中的二维框的尺寸数据。

S102:针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,并根据所述点云信息,确定该第一障碍物与所述点云数据中涉及的各障碍物之间的相似度,作为第一相似度,以及针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,并根据所述图像信息,确定该第二障碍物与所述图像数据中涉及的各障碍物之间的相似度,作为第二相似度。

在本说明书实施例中,指定设备获取到的图像数据中包含有若干障碍物的图像信息,可以将图像数据中所涉及的障碍物称之为是第一障碍物。同理,指定设备获取到的点云数据中也包含有若干障碍物的点云信息,可以将点云数据中所涉及的障碍物称之为是第二障碍物。这里提到的“第一”和“第二”仅为了区分不同类型的数据所对应的障碍物,本身没有其他特殊的含义。

基于此,指定设备获取上述图像数据后,可以针对该图像数据中涉及的每个第一障碍物,根据该第一障碍物在图像数据对应的图像尺寸,得到该第一障碍物在该图像尺寸下对应的点云信息,再将该第一障碍物对应的点云信息与点云数据中涉及的各第二障碍物对应的点云信息进行相似度计算,得到该第一障碍物与点云数据中涉及的各第二障碍物之间的第一相似度。

当然,指定设备也针对每个第一障碍物,通过对上述图像数据进行识别,确定出该第一障碍物对应的障碍物类别,再根据识别出的该第一障碍物的障碍物类别,确定在点云数据中该障碍物类别对应的预设障碍物尺寸。而对于点云数据中涉及的每个第二障碍物来说,指定设备可以通过获取到的点云数据,确定出该第二障碍物在点云数据中对应的位置数据以及朝向数据,进而基于确定出的预设障碍物尺寸,确定出该第一障碍物该位置数据以及该朝向数据下,在点云数据中所对应的点云信息,进而通过该点云信息,确定出该第一障碍物与该第二障碍物在点云数据下所对应的第一相似度。

例如,假设,通过对获取到的图像数据进行识别,确定出图像数据中涉及的一个第一障碍物的障碍物类别为行人,并确定出行人障碍物类别对应的预设行人尺寸。在确定该第一障碍物与点云数据中的一个第二障碍物之间的相似度时,而后,可以将确定出的预设行人尺寸与点云数据中该第二障碍物对应的位置数据以及朝向数据(如转向角)相结合。也就是说,将确定出的预设行人尺寸按照点云数据中该第二障碍物对应的位置、转向角进行摆放,以得到该第一障碍物在点云数据中的点云信息,并基于该点云信息,确定出该第一障碍物与该第二障碍物在点云数据中的第一相似度。

进一步地,指定设备针对每个第一障碍物,根据确定出的该第一障碍物对应的点云信息进行投影,以得到该第一障碍物在点云数据中投影出的矩形框。而后,针对每个第二障碍物,指定设备可以根据该第二障碍物在点云数据中对应的点云信息进行投影,得到该第二障碍物在点云数据中对应的矩形框。指定设备需要根据该第二障碍物在点云数据中对应的位置数据以及朝向数据,调整该第一障碍物对应的矩形框在点云数据中的摆放位置和摆放角度,以使第一障碍物对应的矩形框与该第二障碍物对应的矩形框在点云数据至少存在部分重叠。指定设备可以通过确定出的摆放后的第一障碍物对应的矩形框与该第二障碍物对应的矩形框之间的相似度,来确定第一障碍物和第二障碍物在点云数据中对应的第一相似度。具体可以参考如下公式:

相似度=Swidth*Sheight*Sbox

其中,Swidth是指两个矩形框的宽度之比,Sheight是指两个矩形框高度之比,Sbox是指两个矩形框的交集面积除以两矩形框的并集面积,也就是两个矩形框之间重合的程度。从该公式中可以看出,两个矩形框之间矩形框大小越相近,两个矩形框的相似度越高,两个矩形框之间矩形框重合的面积越大,两个矩形框的相似度越高。

当然,也可以参考以下公式来确定上述相似度:

相似度=Swidth*Sheight*Sbox/(Swidth*Sheight*Sbox+(1-Swidth)*(1-Sheight)*(1-Sbox))

该公式中的(1-Swidth)*(1-Sheight)*(1-Sbox)用于表征这两个矩形框之间的差异度,若是这两个矩形框之间越相似,则这两个矩形框之间的差异度也越小,反之则越大。所以,通过引入两个矩形框之间的差异度,可以使得相似度高的两个矩形框得出的相似度更高,相似度低的两个矩形框得出的相似度更低。

在本说明书实施例中,指定设备可以针对每个第二障碍物,从该第二障碍物在点云数据中的点云信息中进行采样,以得到该第二障碍物对应的若干采样点。而后,指定设备可以将该若干采样点投影到二维平面中,得到在该二维平面中的若干个顶点,进而在该二维平面中找到这些顶点的最大外接矩形框,作为该第二障碍物在图像数据中对应的矩形框。指定设备可以将确定出的该第二障碍物在图像数据中对应的矩形框与图像数据中涉及的各第一障碍物对应的矩形框进行相似度计算,得到第二相似度,矩形框的计算方法与上述方法相同,在这里就不赘述了。而值得一提的是,上述二维平面对应一个角度,这一角度即为摄像机拍摄的角度。

S104:根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果。

在本说明书实施例中,指定设备可以将包含有图像数据中涉及的各第一障碍物对应的第一相似度,作为第一序列,将包含有点云数据中涉及的各第二障碍物对应的第二相似度,作为第二序列。而后,针对第二序列中的每个排序位置,根据该排序位置对应的第二相似度以及第一序列中包含的各第一相似度,确定该排序位置对应的综合相似度,具体可以参考如下公式为:

综合相似度=Slidar_i*Scam_j*((1-Sother_1)*(1-Sother_2)*...*(1-Sother_k))

其中,Slidar_i是指第一序列第i位置的第一障碍物对应的第一相似度,Scam_j是指第二序列第j位置的第二障碍物对应的第二相似度,i和j可以相等也可以不等。Sother_1到Sother_k是指除第一序列中第i位置的第一障碍物对应的第一相似度以及第二序列中第j位置的第二障碍物对应的第二相似度以外的其他障碍物对应的第一相似度或第二相似度。

从该公式中可以看出,Slidar_i和Scam_j分别用于表示两对障碍物之间的相似度,若是第一序列中第i位置对应的障碍物组合,和第二序列中第j位置对应的障碍物组合,均对应同一障碍物,则Slidar_i和Scam_j之间的乘积也越大,相反,这一障碍物与其他障碍物之间的第一相似度和第二相似度相比于Slidar_i和Scam_j也较低。所以,通过上述公式,可以准确的确定出不同障碍物之间的相似度。

在本说明书实施例中,指定设备可以根据第二序列中每个排序位置对应的综合相似度,确定图像数据中涉及的各第一障碍物与点云数据中涉及的各第二障碍物之间的第一匹配结果。具体的,指定设备可以从第二序列中确定出综合相似度不低于第一设定相似度的排序位置,作为第一目标排序位置,根据第一目标排序位置在图像数据中对应的第一障碍物以及在点云数据中对应的第二障碍物,确定第一匹配结果。也就是说,指定设备可以设定阈值(第一设定相似度),将高于阈值的综合相似度对应的障碍物匹配结果,作为第一匹配结果。

另外,对于综合相似度高于第一设定相似度的障碍物匹配组合中可能出现同一个障碍物对应有多个障碍物匹配组合,而同一障碍物只能对应有一个障碍物匹配组合,因此,可以将障碍物匹配组合根据预设的匹配算法进行再次匹配,如贪心算法、匈牙利算法等。其中,若采用贪心算法,可以按照综合相似度从高到低依次匹配,将已确定的障碍物匹配组合中障碍物涉及的障碍物匹配组合移出,得到第一匹配结果。若采用匈牙利算法,可以通过不断调整障碍物配对方式,最终得到尽可能多的障碍物匹配组合。需要说明的是,可以根据实际需求对匹配算法进行选择,本说明书不对匹配算法进行限定。

S106:根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

在本说明书实施例中,由于指定设备可以根据第一匹配结果,确定出图像数据中涉及的一个第一障碍物是与点云数据中涉及的哪个第二障碍物属于同一障碍物。所以,指定设备可以基于上述第一匹配结果,对当前时刻位于指定设备周围的障碍物进行检测,进而根据检测结果,确定出相应的行驶决策。

需要说明的是,为了保证检测结果的准确性,指定设备还可以进一步地对图像数据和点云数据中涉及的各障碍物进行匹配。具体的,指定设备还可以从第二序列中确定出综合相似度低于第一设定相似度的排序位置,作为候选排序位置。其中,可以将第一匹配结果对应的障碍物涉及的障碍物匹配组合从该候选排序位置中移除,以避免第一匹配结果和第二匹配结果中出现多次相同的障碍物。进一步地,指定设备可以从候选排序位置中确定出第二相似度不低于第二设定相似度的排序位置,作为第二目标排序位置,并根据第二目标排序位置在图像数据中对应的第一障碍物以及在点云数据中对应的第二障碍物,确定出第二匹配结果。

也就是说,整个障碍物匹配过程可以分为两轮,第一轮的配对情况是通过第一匹配结果来确定的,而对于在第一轮中未实现配对的障碍物来说,指定设备可以在第二轮中,基于这些未配对的障碍物对应的第二相似度,进行再次配对,得到第二匹配结果。相应的,指定设备可以根据第一匹配结果以及第二匹配结果,对当前时刻位于指定设备周围的障碍物进行检测。

在上述过程中可以看出,由于在障碍物检测过程中考虑到了在单一维度下得到的相似度可能不准确,所以,将图像数据中涉及的第一障碍物转换成在点云数据对应的矩形框,与点云数据中涉及的各障碍物进行相似度计算,得到第一相似度,以及将点云数据中涉及的第二障碍物转换成在图像数据对应的矩形框,与图像数据中涉及的各障碍物进行相似度计算,得到第二相似度。而指定设备最终基于通过第一相似度和第二相似度得到的综合相似度,实现图像数据与点云数据中涉及的各障碍物之间的匹配。即,将两个维度下的得到的相似度进行综合计算,避免了在单一维度下相似度计算出现的误差,提高了第一匹配结果的准确性。与此同时,可以将未匹配的障碍物按照第二相似度进行第二次匹配,得到第二匹配结果,以通过结合第一匹配结果以及第二匹配结果,得到更加准确的障碍物检测结果,保证了指定设备的安全行驶。

本说明书实施例中,指定设备实际应用障碍物检测的方法,如图2所示。

图2为本说明书中一种指定设备应用障碍物检测方法的流程示意图。

在实际应用中,指定设备获取在当前时刻对应的点云数据以及图像数据,将点云数据中涉及的各第二障碍物对应的位置数据、转向角数据,与图像数据中涉及的各第一障碍物对应的障碍物类别在点云信息中预设的障碍物尺寸相结合,得到各第一障碍物在点云数据中对应的点云信息。而后,根据各第一障碍物对应的点云信息,确定将各第一障碍物的点云信息在点云数据中进行投影得到的矩形框,并将各第一障碍物在点云数据中对应的矩形框,与点云数据中涉及的各第二障碍物在点云数据中投影得到的矩形框进行相似度计算,得到第一相似度。其中,投影的过程如图3A和图3B所示。

图3A、3B为本说明书提供的将第一障碍物对应的点云信息在点云数据中进行投影的示意图。

假设,指定设备确定出图像数据中涉及的一个第一障碍物对应的障碍物类别为汽车类别,则可以确定出该汽车类别在点云维度上对应的预设障碍物尺寸,进而按照该预设障碍物尺寸在点云数据中进行投影,得到如图3A所示的矩形框。

图3B为指定设备采集到的点云数据的示意图,其中,图3B中包含有行人和汽车两个第二障碍物,指定设备可以按照这两个第二障碍物在点云数据中的点云信息进行投影,得到图3B所示的这两个第二障碍物在点云数据中的矩形框,进而按照这两个第二障碍物在点云数据中的位置和朝向,将该第一障碍物在点云数据中的矩形框摆放在点云数据中,以确定第一障碍物与这两个第二障碍物之间的相似度。从图3B中可以明显看出,第一障碍物在点云数据中的矩形框与行人这一第二障碍物在点云数据中的矩形框之间的相似度,要明显的低于该第一障碍物在点云数据中的矩形框与汽车这一第二障碍物在点云数据中的矩形框之间的相似度。

指定设备可以针对每个第二障碍物,根据该第二障碍物在点云数据中对应的点云信息,得到该第二障碍物对应的若干采样点,再将若干采样点投影到二维平面中,得到若干个顶点,并找到这些顶点所对应的最大的外接矩形框,作为该第二障碍物在图像数据中对应的矩形框。指定设备可以根据各第二障碍物在图像数据中对应的矩形框与图像数据中涉及的各第一障碍物对应的矩形框,进行相似度计算,得到第二相似度。

指定设备可以根据确定出的第一相似度以及第二相似度,确定各障碍物匹配组合对应的综合相似度。将综合相似度高于第一设定相似度的障碍物匹配组合按照预设的匹配算法进行匹配,得到第一匹配结果。而对于在第一轮为未匹配的障碍物来说,指定设备可以将第二相似度高于第二设定相似度的未匹配第二障碍物所对应的障碍物匹配组合按照预设的匹配算法进行匹配,得到第二匹配结果,进而将第一匹配结果与第二匹配结果结合,得到最终的障碍物检测结果。

由于在实际应用中,指定设备周围会出现部分障碍物密集集中在一个区域,部分障碍物孤立分散在其他区域的情况。而指定设备可以通过上述第一匹配结果,可以有效地将这些孤立出现的障碍物进行准确匹配出来,并且,为了进一步地保证障碍物检测结果的准确性,指定设备可以将在第一轮未实现匹配的障碍物,在第二轮继续进行匹配,得到第二匹配结果,这样,基于第一匹配结果和第二匹配结果,可以有效地将指定设备周围的每个障碍物在图像数据和点云数据中进行准确关联,从而提高了指定设备的安全行驶。

另外,由于孤立出现的障碍物的点云信息往往是独立且完整的,而密集出现的障碍物的点云信息可能会出现相互重叠的现象,进而导致在点云数据中的密集障碍物的障碍物尺寸可能是残缺的。因此,对于图像数据中一个孤立的第一障碍物来说,基于该第一障碍物对应的预设障碍物尺寸所确定出的该第一障碍物与点云数据中该孤立的障碍物之间的相似度,相比于该第一障碍物与点云数据中密集的障碍物之间的相似度要更高,从而可以有效地区分出孤立的障碍物和密集的障碍物,进一步地保证了在对图像数据与点云数据中涉及的各障碍物进行匹配时,不会出现匹配错误的情况,提高了障碍物检测的准确性。

以上为本说明书的一个或多个实施例提供的障碍物检测的方法,基于同样的思路,本说明书还提供了相应的障碍物检测的装置,如图4所示。

图4为本说明书提供的一种障碍物检测的装置示意图,具体包括:

获取模块400,用于获取指定设备在当前时刻对应的点云数据以及图像数据;

确定模块402,用于针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的点云信息,并根据所述点云信息,确定该第一障碍物与所述点云数据中涉及的各障碍物之间的相似度,作为第一相似度,以及针对所述点云数据中涉及的每个第二障碍物,根据所述点云数据,确定该第二障碍物对应的图像信息,并根据所述图像信息,确定该第二障碍物与所述图像数据中涉及的各障碍物之间的相似度,作为第二相似度;

匹配模块404,用于根据确定出的第一相似度以及第二相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果;

检测模块406,用于根据所述第一匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

可选地,所述确定模块402具体用于,针对所述图像数据中涉及的每个第一障碍物,根据所述图像数据,确定该第一障碍物对应的障碍物类别,根据所述障碍物类别,确定该第一障碍物对应的点云信息,所述点云信息中包含有针对所述障碍物类别对应的预设障碍物尺寸。

可选地,所述确定模块402具体用于,针对所述点云数据中涉及的每个第二障碍物,从所述点云数据选取出该第二障碍物对应的若干采样点,确定该第二障碍物对应的若干采样点在二维平面中的投影信息,以得到该第二障碍物对应的图像信息。

可选地,所述匹配模块404具体用于,确定第一序列以及第二序列,所述第一序列中包含有所述图像数据中涉及的各第一障碍物对应的第一相似度,所述第二序列中包含有所述点云数据中涉及的各第二障碍物对应的第二相似度,针对所述第二序列中的每个排序位置,根据该排序位置对应的第二相似度以及所述第一序列中包含的各第一相似度,确定该排序位置对应的综合相似度,根据所述第二序列中每个排序位置对应的综合相似度,确定所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第一匹配结果。

可选地,所述匹配模块404具体用于,从所述第二序列中确定出综合相似度不低于第一设定相似度的排序位置,作为第一目标排序位置,根据所述第一目标排序位置在所述图像数据中对应的第一障碍物以及在所述点云数据中对应的第二障碍物,确定所述第一匹配结果。

可选地,所述匹配模块404具体用于,从所述第二序列中确定出综合相似度低于第一设定相似度的排序位置,作为候选排序位置,从所述候选排序位置中确定出第二相似度不低于第二设定相似度的排序位置,作为第二目标排序位置,根据所述第二目标排序位置在所述图像数据中对应的第一障碍物以及在所述点云数据中对应的第二障碍物,确定针对所述图像数据中涉及的各第一障碍物与所述点云数据中涉及的各第二障碍物之间的第二匹配结果。

可选地,所述检测模块406具体用于,根据所述第一匹配结果以及所述第二匹配结果,对所述当前时刻位于所述指定设备周围的障碍物进行检测。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1所示的障碍物检测的方法。

本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的障碍物检测的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 障碍物检测装置、利用了障碍物检测装置的自动制动装置、障碍物检测方法以及利用了障碍物检测方法的自动制动方法
  • 障碍物检测装置、移动体、障碍物检测方法以及障碍物检测程序
技术分类

06120112669483