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

文档序号:30833647发布日期:2022-07-22 22:25阅读:122来源:国知局
障碍物的检测方法、装置与检测系统与流程

1.本技术涉及障碍物检测领域,具体而言,涉及一种障碍物的检测方法、装置、计算机可读存储介质、处理器与检测系统。


背景技术:

2.越来越多的工作的自动引导运输车(automated guided vehicle,简称agv)被应用工业生产和商业服务中,以提高生产效率和减少人工成本。agv可以沿规划路径行驶,为了防止由环境变化带来的安全问题,agv需实时检测周围环境,并根据实时环境来调整行驶路径和策略。在agv的行驶过程中,避障是一个基础且关键的问题,这要求agv可以实时检测规划路径中的障碍物位置。agv上的计算资源相对有限。
3.因此,亟需一种轻量化的障碍物检测算法。
4.在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。


技术实现要素:

5.本技术的主要目的在于提供一种障碍物的检测方法、装置、计算机可读存储介质、处理器与检测系统,以解决现有技术中缺乏一种轻量化的障碍物检测算法的问题。
6.根据本发明实施例的一个方面,提供了一种障碍物的检测方法,包括:获取深度图像以及所述深度图像中的各个像素点的像素坐标,得到多个所述像素坐标,所述深度图像包括目标障碍物的图像;将多个所述像素坐标转化至世界坐标系,得到多个点云,所述世界坐标系的预定平面平行于水平面,所述预定平面为所述世界坐标系的x轴与z轴形成的平面;至少根据多个所述点云的法向量,得到目标障碍物点云。
7.可选地,至少根据多个所述点云的所述法向量,得到目标障碍物点云,包括:根据多个所述点云的法向量,确定多个所述点云中的承载面点云,所述承载面用于承载所述目标障碍物;从多个所述点云中剔除所述承载面点云,得到所述目标障碍物点云。
8.可选地,根据多个所述点云的所述法向量,确定多个所述点云中的承载面点云,包括:计算各所述法向量与所述世界坐标系的y轴的夹角,得到多个第一夹角;在所述第一夹角小于第一阈值的情况下,至少将部分小于所述第一阈值的所述第一夹角对应的所述点云作为所述承载面点云。
9.可选地,在所述第一夹角小于第一阈值的情况下,至少将部分小于所述第一阈值的所述第一夹角对应的所述点云作为所述承载面点云,包括:在所述第一夹角小于所述第一阈值的情况下,将至少部分小于所述第一阈值的所述第一夹角对应的所述点云作为备选承载面点云;计算各所述备选承载面点云的曲率,得到多个所述曲率;在所述曲率小于所述第二阈值的情况下,将小于第二阈值的所述曲率对应的所述备选承载面点云作为所述承载面点云。
10.可选地,在所述第一夹角小于第一阈值的情况下,将至少部分小于所述第一阈值的所述第一夹角对应的所述点云作为备选承载面点云,包括:在所述第一夹角小于所述第一阈值的情况下,将小于所述第一阈值的所述第一夹角对应的所述点云作为初始备选承载面点云;计算相邻的两个所述初始备选承载面点云的所述法向量的夹角,得到多个第二夹角;在所述第二夹角大于第三阈值的情况下,将大于所述第三阈值的所述第二夹角对应的两个所述初始承载面备选点云作为所述备选承载面点云。
11.可选地,根据多个所述点云的所述法向量,确定多个所述点云中的承载面点云,包括:根据多个所述点云的所述法向量,得到初始承载面点云;采用密度聚类算法将所述初始承载面点云分成多个点云簇,得到多个所述点云簇;计算各所述点云簇的平均高度和点云数量;根据所述平均高度和所述点云数量,得到目标概率,所述目标概率用于表征所述点云簇为所述承载面的概率;在所述目标概率大于第四阈值的情况下,确定所述目标概率对应的所述点云簇中的多个所述点云为所述承载面点云。
12.可选地,根据多个所述点云的所述法向量,得到初始承载面点云,包括:计算各所述法向量与所述世界坐标系的所述y轴的夹角,得到多个所述第一夹角;在所述第一夹角小于所述第一阈值的情况下,将部分小于所述第一阈值的所述第一夹角对应的所述点云作为所述初始承载面点云。
13.可选地,根据所述平均高度和所述点云数量,得到目标概率,包括:根据g=λ1h+λ2n,计算所述目标概率,其中,g为所述目标概率,λ1为第一参数,h为所述平均高度,λ2为第二参数,n为所述点云数量。
14.可选地,将多个所述像素坐标转化至世界坐标系,得到多个点云,包括:将多个所述像素坐标转化至相机坐标系,得到多个相机坐标;将多个所述相机坐标转化至所述世界坐标系,得到多个所述点云。
15.根据本发明实施例的另一方面,还提供了一种障碍物的检测装置,包括:获取单元,用于获取深度图像以及所述深度图像中的各个像素点的像素坐标,得到多个所述像素坐标,所述深度图像包括目标障碍物的图像;转化单元,用于将多个所述像素坐标转化至世界坐标系,得到多个点云,所述世界坐标系的预定平面平行于水平面,所述预定平面为所述世界坐标系的x轴与z轴形成的平面;确定单元,用于至少根据多个所述点云的法向量,得到目标障碍物点云。
16.根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的方法。
17.根据本发明实施例的再一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的方法。
18.根据本发明实施例的另一方面,还提供了一种检测系统,包括:相机、一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的方法。
19.在本发明实施例中,首先,获取深度图像以及深度图像中的各个像素点的像素坐标,得到多个像素坐标,其次,将多个像素坐标转换至世界坐标系,得到多个点云,世界坐标系的x轴与z轴构成的预定平面平行于水平面,最后,至少根据多个点云的法向量,得到目标
障碍物点云。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
附图说明
20.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1示出了根据本技术的实施例的一种障碍物的检测方法的流程示意图;
22.图2示出了根据本技术的实施例的一种障碍物的检测装置的结构示意图;
23.图3示出了根据本技术的实施例的障碍物的检测方法的流程示意图;
24.图4示出了根据本技术的实施例的采用障碍物的检测方法的识别前的图像;
25.图5示出了根据本技术的实施例的采用障碍物的检测方法的识别后的图像。
具体实施方式
26.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
27.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
28.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
30.正如背景技术中所说的,现有技术中缺乏一种轻量化的障碍物检测算法,为了解决上述问题,本技术的一种典型的实施方式中,提供了一种障碍物的检测方法、装置、计算机可读存储介质、处理器与检测系统。
31.根据本技术的实施例,提供了一种障碍物的检测方法。
32.图1是根据本技术实施例的障碍物的检测方法的流程图。如图1所示,该方法包括
以下步骤:
33.步骤s101,获取深度图像以及上述深度图像中的各个像素点的像素坐标,得到多个上述像素坐标,上述深度图像包括目标障碍物的图像;
34.步骤s102,将多个上述像素坐标转化至世界坐标系,得到多个点云,上述世界坐标系的预定平面平行于水平面,上述预定平面为上述世界坐标系的x轴与z轴形成的平面;
35.步骤s103,至少根据多个上述点云的法向量,得到目标障碍物点云。
36.上述的方法中,首先,获取深度图像以及深度图像中的各个像素点的像素坐标,得到多个像素坐标,其次,将多个像素坐标转换至世界坐标系,得到多个点云,世界坐标系的x轴与z轴构成的预定平面平行于水平面,最后,至少根据多个点云的法向量,得到目标障碍物点云。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
37.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
38.本技术的一种实施例中,至少根据多个上述点云的上述法向量,得到目标障碍物点云,包括:根据多个上述点云的法向量,确定多个上述点云中的承载面点云,上述承载面用于承载上述目标障碍物;从多个上述点云中剔除上述承载面点云,得到上述目标障碍物点云。本实施例中,首先根据点云的法向量,确定承载面点云,然后将承载面点云从多个点云中剔除承载面点云,得到了准确的障碍物点云。
39.具体地,上述承载面有多种情况,当agv设备放置在地面上,则承载面为地面,当agv设备放置在桌面上,则承载面为桌面。
40.为了进一步减少检测方法的计算量,本技术的再一种实施例中,根据多个上述点云的上述法向量,确定多个上述点云中的承载面点云,包括:计算各上述法向量与上述世界坐标系的y轴的夹角,得到多个第一夹角;在上述第一夹角小于第一阈值的情况下,至少将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述承载面点云。本实施例中,只需要计算各上述法向量与上述世界坐标系的y轴的第一夹角,上述第一夹角越小,则上述第一夹角对应的点云越有可能是承载面点云,所以将上述第一夹角与上述第一阈值相比,将小于上述第一阈值的上述第一夹角对应的上述点云作为承载面点云,该检测方法比较简单,计算量比较小。
41.上述第一阈值越小,上述法向量与y轴越平行,则越有可能是承载面。当第一阈值为0时,对承载面点云的判断最严格,但是,在实际的应用中,斜坡并不满足该条件,因此斜坡不被认为是承载面,从而导致检测出现误差,因此,在实际的应用中,上述第一阈值通常为30度,这意味着当斜坡的角度小于30度时,斜坡也可以被判断为承载面。
42.本技术的另一种实施例中,在上述第一夹角小于第一阈值的情况下,至少将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述承载面点云,包括:在上述第
一夹角小于上述第一阈值的情况下,将至少部分小于上述第一阈值的上述第一夹角对应的上述点云作为备选承载面点云;计算各上述备选承载面点云的曲率,得到多个上述曲率;在上述曲率小于第二阈值的情况下,将小于上述第二阈值的上述曲率对应的上述备选承载面点云作为上述承载面点云。如果只采用法向量与世界坐标系的y轴的夹角来确定承载面点云,可能不能检测出承载面上一些较小的突出的障碍物,导致检测出现误差,因此,本实施例中,首先通过第一夹角筛选出备选承载面点云,然后计算各上述备选承载面点云的曲率,如果上述备选承载面点云的曲率小于第二阈值,则确定上述备选承载面点云为承载面点云,使得检测结果更加准确,从而进一步提升障碍物检测的准确性。
43.上述第二阈值越小,则备选承载面点云越有可能是承载面点云,上述第二阈值可以取值为0,此时的判断条件最严格,当然,实际的应用中,上述第二阈值还可以为其他数值,本领域技术人员可以根据实际情况来选择。
44.为了进一步提升本技术的障碍物检测的准确性,本技术的又一种实施例中,在上述第一夹角小于第一阈值的情况下,将至少部分小于上述第一阈值的上述第一夹角对应的上述点云作为备选承载面点云,包括:在上述第一夹角小于上述第一阈值的情况下,将小于上述第一阈值的上述第一夹角对应的上述点云作为初始备选承载面点云;计算相邻的两个上述初始备选承载面点云的上述法向量的夹角,得到多个第二夹角;在上述第二夹角大于第三阈值的情况下,将大于第三阈值的上述第二夹角对应的两个上述初始备选点云作为上述备选承载面点云。本实施例中,在将小于上述第一阈值的上述第一夹角对应的上述点云作为初始备选承载面点云之后,还需要计算相邻的两个上述初始备选承载面点云的上述法向量的夹角,得到多个第二夹角,当上述第二夹角越大,则上述两个初始备选承载面点云越有可能是承载面点云,所以将上述第二夹角与第三阈值进行比较,将大于上述第三阈值的上述第二夹角对应的两个上述初始备选承载面点云作为上述备选承载面点云,从而进一步排除承载面上较小的突出物。
45.本技术的再一种实施例中,根据多个上述点云的上述法向量,确定多个上述点云中的承载面点云,包括:根据多个上述点云的上述法向量,得到初始承载面点云;采用密度聚类算法将上述初始承载面点云分成多个上述点云簇,得到多个点云簇;计算各上述点云簇的平均高度和点云数量;根据上述平均高度和上述点云数量,得到目标概率,上述目标概率用于表征上述点云簇为上述承载面的概率;在上述目标概率大于第四阈值的情况下,确定上述目标概率对应的上述点云簇中的多个上述点云为上述承载面点云。本实施例中,首先根据点云的法向量得到初始承载面点云,因为初始承载面点云中包括承载面和与承载面特征相似的物体(或物体的局部),例如较矮的桌面等,因此还需要对初始承载面点云进一步筛选,所以采用密度聚类的方法将初始承载面点云分成多个点云簇,因为承载面的点云簇有以下三种特征:高度较低、点云数量较多、占初始承载面点云的大部分,所以需要计算各上述点云簇的平均高度和点云数量,根据平均高度和点云数量得到上述目标概率,然后将上述目标概率与第四阈值进行比较,从而得到准确的承载面点云,进而进一步提升障碍物检测的准确性。
46.上述密度聚类算法可以采用dbscan算法,当然,实际的应用中,还可以采用其他算法,本领域技术人员可以根据实际情况来选择。
47.本技术的另一种实施例中,根据多个上述点云的上述法向量,得到初始承载面点
云,包括:计算各上述法向量与上述世界坐标系的上述y轴的夹角,得到多个上述第一夹角;在上述第一夹角小于上述第一阈值的情况下,将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述初始承载面点云。本实施例中,得到初始承载面点云的方法也是通过计算第一夹角,然后将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述初始承载面点云。
48.当然,实际的应用中,也可以在计算第一夹角,将部分小于上述第一阈值的上述第一夹角对应的上述点云作为第一初始承载面点云之后,计算第一初始承载面点云的曲率或者第二夹角,然后挑选出满足条件的第一初始承载面点云作为上述初始承载面点云。具体的计算过程与上述方法相同,此处就不再赘述了。
49.为了得到准确的目标概率,本技术的又一种实施例中,根据上述平均高度和上述点云数量,得到目标概率,包括:根据g=λ1h+λ2n,计算上述目标概率,其中,g为上述目标概率,λ1为第一参数,h为上述平均高度,λ2为第二参数,n为上述点云数量。
50.上述第一参数和上述第二参数需要根据实际的情况来设置,上述第四阈值需要上述第一参数和上述第二参数来设置。
51.本技术的一种具体的实施例中,在计算各上述点云簇的平均高度和点云数量之后,还需要根据上述点云数量从大到小对多个上述点云簇进行排序和标号,例如某个点云簇的标号为k,则代表该点云簇的点云数量占所有点云簇的第k多,k越小,代表点云簇中的点云数量越多,越有可能是承载面。然后根据g=λ1h+λ2n+λ3k,计算上述目标概率,其中λ3是第三参数。
52.本技术的再一种实施例中,将多个上述像素坐标转化至世界坐标系,得到多个点云,包括:将多个上述像素坐标转化至相机坐标系,得到多个相机坐标;将多个上述相机坐标转化至上述世界坐标系,得到多个上述点云。
53.上述将多个上述像素坐标转化至世界坐标系的具体的计算过程如下:
54.在小孔成像模型中,将像素点从世界坐标转化成像素坐标的关系如下:
[0055][0056]
其中,k和r分别式相机的内参和外参矩阵;u和v分别代表像素坐标系的横坐标和纵坐标;xw、yw和zw分别代表世界坐标系下的x轴、y轴和z轴坐标值。
[0057]
假设像素点d为深度图像中的具体某个点,对应像素坐标系为(u,v)。则通过下式可获得d在相机坐标系下的坐标值(xc,yc,zc)。
[0058][0059]
其中,u0、v0、f
x
和fy是相机内参,内参值是相机物理结构和材料所决定的;zc是深度值,可以直接读取。一般的深度相机在工作的时候会提供内参值。如果相机不主动发布内参值,可通过使用张正友标定法获得相机内参。总之,相机的内参是可以容易获得并且可以获得的,不作为重点,此处不再赘述。
[0060]
然后将相机坐标系下的点转化到世界坐标系:
[0061]
记相机外参矩阵的逆矩阵为可根据如下公式获得d点在世界坐标系中的对应坐标
[0062][0063]
从而得到世界坐标系下的点云数据,根据上述点云数据,就得到了点云。
[0064]
本技术实施例还提供了一种障碍物的检测装置,需要说明的是,本技术实施例的障碍物的检测装置可以用于执行本技术实施例所提供的用于障碍物的检测方法。以下对本技术实施例提供的障碍物的检测装置进行介绍。
[0065]
图2是根据本技术实施例的障碍物的检测装置的示意图。如图2所示,该装置包括:
[0066]
获取单元10,用于获取深度图像以及上述深度图像中的各个像素点的像素坐标,得到多个上述像素坐标,上述深度图像包括目标障碍物的图像;
[0067]
转化单元20,用于将多个上述像素坐标转化至世界坐标系,得到多个点云,上述世界坐标系的预定平面平行于水平面,上述预定平面为上述世界坐标系的x轴与z轴形成的平面;
[0068]
确定单元30,用于至少根据多个上述点云的法向量,得到目标障碍物点云。
[0069]
上述的装置,包括获取单元、转换单元和确定单元,其中,上述获取单元用于获取深度图像以及深度图像中的各个像素点的像素坐标,得到多个上述像素坐标,上述转换单元用于将多个像素坐标转换至世界坐标系,得到多个点云,世界坐标系的x轴与z轴构成的预定平面平行于水平面,上述确定单元用于至少根据多个点云的法向量,得到目标障碍物点云。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
[0070]
本技术的一种实施例中,上述确定单元包括确定子单元和剔除子单元,其中,上述确定子单元用于根据多个上述点云的上述法向量,确定多个上述点云中的承载面点云,上述承载面用于承载上述目标障碍物;上述剔除子单元用于从多个上述点云中剔除上述承载面点云,得到上述目标障碍物点云。本实施例中,首先根据点云的法向量,确定承载面点云,
然后将承载面点云从多个点云中剔除承载面点云,得到了准确的障碍物点云。
[0071]
具体地,上述承载面有多种情况,当agv设备放置在地面上,则承载面为地面,当agv设备放置在桌面上,则承载面为桌面。
[0072]
为了进一步减少检测方法的计算量,本技术的再一种实施例中,上述确定子单元包括第一计算模块和第一确定模块,其中,上述第一计算模块用于计算各上述法向量与上述世界坐标系的y轴的夹角,得到多个第一夹角;上述第一确定模块用于在上述第一夹角小于第一阈值的情况下,至少将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述承载面点云。本实施例中,只需要计算各上述法向量与上述世界坐标系的y轴的第一夹角,上述第一夹角越小,则上述第一夹角对应的点云越有可能是承载面点云,所以将上述第一夹角与上述第一阈值相比,将小于上述第一阈值的上述第一夹角对应的上述点云作为承载面点云,该检测方法比较简单,计算量比较小。
[0073]
上述第一阈值越小,上述法向量与y轴越平行,则越有可能是承载面。当第一阈值为0时,对承载面点云的判断最严格,但是,在实际的应用中,斜坡并不满足该条件,因此斜坡不被认为是承载面,从而导致检测出现误差,因此,在实际的应用中,上述第一阈值通常为30度,这意味着当斜坡的角度小于30度时,斜坡也可以被判断为承载面。
[0074]
本技术的另一种实施例中,上述第一确定模块包括第一确定子模块、第一计算子模块、第二确定子模块,其中,上述第一确定子模块用于在上述第一夹角小于上述第一阈值的情况下,将至少部分小于上述第一阈值的上述第一夹角对应的上述点云作为备选承载面点云;上述第一计算子模块用于计算各上述备选承载面点云的曲率,得到多个上述曲率;上述第二确定子模块用于在上述曲率小于第二阈值的情况下,将小于上述第二阈值的上述曲率对应的上述备选承载面点云作为上述承载面点云。如果只采用法向量与世界坐标系的y轴的夹角来确定承载面点云,可能不能检测出承载面上一些较小的突出的障碍物,导致检测出现误差,因此,本实施例中,首先通过第一夹角筛选出备选承载面点云,然后计算各上述备选承载面点云的曲率,如果上述备选承载面点云的曲率小于第二阈值,则确定上述备选承载面点云为承载面点云,使得检测结果更加准确,从而进一步提升障碍物检测的准确性。
[0075]
上述第二阈值越小,则备选承载面点云越有可能是承载面点云,上述第二阈值可以取值为0,此时的判断条件最严格,当然,实际的应用中,上述第二阈值还可以为其他数值,本领域技术人员可以根据实际情况来选择。
[0076]
为了进一步提升本技术的障碍物检测的准确性,本技术的又一种实施例中,上述第一确定模块包括第三确定子模块、第二计算子模块和第四确定子模块,其中,上述第三确定子模块用于在上述第一夹角小于上述第一阈值的情况下,将小于上述第一阈值的上述第一夹角对应的上述点云作为初始备选承载面点云;上述第二计算子模块用于计算相邻的两个上述初始备选承载面点云的上述法向量的夹角,得到多个第二夹角;上述第四确定子模块用于在上述第二夹角大于第三阈值的情况下,将大于上述第三阈值的上述第二夹角对应的两个上述初始备选承载面点云作为上述备选承载面点云。本实施例中,在将小于上述第一阈值的上述第一夹角对应的上述点云作为初始备选承载面点云之后,还需要计算相邻的两个上述初始备选承载面点云的上述法向量的夹角,得到多个第二夹角,当上述第二夹角越大,则上述两个初始备选承载面点云越有可能是承载面点云,所以将上述第二夹角与第
三阈值进行比较,将大于第三阈值的上述第二夹角对应的两个上述初始备选点云作为上述备选承载面点云,从而进一步排除承载面上较小的突出物。
[0077]
本技术的再一种实施例中,上述确定子单元包括第二确定模块、第二计算模块、第三计算模块、第四计算模块和第三确定模块,其中,上述第二确定模块用于根据多个上述点云的上述法向量,得到初始承载面点云;上述第二计算模块用于采用密度聚类算法将上述初始承载面点云分成多个点云簇,得到多个上述点云簇;上述第三计算模块用于计算各上述点云簇的平均高度和点云数量;上述第四计算模块用于根据上述平均高度和上述点云数量,得到目标概率,上述目标概率用于表征上述点云簇为上述承载面的概率;上述第三确定模块用于在上述目标概率大于第四阈值的情况下,确定上述目标概率对应的上述点云簇中的多个上述点云为上述承载面点云。本实施例中,首先根据点云的法向量得到初始承载面点云,因为初始承载面点云中包括承载面和与承载面特征相似的物体(或物体的局部),例如较矮的桌面等,因此还需要对初始承载面点云进一步筛选,所以采用密度聚类的方法将初始承载面点云分成多个点云簇,因为承载面的点云簇有以下三种特征:高度较低、点云数量较多、占初始承载面点云的大部分,所以需要计算各上述点云簇的平均高度和点云数量,根据平均高度和点云数量得到上述目标概率,然后将上述目标概率与第四阈值进行比较,从而得到准确的承载面点云,进而进一步提升障碍物检测的准确性。
[0078]
上述密度聚类算法可以采用dbscan算法,当然,实际的应用中,还可以采用其他算法,本领域技术人员可以根据实际情况来选择。
[0079]
本技术的另一种实施例中,上述第二确定模块包括第三计算子模块和第五确定子模块,其中,上述第三计算子模块用于计算各上述法向量与上述世界坐标系的上述y轴的夹角,得到多个上述第一夹角;上述第五确定子模块用于在上述第一夹角小于上述第一阈值的情况下,将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述初始承载面点云。本实施例中,得到初始承载面点云的方法也是通过计算第一夹角,然后将部分小于上述第一阈值的上述第一夹角对应的上述点云作为上述初始承载面点云。
[0080]
当然,实际的应用中,也可以在计算第一夹角,将部分小于上述第一阈值的上述第一夹角对应的上述点云作为第一初始承载面点云之后,计算第一初始承载面点云的曲率或者第二夹角,然后挑选出满足条件的第一初始承载面点云作为上述初始承载面点云。具体的计算过程与上述方法相同,此处就不再赘述了。
[0081]
为了得到准确的目标概率,本技术的又一种实施例中,上述第四计算模块包括第四计算子模块,其中,上述第四计算子模块用于根据g=λ1h+λ2n,计算上述目标概率,其中,g为上述目标概率,λ1为第一参数,h为上述平均高度,λ2为第二参数,n为上述点云数量。
[0082]
上述第一参数和上述第二参数需要根据实际的情况来设置,上述第四阈值需要上述第一参数和上述第二参数来设置。
[0083]
本技术的一种具体的实施例中,在计算各上述点云簇的平均高度和点云数量之后,还需要根据上述点云数量从大到小对多个上述点云簇进行排序和标号,例如某个点云簇的标号为k,则代表该点云簇的点云数量占所有点云簇的第k多,k越小,代表点云簇中的点云数量越多,越有可能是承载面。然后根据g=λ1h+λ2n+λ3k,计算上述目标概率,其中λ3是第三参数。
[0084]
本技术的再一种实施例中,上述转化单元包括第一转化模块和第二转换模块,其
中,上述第一转化模块用于将多个上述像素坐标转化至相机坐标系,得到多个相机坐标;上述第二转换模块用于将多个上述相机坐标转化至上述世界坐标系,得到多个上述点云。
[0085]
上述将多个上述像素坐标转化至世界坐标系的具体的计算过程如下:
[0086]
在小孔成像模型中,将像素点从世界坐标转化成像素坐标的关系如下:
[0087][0088]
其中,k和r分别式相机的内参和外参矩阵;u和v分别代表像素坐标系的横坐标和纵坐标;xw、yw和zw分别代表世界坐标系下的x轴、y轴和z轴坐标值。
[0089]
假设像素点d为深度图像中的具体某个点,对应像素坐标系为(u,v)。则通过下式可获得d在相机坐标系下的坐标值(xc,yc,zc)。
[0090][0091]
其中,u0、v0、f
x
和fy是相机内参,内参值是相机物理结构和材料所决定的;zc是深度值,可以直接读取。一般的深度相机在工作的时候会提供内参值。如果相机不主动发布内参值,可通过使用张正友标定法获得相机内参。总之,相机的内参是可以容易获得并且可以获得的,不作为重点,此处不再赘述。
[0092]
然后将相机坐标系下的点转化到世界坐标系:
[0093]
记相机外参矩阵的逆矩阵为可根据如下公式获得d点在世界坐标系中的对应坐标
[0094][0095]
从而得到世界坐标系下的点云数据,根据上述点云数据,就得到了点云。
[0096]
上述障碍物的检测装置包括处理器和存储器,上述获取单元、转换单元和确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0097]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个
或以上,通过调整内核参数来提供一种轻量化的障碍物检测算法。
[0098]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0099]
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述障碍物的检测方法。
[0100]
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述障碍物的检测方法。
[0101]
本发明实施例提供了一种检测系统,包括相机、一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
[0102]
上述的检测系统,包括相机、一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
[0103]
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
[0104]
步骤s101,获取深度图像以及上述深度图像中的各个像素点的像素坐标,得到多个像素坐标,上述深度图像包括目标障碍物的图像;
[0105]
步骤s102,将多个上述像素坐标转化至世界坐标系,得到多个点云,上述世界坐标系的预定平面平行于水平面,上述预定平面为上述世界坐标系的x轴与z轴形成的平面;
[0106]
步骤s103,至少根据多个上述点云的法向量,得到目标障碍物点云。
[0107]
本文中的设备可以是服务器、pc、pad、手机等。
[0108]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
[0109]
步骤s101,获取深度图像以及上述深度图像中的各个像素点的像素坐标,得到多个像素坐标,上述深度图像包括目标障碍物的图像;
[0110]
步骤s102,将多个上述像素坐标转化至世界坐标系,得到多个点云,上述世界坐标系的预定平面平行于水平面,上述预定平面为上述世界坐标系的x轴与z轴形成的平面;
[0111]
步骤s103,至少根据多个上述点云的法向量,得到目标障碍物点云。
[0112]
为了使得本领域的技术人员更加清楚明确地了解本技术的技术方案,下面将结合具体的实施例进行说明:
[0113]
实施例
[0114]
该障碍物检测方法的流程示意图如图3所示,该方法包括以下步骤:
[0115]
步骤1:建立世界坐标系,本技术世界坐标系的x轴与z轴形成的预定平面与水平面
平行
[0116]
在小孔成像模型中,将像素点从世界坐标转化成像素坐标的关系如下:
[0117][0118]
其中,k和r分别式相机的内参和外参矩阵;u和v分别代表像素坐标系的横坐标和纵坐标;xw、yw和zw分别代表世界坐标系下的x轴、y轴和z轴坐标值。
[0119]
步骤2:获取深度图像以及深度图像中的各个像素点的像素坐标
[0120]
步骤3:将像素坐标转换为世界坐标
[0121]
假设像素点d为深度图像中的具体某个点,对应像素坐标系为(u,v)。则通过下式可获得d在相机坐标系下的坐标值(xc,yc,zc)。
[0122][0123]
其中,u0、v0、f
x
和fy是相机内参,内参值是相机物理结构和材料所决定的;zc是深度值,可以直接读取。一般的深度相机在工作的时候会提供内参值。如果相机不主动发布内参值,可通过使用张正友标定法获得相机内参。总之,相机的内参是可以容易获得并且可以获得的,不作为重点,此处不再赘述。
[0124]
步骤4:将相机坐标系下的点转化到世界坐标系:
[0125]
记相机外参矩阵的逆矩阵为可根据如下公式获得d点在世界坐标系中的对应坐标
[0126][0127]
从而得到世界坐标系下的点云数据,根据上述点云数据,就得到了点云。
[0128]
步骤5:粗选承载面点云
[0129]
遍历世界坐标系中的点云,对于每一个点云,满足以下3个条件的可初步判定为承载面:
[0130]
(1)点云的法向量与世界坐标系的y轴接近平行;(2)相邻的两个点云的法向量接近平行;(3)点云的曲率小于第三阈值。
[0131]
通过以上3个条件,可以挑选出备选承载面点云。
[0132]
步骤6:精选承载面点云,从而确定目标障碍物点云
[0133]
由步骤5粗选得到的点云包含着承载面与一些与承载面特征相似的物体(或物体的局部),例如较矮的桌面等。因此,步骤6对步骤5的所有点云进行密度聚类,采用的算法是dbscan(其他聚类算法亦可)。经过dbscan聚类后的点云,可分为若干个点云簇。在绝大部分场景中,承载面点云簇有以下3个特征:(1)高度比较低;(2)点云数量较多;(3)占候选承载面点云的大部分;
[0134]
记dbscan输出的所有点云簇为p,其中具体点云簇p。遍历p,分别计算每个p的平均高度h和点云数量n。另外,按照n从大到小,对p中的所有点云簇p进行排序。例如p的点云数量排序为k,则代表p在p中的点云数量第k多。k越小,代表p的点云数量越多,即p越有可能是承载面。然后,使用下式4估算该点云簇属于承载面的概率g:
[0135]
g=λ1h+λ2n+λ3k
[0136]
当g大于等于阈值tg时,认为该点云簇为承载面点云。通过设置合理的参数λ1、λ2和λ3以及对应的阈值tg,可判断点云簇p是否真的为承载面。输出所有非承载面的点云簇,即为目标障碍物点云。
[0137]
图4是采用该障碍物检测方法识别前的图像,采用该障碍物检测方法识别后的图像如图5所示,图中的坐标系为相机坐标系。
[0138]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0139]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0140]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0141]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0142]
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0143]
从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
[0144]
1)、本技术的障碍物的检测方法,首先,获取深度图像以及深度图像中的各个像素点的像素坐标,得到多个像素坐标,其次,将多个像素坐标转换至世界坐标系,得到多个点云,世界坐标系的x轴与z轴构成的预定平面平行于水平面,最后,至少根据多个点云的法向量,得到目标障碍物点云。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
[0145]
2)、本技术的障碍物的检测装置,包括获取单元、转换单元和确定单元,其中,上述获取单元用于获取深度图像以及深度图像中的各个像素点的像素坐标,得到多个像素坐标,上述转换单元用于将多个像素坐标转换至世界坐标系,得到多个点云,世界坐标系的x轴与z轴构成的预定平面平行于水平面,上述确定单元用于至少根据多个点云的法向量,得到目标障碍物点云。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
[0146]
3)、本技术的检测系统,包括相机、一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。该方法中,世界坐标系的x轴与z轴构成的预定平面平行于水平面,对世界坐标系的建立进行了约束,该坐标系有且仅有一个坐标轴垂直于水平面,使得将多个像素坐标转化至世界坐标系过程的计算量减小,之后,至少根据多个点云的法向量,得到目标障碍物点云,因为坐标转化的过程的计算量较小,从而使得该障碍物的检测方法的整体计算量较小,缩短了障碍物的检测时间,进而解决了现有技术中缺乏一种轻量化的障碍物检测算法的问题。
[0147]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1