障碍物检测方法、装置、设备及存储介质与流程

文档序号:11729755阅读:243来源:国知局
障碍物检测方法、装置、设备及存储介质与流程

【技术领域】

本发明涉及无人驾驶车辆技术,特别涉及障碍物检测方法、装置、设备及存储介质。



背景技术:

无人驾驶车辆,是指通过各种传感器来感知车辆周围环境,并根据感知所获得的道路、车辆位置和障碍物信息等,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶。

激光雷达是无人驾驶车辆用于感知三维环境的重要传感器,激光雷达扫描一圈场景,返回场景三维空间的点云,即3d点云,包括每个点的三维坐标以及激光的反射强度等。

基于采集到3d点云,可进行障碍物的检测(分割)等,并反馈给规划控制系统,以便进行避障操作等。可见,障碍物检测直接关系到无人驾驶车辆的行车安全,具有非常重要的意义。障碍物可包括出现在道路上的行人、机动车、自行车等。

现有技术中,主要采用基于规则的算法来进行障碍物的检测,如基于局部区域生成算法,即根据局部距离利用一个或多个阈值通过“连接”操作进行生长。但这种方式仅仅依靠局部的空间信息,检测结果的准确性较低。



技术实现要素:

有鉴于此,本发明提供了障碍物检测方法、装置、设备及存储介质,能够提高检测结果的准确性。

具体技术方案如下:

一种障碍物检测方法,包括:

获取无人驾驶车辆行驶过程中所采集的3d点云;

将所述3d点云投影到二维网格上,分别获取各网格的特征信息;

将各网格的特征信息输入预先训练得到的预测模型,分别获取各网格的障碍物预测参数;

根据各网格的障碍物预测参数进行网格聚类,得到障碍物检测结果。

一种障碍物检测装置,包括:获取单元以及检测单元;

所述获取单元,用于获取无人驾驶车辆行驶过程中所采集的3d点云,并发送给所述检测单元;

所述检测单元,用于将所述3d点云投影到二维网格上,分别获取各网格的特征信息;将各网格的特征信息输入预先训练得到的预测模型,分别获取各网格的障碍物预测参数;根据各网格的障碍物预测参数进行网格聚类,得到障碍物检测结果。

一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如以上所述的方法。

一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。

基于上述介绍可以看出,采用本发明所述方案,可将获取到的3d点云投影到二维网格上,并分别获取各网格的特征信息,将各网格的特征信息输入到预测模型中,从而分别获取到各网格的障碍物预测参数,进而可根据各网格的障碍物预测参数进行网格聚类,从而得到障碍物检测结果,相比于现有技术,本发明所述方案不再仅仅依靠局部的空间信息,从而提高了检测结果的准确性。

【附图说明】

图1为本发明所述障碍物检测方法实施例的流程图。

图2为基于本发明所述障碍物检测方法得到的障碍物示意图。

图3为本发明所述障碍物检测装置实施例的组成结构示意图。

图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。

【具体实施方式】

为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。

图1为本发明所述障碍物检测方法实施例的流程图,如图1所示,包括以下具体实现方式:

在101中,获取无人驾驶车辆行驶过程中所采集的3d点云;

在102中,将获取到的3d点云投影到二维网格上,分别获取各网格的特征信息;

在103中,将各网格的特征信息输入预先训练得到的预测模型,分别获取各网格的障碍物预测参数;

在104中,根据各网格的障碍物预测参数进行网格聚类,得到障碍物检测结果。

在无人驾驶车辆的行驶过程中,激光雷达会不断地进行数据采集,当每次获取到激光雷达返回的3d点云之后,即可按上述102-104所述方式进行处理,即进行障碍物的检测。

以下分别对上述各部分的具体实现进行详细说明。

一)投影及特征提取

投影及特征提取过程可称为预处理过程。

针对获取到的3d点云,可将其投影到birdview视图(俯视图)上,即对3d点云进行二维的网格化处理,投影到二维网格上,网格的具体数量可根据实际需要而定,比如,可将60米范围内的3d点云投影到长640和宽640的平面网格上,这样,可分别得到属于每个网格的点云集合,不同网格的点云集合中的点数可能相同,也可能不同。

之后,可针对每个网格分别进行特征统计,从而分别获取每个网格的特征信息。

具体对哪些特征进行统计可根据实际需要而定,比如,可针对每个网格,分别统计该网格内的点数、该网格内的点的最大高度、平均高度等。

假设共存在640*640个网格,每个网格分别统计出8个特征,那么共可得到640*640*8个特征。

二)预测模型及预测参数

可预先训练得到预测模型,较佳地,所述预测模型可为卷积神经网络模型。

为此,需要先得到一批训练样本。

比如,在每获取到一次3d点云之后,即可生成一个训练样本,具体地,可按照一)中所述方式得到各网格的特征信息,作为该训练样本中的输入,并且,可通过人工标注获得的障碍物三维框来得到该训练样本的输出,包括:每个网格属于障碍物的概率,以及,每个网格指向所属障碍物的中心位置的偏移量。

当获取到足够数量的训练样本之后,即可根据这些训练样本来对卷积神经网络的参数进行训练,以获得最优的卷积神经网络参数,即得到所需的卷积神经网络模型。

在实际的检测过程中,当每获取到一次3d点云,并将该3d点云投影到二维网格上,分别获取到各网格的特征信息之后,即可将各网格的特征信息一并输入到所述卷积神经网络模型中,从而分别得到每个网格的障碍物预测参数。

所述障碍物预测参数可包括第一参数以及第二参数,针对每个网格,所述第一参数可为:该网格属于障碍物的概率,所述第二参数可为:该网格指向所属障碍物的中心位置的偏移量。

所述概率可位于[0,1]的范围内。

三)聚类

在分别得到各网格的障碍物预测参数之后,即可根据各网格的障碍物预测参数进行网格聚类,从而得到障碍物检测结果。

具体地,首先,可分别将各网格的第一参数与预先设定的第一阈值进行比较,从而筛选出第一参数大于第一阈值的网格。

之后,可根据各网格的第二参数确定出所有可能的障碍物的中心位置,由于第二参数为网格指向所属障碍物的中心位置的偏移量,因此可根据各网格的所述偏移量确定出所有可能的障碍物的中心位置,并且,可进一步筛选出置信度大于预先设定的第二阈值的中心位置,比如,可通过非极大值抑制方式筛选出置信度大于第二阈值的中心位置。

之后,可根据筛选出的中心位置,对各筛选出的网格进行聚类,将得到的类作为障碍物检测结果。

即可将各筛选出的中心位置作为聚类中心,根据各筛选出的网格指向所属障碍物的中心位置的偏移量,对各筛选出的网格进行聚类,从而获得初始的障碍物实例,具体实现为现有技术。

在此基础上,还可进一步按照以下方式之一或全部进行处理:

1)根据障碍物之间的邻近关系进行障碍物合并;

比如,可以将邻近关系符合合并要求的障碍物进行合并,从而消除掉零碎的障碍物,以避免出现过分割的现象,所述合并要求的具体内容可根据实际需要而定;

2)将未被筛选出的网格中符合填充要求的网格填充到所属障碍物中的对应位置;

比如,对于一个障碍物来说,可根据组成该障碍物的网格中的中心网格与边缘网格的对比度关系,确定出是否需要填充网格,通常来说,大多数情况下,组成一个障碍物的各网格间的对比度应该是逐渐变化的,如果出现跳变,则可以考虑是否需要填充网格,即从之前未被筛选出的网格中进行选择,确定其中是否存在可以弥补上述跳变的属于该障碍物的网格,如果有,则将该网格填充到该障碍物中的对应位置。

四)3d点云上的后处理

按照之前的处理方式,得到了在2d空间中的障碍物检测结果,较佳地,还需要将其反投影到3d空间中,即在对各筛选出的网格进行聚类,将得到的类作为障碍物检测结果之后,还需要分别将每个类反投影到3d点云上,具体实现为现有技术。

在实际应用中,经常会出现树木等遮挡在障碍物上方的情况,对于这种情况,采用一)-三)中所述的方式并不能很好地检测出来,还需要作进一步的后处理。

所述后处理的方式可包括:

1)针对反投影后的每个类,分别进行以下处理:

估算出地面高度,在地面高度之上,若出现断层,则切开,将位于地面高度之上以及断层之下的部分作为障碍物;

即如果在地面高度之上出现较大的断层,则可从此处切开,如果是连续的,则不需要切开,之后,可将位于地面高度之上以及断层之下的部分作为检测到的障碍物;

2)针对反投影后的每个类,分别进行以下处理:

将该类中的各点按高度顺序进行排序,若两个相邻点之间的高度差大于预先设定的第三阈值,则切开,找出点数最多的片段,根据该片段中的点确定出一个障碍物;

即按照各点的高度,将该类中的各点按照高度从大到小或从小到大的顺序进行排序,然后比较相邻点之间的高度差,若大于第三阈值,则从此处切开,最后,找出点数最多的片段,并将该片段分割出来。

在实际应用中,可任意选择上述任一种后处理方式。

另外,除树木遮挡的问题外,采用一)-三)中所述的方式也可能会漏掉一些难度比较大的障碍物,比如,由于远处的障碍物点数太稀疏或者障碍物被部分遮挡等,都可能会造成障碍物的漏检。

为此,本发明中提出,针对三)中未被筛选出的网格,可在3d空间中,利用现有的基于规则的算法来进行障碍物的检测,从而尽可能地减少障碍物被漏检的现象的发生,进而进一步提高了检测结果的准确性。

上述过程中所涉及到的各阈值的具体取值均可根据实际需要而定。

图2为基于本发明所述障碍物检测方法得到的障碍物示意图。

以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。

图3为本发明所述障碍物检测装置实施例的组成结构示意图,如图3所示,包括:获取单元301以及检测单元302。

获取单元301,用于获取无人驾驶车辆行驶过程中所采集的3d点云,并发送给检测单元302。

检测单元302,用于将3d点云投影到二维网格上,分别获取各网格的特征信息;将各网格的特征信息输入预先训练得到的预测模型,分别获取各网格的障碍物预测参数;根据各网格的障碍物预测参数进行网格聚类,得到障碍物检测结果。

在无人驾驶车辆的行驶过程中,激光雷达会不断地进行数据采集,获取单元301在每次获取到激光雷达返回的3d点云之后,即可将其发送给检测单元302,以便检测单元302进行障碍物的检测。

如图3所示,检测单元302中可进一步包括:第一处理子单元3021以及第二处理子单元3022。

第一处理子单元3021用于将3d点云投影到二维网格上,分别获取各网格的特征信息,并将各网格的特征信息输入预先训练得到的预测模型,从而分别得到各网格的障碍物预测参数,发送给第二处理子单元3022。

第一处理子单元3021可对获取到的3d点云进行二维的网格化处理,即将3d点云投影到二维网格上,之后,可针对每个网格分别进行特征统计,从而分别获取到每个网格的特征信息。

具体对哪些特征进行统计可根据实际需要而定,比如,可针对每个网格,分别统计该网格内的点数、该网格内的点的最大高度、平均高度等。

可根据获取到的训练样本预先训练得到一个预测模型,较佳地,所述预测模型为卷积神经网络模型。

这样,第一处理子单元3021可将获取到的各网格的特征信息一并输入到卷积神经网络模型中,从而分别得到每个网格的障碍物预测参数。

障碍物预测参数可包括第一参数和第二参数,针对每个网格,所述第一参数可为:该网格属于障碍物的概率,所述第二参数可为:该网格指向所属障碍物的中心位置的偏移量。

第二处理子单元3022可分别将各网格的第一参数与预先设定的第一阈值进行比较,筛选出第一参数大于第一阈值的网格,根据各网格的第二参数确定出所有可能的障碍物的中心位置,并筛选出置信度大于预先设定的第二阈值的中心位置,根据筛选出的中心位置,对各筛选出的网格进行聚类,将得到的类作为障碍物检测结果。

在此基础上,第二处理子单元3022还可进一步按照以下方式之一或全部进行处理:

1)根据障碍物之间的邻近关系进行障碍物合并;

2)将未被筛选出的网格中符合填充要求的网格填充到所属障碍物中的对应位置。

按照之前的处理方式,得到了在2d空间中的障碍物检测结果,较佳地,还需要将其反投影到3d空间中,即第二处理子单元3022还需要将得到的每个类分别反投影到3d点云上。

另外,为进一步提高检测结果的准确性,第二处理子单元3022还可针对反投影后的每个类,分别按照以下方式之一进行后处理:

1)针对反投影后的每个类,估算出地面高度,在地面高度之上,若出现断层,则切开,将位于地面高度之上以及断层之下的部分作为障碍物;

2)针对反投影后的每个类,分别将该类中的各点按高度顺序进行排序,若两个相邻点之间的高度差大于第三阈值,则切开,找出点数最多的片段,根据该片段中的点确定出一个障碍物。

图3所示装置实施例的具体工作流程请参照前述方法实施例中的相应说明,不再赘述。

图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图4显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器(处理单元)16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图4所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现图1所示实施例中的方法,即获取无人驾驶车辆行驶过程中所采集的3d点云,将获取到的3d点云投影到二维网格上,分别获取各网格的特征信息,将各网格的特征信息输入预先训练得到的预测模型,分别获取各网格的障碍物预测参数,根据各网格的障碍物预测参数进行网格聚类,得到障碍物检测结果。

之后,可将得到的每个类分别反投影到3d点云上,并且,针对反投影后的每个类,还可分别进行后处理。

比如,针对反投影后的每个类,分别进行以下处理:估算出地面高度,在地面高度之上,若出现断层,则切开,将位于地面高度之上以及断层之下的部分作为障碍物。

再比如,针对反投影后的每个类,分别进行以下处理:将该类中的各点按高度顺序进行排序,若两个相邻点之间的高度差大于第三阈值,则切开,找出点数最多的片段,根据该片段中的点确定出一个障碍物。

本发明同时公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时将实现如图1所示实施例中的方法。

可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法等,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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