一种基于深度图像的障碍物检测方法、装置和移动机器人与流程

文档序号:29358320发布日期:2022-03-23 00:39阅读:246来源:国知局
一种基于深度图像的障碍物检测方法、装置和移动机器人与流程

1.本发明涉及机器视觉领域,特别地,涉及一种基于深度图像的障碍物检测方法。


背景技术:

2.随着深度相机技术的成熟,深度相机越来越多地应用在机器视觉中,特别是在机器人避障中的应用也越来越广泛,但是深度相机用于避障时要求深度相机输出高质量的深度图像,例如,要求基于深度图像所重构的图像空间与实际物理空间匹配度高,以便能够基于高质量的深度图像检测到小的障碍物,同时能够避免错误的检测,否则将导致基于深度图像的障碍物检测不准确甚至错误,从而阻碍了机器视觉在障碍物检测的应用。


技术实现要素:

3.本发明提供了一种基于深度图像的障碍物检测方法,以降低基于深度图像的障碍物检测对深度图像质量的依赖。
4.本发明的第一方面,提供了一种基于深度图像的障碍物检测方法,该方法包括:
5.获取深度图像,
6.剔除深度图像中与移动机器人承载平面的高度小于设定高度阈值的深度点,得到有效图像;
7.将所述有效图像投影到所述承载平面,得到承载平面中的投影点,
8.基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,得到障碍物的第一边界。
9.较佳地,该方法进一步包括以下至少之一处理:
10.用于删除所述承载平面中孤立的投影点的处理;
11.用于对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得到第二边界的处理;
12.用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界的处理。
13.较佳地,所述剔除深度图像中与移动机器人承载平面的高度小于设定高度阈值的深度点,得到有效图像,包括:
14.计算深度图像中深度点沿相机光轴方向的高度梯度,
15.根据设定的高度梯度阈值,
16.筛选出大于高度梯度阈值的高度梯度,将用于计算该高度梯度的深度点保留;剔除不大于高度梯度阈值的高度梯度,将用于计算该高度梯度的深度点剔除,得到包括有有效深度点的有效图像,
17.所述将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点,包括:
18.将有效图像中的有效深度点的坐标信息转换至移动机器人坐标下的承载平面,得
到投影点。
19.较佳地,所述计算深度图像中深度点沿相机光轴方向的高度梯度,包括:
20.基于深度图像,确定深度图像中深度点所对应第一空间点在世界坐标系下的三维坐标信息;
21.基于第一空间点的所述三维坐标信息,确定第一空间点转换为与相机光轴平行、且垂直于承载平面的第一平面中的二维坐标信息,得到第二空间点信息;
22.对于任一第二空间点,计算该第二空间点与另一第二空间点之间的高度差、以及相机光轴方向的距离差,将高度差与距离差的比值作为该第二空间点的高度梯度;
23.所述将有效图像中的有效深度点的坐标信息转换至移动机器人坐标下的承载平面,得到投影点,包括:
24.对于任一有效深度点,将有效深度点所对应的第一空间点的所述三维坐标信息转换为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息;
25.或者
26.对于任一有效深度点,根据该有效深度点坐标信息,将有效深度点转化为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息。
27.较佳地,所述基于深度图像,确定深度图像中深度点所对应第一空间点在世界坐标系下的三维坐标信息,包括:
28.基于深度图像,确定深度图像中的消影线,提取消影线以下的深度点,
29.确定所提取深度点对应的第一空间点的空间信息;
30.所述对于任一第二空间点,计算该第二空间点与另一第二空间点之间的高度差、以及相机光轴方向的距离差,进一步包括:
31.选择与该第二空间点沿相机光轴方向上具有设定第一距离阈值的第二空间点作为另一空间点。
32.较佳地,所述基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,包括,
33.根据投影点的坐标信息,筛选出与移动机器人最近的投影点,将筛选出的投影点作为第一边界;
34.所述用于对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得到第二边界的处理,包括:
35.检测第一边界中的非连续边界区间和连续边界区间;
36.对非连续边界区间中的投影点进行正确性检测,
37.对于正确的投影点,予以保留,
38.对于错误的投影点,从错误的投影点开始,沿当前深度方向,依次地对投影点进行逐个筛选,当筛选出正确的投影点时,将该投影点作为边界中的投影点,
39.将连续边界区间中的投影点、所保留的正确投影点、以及所筛选的正确投影点作为第二边界;
40.所述用于删除孤立的投影点的处理包括:
41.遍历所有投影点,
42.如果在遍历的当前投影点的第一投影点邻域范围内,连续投影点的数量小于设定的第一投影点数量阈值,则判定当前投影点为孤立投影点,删除该孤立投影点。
43.较佳地,所述检测第一边界中的非连续边界区间和连续边界区间,包括:
44.当第一边界中相邻投影点之间不连续,和/或具有连续投影点的边界长度不大于设定的第一投影点长度阈值,则该相邻投影点和/或该具有连续投影点的边界为所述第一边界中的非连续边界区间;
45.当第一边界中相邻投影点之间连续、且具有连续投影点的边界长度大于第一投影点长度阈值,则该具有连续投影点的边界为所述第一边界中的连续边界区间;
46.其中,
47.相邻投影点之间不连续为:相邻投影点之间的距离不小于设定的投影点距离阈值;
48.相邻投影点之间连续为:相邻投影点之间的距离小于设定的投影点距离阈值;
49.所述对非连续边界区间中的投影点进行正确性检测,包括:
50.对非连续边界区间中的任一投影点,根据该投影点第二投影点邻域范围内的投影点判定该投影点的正确性,
51.若第二投影点邻域范围内投影点数量大于设定的第二投影点数量阈值,则判定该投影点为正确的投影点,否则,判定该投影点为错误的投影点。
52.较佳地,所述投影点距离阈值,包括:
53.当移动机器人与第一边界的距离小于设定的第二距离阈值时,则所述投影点距离阈值为第一投影点距离阈值,
54.当移动机器人与第一边界的距离不小于设定的第二距离阈值时,则所述投影点距离阈值为第第二投影点距离阈值,
55.其中,第一投影点距离阈值大于第一投影点距离阈值。
56.较佳地,所述用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界的处理,包括:
57.在移动机器人与当前边界的距离小于设定的第三距离阈值的情况下,统计当前边界中投影点的数量和/或长度,
58.当当前边界中所统计的投影点数量小于设定的第三投影点数量阈值,和/或,当前边界中所统计的投影点长度小于设定的第二投影点长度阈值时,删除所统计投影点所在的边界区间;
59.其中,所述当前边界为所述第一边界、所述第二边界中的至少之一。
60.较佳地,所述将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点之后,进一步包括:
61.构建二维栅格,将承载平面中的投影点分布于各栅格中,得到用于表征投影点分布的栅格图;其中,具有最小区域的栅格的区域大小根据需要设定;
62.对于任一栅格,根据栅格中投影点的情况进行标识:
63.如果栅格中没有投影点,则标识该栅格为空旷栅格,
64.如果栅格中有投影点,且与该栅格位于同一列和/或同一行的相邻边界栅格中无投影点,则标识该栅格为边界栅格,
65.如果栅格中有投影点,且与该栅格位于同一列和/或同一行的相邻边界栅格中有投影点,则标识该栅格为障碍物栅格;
66.所述用于删除孤立的投影点的处理包括:
67.遍历栅格图中的非空旷栅格,
68.如果在遍历的当前栅格的第一栅格邻域范围内,空旷栅格的数量小于设定的第一栅格数量阈值,或者,投影点的数量小于设定的第一投影点数量阈值,则标记该栅格为空旷栅格;
69.所述基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,包括:
70.提取栅格图中与移动机器人距离最近的边界栅格,作为第一边界;
71.所述用于对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得到第二边界的处理,包括:
72.检测第一边界中的非连续边界区间和连续边界区间,
73.对非连续边界区间中的边界栅格进行正确性检测,
74.对于正确的边界栅格,予以保留,
75.对于错误的边界栅格,从错误的边界栅格开始,沿当前深度方向,依次地对栅格图中的栅格进行筛选,当筛选出正确栅格时,将该栅格更新为边界栅格;
76.将连续边界区间中的边界栅格、所保留的边界栅格、以及更新后的边界栅格作为第二边界。
77.较佳地,所述栅格图中列栅格沿当前深度方向排列,行栅格的排列方向与列栅格排列方向垂直,
78.所述对于任一栅格,根据栅格中投影点的情况进行标识,进一步包括:
79.如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中无投影点,则标识该栅格为边界栅格,或者,如果与该栅格相邻的同一列栅格中,位于靠近移动机器人一侧的栅格中无投影点、和/或位于远离移动机器人一侧的栅格中有投影点,则标识该栅格为边界栅格,其中,靠近移动机器人的距离、远离移动机器人的距离根据需要分别设定;
80.如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中有投影点,则标识该栅格为障碍物栅格;
81.所述提取栅格图中与移动机器人距离最近的边界栅格,作为第一边界,包括:
82.提取每一列栅格中与移动机器人距离最近的边界栅格,作为第一边界,
83.所述检测第一边界中的非连续边界区间和连续边界区间,包括:
84.当第一边界中相邻边界栅格之间不连续,和/或具有连续边界栅格的边界长度不大于设定的第一栅格长度阈值,则该相邻边界栅格和/或该具有连续边界栅格的边界为非连续边界区间;
85.当第一边界中相邻边界栅格之间连续、且具有连续边界栅格的边界长度大于第一栅格长度阈值,则该具有连续边界栅格的边界为连续边界区间;
86.其中,
87.相邻边界栅格之间不连续为:相邻边界栅格之间的距离不小于设定的栅格距离阈值,或者,相邻边界栅格之间的栅格数量不小于设定的边界栅格数量阈值;
88.相邻边界栅格之间连续为:相邻边界栅格之间的距离小于设定的栅格距离阈值,或者,相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
89.所述对非连续边界区间中的边界栅格进行正确性检测,包括:
90.对非连续边界区间中的任一边界栅格,根据该边界栅格第一栅格邻域范围内的中具有的投影点,来判定该边界栅格中的投影点和/或该边界栅格的正确性,
91.若第一栅格邻域范围内所具有的非空旷栅格数量大于设定的第二栅格数量阈值,或者,当第一栅格邻域范围内的栅格中所具有的投影点数量大于设定的第二投影点数量阈值,则判定该边界栅格中的投影点和/或该边界栅格的正确,否则,判定为不正确;
92.所述在存在错误栅格情况下,从错误栅格开始,沿当前深度方向,依次地对栅格进行筛选,当筛选出正确栅格时,将该栅格作为边界栅格,包括:
93.从该错误栅格开始,沿当前深度方向,依次地对与该错误栅格位于同一列的栅格中的栅格进行逐个筛选,当筛选出一正确栅格,则将该正确栅格更新为边界栅格;
94.反复执行,直至每个错误栅格都被更新。
95.较佳地,所述相邻边界栅格之间的距离不小于设定的栅格距离阈值的判定包括:若相邻两边界栅格在列方向上的距离不小于所述栅格距离阈值、且所述相邻两边界栅格所隶属的列栅格中不包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则所述相邻两边界栅格不小于设定的栅格距离阈值;
96.所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值的判定包括:若所述相邻两边界栅格在列方向上的栅格数量不小于所述边界栅格数量阈值、且所述相邻两边界栅格所隶属的列栅格中不包括使得列方向上栅格数量小于所述边界栅格数量阈值的其它边界栅格,则判定相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
97.所述相邻边界栅格之间的距离小于设定的栅格距离阈值的判定包括:若相邻两边界栅格在列方向上的距离小于所述栅格距离阈值,或者,所述相邻两边界栅格所隶属的列栅格中包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则所述相邻两边界栅格小于设定的栅格距离阈值;
98.所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值的判定包括:若相邻两边界栅格在列方向上的栅格数量小于所述边界栅格数量阈值,或者,所述相邻两边界栅格所隶属的列栅格中包括使得列方向上的栅格数量小于所述边界栅格数量阈值的其它边界栅格,则所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
99.其中,当移动机器人与第一边界的距离小于设定的第二距离阈值时,所述栅格距离阈值为第一栅格距离阈值,所述边界栅格数量阈值为第一边界栅格数量阈值;
100.当移动机器人与第一边界的距离不小于设定的第二距离阈值时,则所述栅格距离阈值为第二栅格距离阈值,所述边界栅格数量阈值为第二边界栅格数量阈值;
101.其中,第一栅格距离阈值大于第二栅格距离阈值;第一边界栅格数量阈值大于第二边界栅格数量阈值;
102.所述用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界的处理,包括:
103.在移动机器人与当前边界的距离小于设定的第三距离阈值的情况下,统计当前边界中边界栅格的数量和/或长度,
104.当统计的边界栅格数量小于设定的第三栅格数量阈值,和/或,统计的边界栅格长度小于设定的第二栅格长度阈值,则删除所统计边界栅格所在的边界。
105.本发明的第二方面,提供了一种移动机器人,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一所述基于深度图像的障碍物检测的步骤。
106.本发明的第三方面,提供了一种基于深度图像的障碍物检测装置,该装置包括,
107.有效深度点提取模块,用于剔除深度图像中与移动机器人承载平面的高度小于设定高度阈值的深度点,得到有效图像;
108.投影模块,用于将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点,
109.边界提取模块,用于基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,得到障碍物的第一边界。
110.较佳地,该装置进一步包括以下至少之一模块:
111.孤点处理模块,用于删除所述承载平面中孤立的投影点;
112.第一筛选模块,用于对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得到第二边界;
113.第二筛选模块,用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界。
114.较佳地,所述有效深度点提取模块,被配置为计算深度图像中深度点沿相机光轴方向的高度梯度,根据设定的高度梯度阈值,筛选出大于高度梯度阈值的高度梯度,将用于计算该高度梯度的深度点保留;剔除不大于高度梯度阈值的高度梯度,将用于计算该高度梯度的深度点剔除,得到包括有有效深度点的有效图像,
115.所述投影模块包括投影子模块,被配置为将有效图像中的有效深度点的坐标信息转换至移动机器人坐标下的承载平面,得到投影点。
116.较佳地,所述有效深度点提取模块被配置为基于深度图像,确定深度图像中深度点所对应第一空间点在世界坐标系下的三维坐标信息;基于第一空间点的所述三维坐标信息,确定第一空间点转换为与相机光轴平行、且垂直于承载平面的第一平面中的二维坐标信息,得到第二空间点信息;对于任一第二空间点,计算该第二空间点与另一第二空间点之间的高度差、以及相机光轴方向的距离差,将高度差与距离差的比值作为该第二空间点的高度梯度;
117.所述投影子模块被配置为,对于任一有效深度点,将有效深度点所对应的第一空间点的所述三维坐标信息转换为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息;或者
118.对于任一有效深度点,根据该有效深度点坐标信息,将有效深度点转化为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息。
119.较佳地,所述有效深度点提取模块被配置为基于深度图像,确定深度图像中的消影线,提取消影线以下的深度点,确定所提取深度点对应的第一空间点的空间信息;
120.所述有效深度点提取模块进一步被配置为选择与该第二空间点沿相机光轴方向上具有设定第一距离阈值的第二空间点作为另一空间点。
121.较佳地,所述投影子模块被配置为根据投影点的坐标信息,筛选出与移动机器人
最近的投影点,将筛选出的投影点作为第一边界;
122.所述第一筛选模块被配置为检测第一边界中的非连续边界区间和连续边界区间;对非连续边界区间中的投影点进行正确性检测,对于正确的投影点,予以保留;对于错误的投影点,从错误的投影点开始,沿当前深度方向,依次地对投影点进行逐个筛选,当筛选出正确的投影点时,将该投影点作为边界中的投影点;将连续边界区间中的投影点、所保留的正确投影点、以及所筛选的正确投影点作为第二边界;
123.所述孤点处理模块被配置为遍历所有投影点,如果在遍历的当前投影点的第一投影点邻域范围内,连续投影点的数量小于设定的第一投影点数量阈值,则判定当前投影点为孤立投影点,删除该孤立投影点。
124.较佳地,所述边界提取模块被配置为,当第一边界中相邻投影点之间不连续,和/或具有连续投影点的边界长度不大于设定的第一投影点长度阈值,则该相邻投影点和/或该具有连续投影点的边界为所述第一边界中的非连续边界区间;
125.当第一边界中相邻投影点之间连续、且具有连续投影点的边界长度大于第一投影点长度阈值,则该具有连续投影点的边界为所述第一边界中的连续边界区间;
126.其中,
127.相邻投影点之间不连续为:相邻投影点之间的距离不小于设定的投影点距离阈值;
128.相邻投影点之间连续为:相邻投影点之间的距离小于设定的投影点距离阈值;
129.所述对非连续边界区间中的投影点进行正确性检测,包括:
130.对非连续边界区间中的任一投影点,根据该投影点第二投影点邻域范围内的投影点判定该投影点的正确性,
131.若第二投影点邻域范围内投影点数量大于设定的第二投影点数量阈值,则判定该投影点为正确的投影点,否则,判定该投影点为错误的投影点。
132.较佳地,所述投影点距离阈值,包括:
133.当移动机器人与第一边界的距离小于设定的第二距离阈值时,则所述投影点距离阈值为第一投影点距离阈值,
134.当移动机器人与第一边界的距离不小于设定的第二距离阈值时,则所述投影点距离阈值为第第二投影点距离阈值,
135.其中,第一投影点距离阈值大于第一投影点距离阈值。
136.较佳地,所述第二筛选模块,被配置为在移动机器人与当前边界的距离小于设定的第三距离阈值的情况下,统计当前边界中投影点的数量和/或长度,
137.当当前边界中所统计的投影点数量小于设定的第三投影点数量阈值,和/或,当前边界中所统计的投影点长度小于设定的第二投影点长度阈值时,删除所统计投影点所在的边界区间;
138.其中,所述当前边界为所述第一边界、所述第二边界中的至少之一。
139.较佳地,所述投影模块还包括,
140.栅格化子模块,用于将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点之后,构建二维栅格,将承载平面中的投影点分布于各栅格中,得到用于表征投影点分布的栅格图;其中,具有最小区域的栅格的区域大小根据需要设定;
141.对于任一栅格,根据栅格中投影点的情况进行标识:
142.如果栅格中没有投影点,则标识该栅格为空旷栅格,
143.如果栅格中有投影点,且与该栅格位于同一列和/或同一行的相邻边界栅格中无投影点,则标识该栅格为边界栅格,
144.如果栅格中有投影点,且与该栅格位于同一列和/或同一行的相邻边界栅格中有投影点,则标识该栅格为障碍物栅格;
145.所述用于删除孤立的投影点的处理包括:
146.遍历栅格图中的非空旷栅格,
147.如果在遍历的当前栅格的第一栅格邻域范围内,空旷栅格的数量小于设定的第一栅格数量阈值,或者,投影点的数量小于设定的第一投影点数量阈值,则标记该栅格为空旷栅格;
148.所述边界提取模块被配置为提取栅格图中与移动机器人距离最近的边界栅格,作为第一边界;
149.所述第一筛选模块被配置为检测第一边界中的非连续边界区间和连续边界区间,对非连续边界区间中的边界栅格进行正确性检测,对于正确的边界栅格,予以保留,对于错误的边界栅格,从错误的边界栅格开始,沿当前深度方向,依次地对栅格图中的栅格进行筛选,当筛选出正确栅格时,将该栅格更新为边界栅格;将连续边界区间中的边界栅格、所保留的边界栅格、以及更新后的边界栅格作为第二边界。
150.较佳地,所述栅格图中列栅格沿当前深度方向排列,行栅格的排列方向与列栅格排列方向垂直,
151.所述栅格化子模块进一步被配置为:
152.如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中无投影点,则标识该栅格为边界栅格,或者,如果与该栅格相邻的同一列栅格中,位于靠近移动机器人一侧的栅格中无投影点、和/或位于远离移动机器人一侧的栅格中有投影点,则标识该栅格为边界栅格,其中,靠近移动机器人的距离、远离移动机器人的距离根据需要分别设定;
153.如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中有投影点,则标识该栅格为障碍物栅格;
154.所述边界提取模块被配置为提取每一列栅格中与移动机器人距离最近的边界栅格,作为第一边界,
155.当第一边界中相邻边界栅格之间不连续,和/或具有连续边界栅格的边界长度不大于设定的第一栅格长度阈值,则该相邻边界栅格和/或该具有连续边界栅格的边界为非连续边界区间;
156.当第一边界中相邻边界栅格之间连续、且具有连续边界栅格的边界长度大于第一栅格长度阈值,则该具有连续边界栅格的边界为连续边界区间;
157.其中,
158.相邻边界栅格之间不连续为:相邻边界栅格之间的距离不小于设定的栅格距离阈值,或者,相邻边界栅格之间的栅格数量不小于设定的边界栅格数量阈值;
159.相邻边界栅格之间连续为:相邻边界栅格之间的距离小于设定的栅格距离阈值,或者,相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
160.所述边界提取模块被配置为:
161.对非连续边界区间中的任一边界栅格,根据该边界栅格第一栅格邻域范围内的中具有的投影点,来判定该边界栅格中的投影点和/或该边界栅格的正确性,
162.若第一栅格邻域范围内所具有的非空旷栅格数量大于设定的第二栅格数量阈值,或者,当第一栅格邻域范围内的栅格中所具有的投影点数量大于设定的第二投影点数量阈值,则判定该边界栅格中的投影点和/或该边界栅格的正确,否则,判定为不正确;
163.所述在存在错误栅格情况下,从错误栅格开始,沿当前深度方向,依次地对栅格进行筛选,当筛选出正确栅格时,将该栅格作为边界栅格,包括:
164.从该错误栅格开始,沿当前深度方向,依次地对与该错误栅格位于同一列的栅格中的栅格进行逐个筛选,当筛选出一正确栅格,则将该正确栅格更新为边界栅格;
165.反复执行,直至每个错误栅格都被更新。
166.所述相邻边界栅格之间的距离不小于设定的栅格距离阈值的判定包括:若相邻两边界栅格在列方向上的距离不小于所述栅格距离阈值、且所述相邻两边界栅格所隶属的列栅格中不包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则所述相邻两边界栅格不小于设定的栅格距离阈值;
167.所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值的判定包括:若所述相邻两边界栅格在列方向上的栅格数量不小于所述边界栅格数量阈值、且所述相邻两边界栅格所隶属的列栅格中不包括使得列方向上栅格数量小于所述边界栅格数量阈值的其它边界栅格,则判定相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
168.所述相邻边界栅格之间的距离小于设定的栅格距离阈值的判定包括:若相邻两边界栅格在列方向上的距离小于所述栅格距离阈值,或者,所述相邻两边界栅格所隶属的列栅格中包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则所述相邻两边界栅格小于设定的栅格距离阈值;
169.所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值的判定包括:若相邻两边界栅格在列方向上的栅格数量小于所述边界栅格数量阈值,或者,所述相邻两边界栅格所隶属的列栅格中包括使得列方向上的栅格数量小于所述边界栅格数量阈值的其它边界栅格,则所述相邻边界栅格之间的栅格数量小于设定的边界栅格数量阈值;
170.其中,当移动机器人与第一边界的距离小于设定的第二距离阈值时,所述栅格距离阈值为第一栅格距离阈值,所述边界栅格数量阈值为第一边界栅格数量阈值;
171.当移动机器人与第一边界的距离不小于设定的第二距离阈值时,则所述栅格距离阈值为第二栅格距离阈值,所述边界栅格数量阈值为第二边界栅格数量阈值;
172.其中,第一栅格距离阈值大于第二栅格距离阈值;第一边界栅格数量阈值大于第二边界栅格数量阈值;
173.所述第二筛选模块被配置为在移动机器人与当前边界的距离小于设定的第三距离阈值的情况下,统计当前边界中边界栅格的数量和/或长度,当统计的边界栅格数量小于设定的第三栅格数量阈值,和/或,统计的边界栅格长度小于设定的第二栅格长度阈值,则删除所统计边界栅格所在的边界。
174.本发明通过将深度图像中与承载平面的高度小于设定高度阈值的深度点作为非障碍物深度点予以剔除,从而得到有效的深度点,有效避免了深度图像中错误的深度点,将
剔除后的剩余深度点投影到所述承载平面,基于所述承载平面中的投影点来提取边界,由于投影点仅保留了深度信息,既可避免错误深度点在障碍物检测中的不利影响,又可在二维平面中进行障碍物检测,降低了对深度图像的质量要求;进一步地,通过对投影点的栅格化处理,可实现高效地进行错误点的筛选,达到了对深度图像中深度点的降采样处理效果,有效降低了对深度相机的深度图质量的要求,对于低质量的深度图像,仍然能够进行障碍物检测。
附图说明
175.图1为本技术基于深度图像的障碍物检测方法的一种示意图。
176.图2为本技术实施例一基于深度图像的障碍物检测方法的一种流程示意图。
177.图3为移动机器人获取深度图像的一种示意图。
178.图4为图3中的侧面视图、以及高度梯度的一种示意图。
179.图5为本技术实施例二基于深度图像的障碍物检测方法的一种流程示意图。
180.图6为一种投影点栅格图的示意图。
181.图7为孤立栅格的一种示意图。
182.图8为本技术实施例基于深度图像的障碍物检测装置的一种示意图。
具体实施方式
183.为了使本技术的目的、技术手段和优点更加清楚明白,以下结合附图对本技术做进一步详细说明。
184.深度相机在机器人避障中的应用越发广发,但深度相机用于避障也存在不少的问题。例如,来自于深度相机所提供的深度图像中,包含很多错误深度点,这些错误的深度点会干扰机器人对障碍物的感知。又例如,稠密的深度图像有利于对障碍物的完整感知,从而有利于障碍物的检测,但即使通过特征点来进行深度图像的恢复,通常也需要丰富的纹理,甚至,即使纹理丰富,也无法恢复出稠密的深度图像。上述原因导致了基于深度图像的障碍物检测对深度图像质量的依赖。
185.有鉴于此,本技术将深度图像中与承载平面的高度小于设定高度阈值的深度点作为非障碍物深度点予以剔除,将剔除后的剩余深度点投影到所述承载平面,基于所述承载平面中的投影点来提取边界,通过对投影点的多种筛选策略的筛选,去除掉错误深度点,从而进行障碍物检测。
186.参见图1所示,图1为本技术基于深度图像的障碍物检测方法的一种示意图。在移动机器人侧,该方法包括:
187.步骤101,获取深度图像。
188.所述深度图像来自于获取物体深度的相机,包括基于立体视觉的深度相机和基于tof(飞行时间)的深度相机。深度相机可以设置在移动机器人上,用于采集移动机器人行进方向上的深度图像。
189.深度图像中的深度点可以理解为像素点,深度点对应有像素坐标系中的位置信息以及深度信息。
190.步骤102,剔除深度图像中与移动机器人承载平面的高度小于设定高度阈值的深
度点,得到有效图像。
191.通过该步骤,可以去除承载平面中的非障碍物深度点,例如,移动机器人的承载平面为地面时,则可去除地面深度点,从而使得后续将深度图像中的有效图像投影到所述承载平面时避免地面深度点对投影点的干扰,使得障碍物的深度信息被保留。
192.步骤103,将所述有效图像投影到所述承载平面,得到承载平面中的投影点。
193.该步骤使得三维空间上的障碍物检测降为承载平面上的二维平面上的障碍物检测,鉴于深度信息对障碍物检测更为重要,而高度信息对障碍物检测不及深度信息重要,故而,将有效图像投影到承载平面,有利于减少对深度图像质量的要求。
194.步骤104,基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,得到第一边界。
195.进一步地,
196.可以采取至少如下之一的筛选策略进行处理:
197.1)得到承载平面中的投影点之后,删除孤立的投影点;
198.2)得到第一边界之后,对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得到第二边界;
199.3)用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界的处理。例如,得到第一边界和/或第二边界之后,在移动机器人与当前边界的距离小于设定的第三距离阈值的情况下,统计边界中投影点的数量和/或长度,当统计边界中的投影点数量小于设定的第三投影点数量阈值,和/或,统计边界中的投影点长度小于设定的第二投影点长度阈值,则删除所统计投影点所在的边界区间。
200.本发明提出的障碍物检测方法,以将视野内的三维空间信息投影到承载平面的方式将三维空间信息降为二维空间信息进行处理,从而使得机器人可以在二维的投影环境中进行避障,既能够利用三维传感器的三维感知信息,又能够在二维环境中进行快速的路径规划,获得类似于二维激光的数据进行避障效果。通过对深度图像中深度点云的筛选,剔除错误的深度点,得到正确的障碍物的信息,有效地降低对深度图像和深度相机的要求,同时也可以很好地解决了即使是高质量深度图像也存在错误深度点时移动机器人可能出现错误检测的问题。
201.为便于查阅,以下为实施例中所涉及的阈值参数说明。
202.高度梯度阈值:用于进行高度梯度筛选;
203.第一距离阈值:用于进行高度梯度计算时选择深度方向的深度点;
204.第二距离阈值:用于步骤2051、5051中检测第一边界中连续边界区间时移动机器人与第一边界的距离;
205.第三距离阈值:用于近距离筛选时移动机器人与障碍物(当前边界)的距离,例如步骤206、506中进行近距离筛选;
206.第一投影点数量阈值:步骤203中用于检测孤点;
207.第二投影点数量阈值:步骤2052中检测第一边界中投影点正确性时用于确定投影点的正确性;
208.第三投影点数量阈值:步骤206中用于确定是否删除边界,以对边界进行修正;
209.投影点距离阈值:步骤2051中检测第一边界中连续边界区间时,用于判定相邻投
影点的连续性;包括有第一投影点距离阈值、第二投影点距离阈值;
210.第一投影点距离阈值:步骤2051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较近(小于第二距离阈值)的情况下,用于判定相邻投影点的连续性;
211.第二投影点距离阈值:步骤2051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较远(不小于第二距离阈值)的情况下,用于判定相邻投影点的连续性;
212.第一投影点长度阈值:步骤2051中检测第一边界中连续边界区间时,用于判定连续投影点的长度是否可作为连续边界;
213.第二投影点长度阈值:步骤206中用于确定是否删除边界,以对边界进行修正;
214.栅格距离阈值:步骤5051中检测第一边界中连续边界区间时,用于判定相邻边界栅格的连续性;包括有第一栅格距离阈值、第二栅格距离阈值;
215.第一栅格距离阈值:步骤5051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较近(小于第二距离阈值)的情况下,用于判定相邻边界栅格的连续性;
216.第二栅格距离阈值:步骤5051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较远(不小于第二距离阈值)的情况下,用于判定相邻边界栅格的连续性;
217.边界栅格数量阈值:步骤5051中检测第一边界中连续边界区间时,用于判定相邻边界栅格的连续性;包括有第一边界栅格数量阈值、第二边界栅格数量阈值;
218.第一边界栅格数量阈值:步骤5051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较远(不小于第二距离阈值)的情况下,用于判定相邻边界栅格的连续性;
219.第二边界栅格数量阈值:步骤5051中检测第一边界中连续边界区间时,移动机器人与第一边界的距离较远(不小于第二距离阈值)的情况下,用于判定相邻边界栅格的连续性;
220.第一栅格长度阈值:步骤5051中检测第一边界中连续边界区间时,用于判定连续边界栅格的长度是否可作为连续边界;
221.第二栅格长度阈值:步骤506中用于确定是否删除边界,以对边界进行修正;
222.第一栅格数量阈值:步骤503中用于检测孤点;
223.第二栅格数量阈值:步骤5052中检测第一边界中边界栅格正确性时用于确定边界栅格的正确性;
224.第三栅格数量阈值:步骤506中用于确定是否删除边界,以对边界进行修正。
225.实施例一
226.参见图2所示,图2为本技术实施例一基于深度图像的障碍物检测方法的一种流程示意图。在移动机器人侧,该方法包括,获取深度图像之后,
227.步骤201,剔除深度图像中与移动机器人所在承载平面距离小于设定高度距离的深度点,得到有效图像。
228.鉴于本技术是通过将深度图像中的深度点投影到移动机器人本体的承载平面,从而基于承载平面的投影点来检测障碍物,为了避免大量的地面深度点被当作障碍物,需要进行有效深度点的提取,以得到包括有效深度点的有效图像。具体方式如下:
229.步骤2011,基于深度图像,获取深度图像中深度点p所对应空间点p的空间信息,以获得空间点p的三维坐标信息,为便于描述,后文称作第一空间点,
230.以深度相机为双目相机为例,在该步骤中,对于深度图像中的任一深度点,可以根据深度相机中双目相机的内参、外参以及双目相机之间的基线距离,计算出深度点p在世界坐标系下的坐标信息。
231.鉴于深度图像中消影线以下的深度点更能反映出物理空间信息,同时为了减少计算量,可选地,可以获取深度图像中消影线以下的深度点。
232.步骤2012,根据第一空间点p的三维坐标信息,将第一空间点p的三维坐标转换到与相机光轴平行、且与所述承载平面垂直的第一平面中的二维坐标,得到二维空间点p',为便于描述,后文称作第二空间点。
233.参见图3所示,图3为移动机器人获取深度图像的一种示意图,参见图4所示,图4为图3中的侧面视图,该视图以相机坐标系中yczc平面为截面的视图的一种示意图。图3中,相机坐标系为:沿相机光轴方向的zc轴,垂直于相机光轴zc、且指向移动机器人承载平面(图3中竖直向下)的yc轴,垂直于yczc平面的xc轴;移动机器人坐标系为:移动机器人本体的前向方向即深度方向为xb轴,垂直于移动机器人承载面、竖直向上的zb轴(移动机器人高度方向),垂直于xbzb平面的yb轴(移动机器人本体的侧向方向)。其中,xb轴与zc轴平行,方向互为反方向;zb轴与yc轴平行,方向互为反方向;yb轴与xc轴平行,方向互为反方向。第一空间点p转换至移动机器人坐标系中的xbzb平面,相当于投影至移动机器人坐标系中的xbzb平面,该xbzb平面平行于相机光轴、且垂直于移动机器人承载平面(移动机器人坐标系中xbyb平面)。
234.步骤2013,计算第二空间点沿相机光轴方向的高度梯度,以得到深度方向上前后两第二空间点之间的高度梯度,
235.其中,相机光轴方向也可理解为深度方向,也就是相对于移动机器人而言的前后方向,高度方向为相机坐标系的yc轴方向,也就是移动机器人本体的高度方向,即,移动机器人坐标系的zb轴方向。
236.在该步骤中,对于任一第二空间点,计算其沿相机光轴方向的高度梯度。例如,对于任一第二空间点,选取与该第二空间点相邻的第二空间点,计算它们高度差与距离差的比值,用数学式表达为:
[0237][0238]
其中,dh表示两第二空间点之间的高度差,dz表示两第二空间点之间相机光轴方向(zc轴方向)的距离差。
[0239]
所述与该第二空间点相邻的第二空间点包括:zc轴方向上位于与该第二空间点在前相邻位置的第二空间点,zc轴方向上位于与该第二空间点在后相邻位置的第二空间,以及,zc轴方向上位于与该第二空间点在前/在后相邻位置的高度方向上的第二空间点,例如,图4中的第二空间点4、5。
[0240]
如图4中,根据第二空间点1与第二空间点2之间的zc轴方向的距离、和高度距离,可以得到第二空间点1与第二空间点2沿zc轴方向的高度梯度;同样地,可以得到图中第二空间点3分别与第二空间点4、5沿zc轴方向的高度梯度。可以看出,当前、后两第二空间点之间沿zc轴方向的距离相同时,高度梯度越大,说明属于障碍物的可能性越大。基于此,利用沿zc轴方向高度梯度差异可剔除掉地面深度点。
[0241]
为提高利用沿zc轴方向高度梯度差异来剔除掉地面上的空间点的可靠性,较佳地,对于任一第二空间点,计算该第二空间点,与,沿zc轴方向与该第二空间点具有设定第一距离阈值的第二空间点之间的高度梯度,使得高度梯度的计算可以在当前同一距离差的前提下进行,从而避免由于距离差的差异导致高度梯度对障碍物信息的表征不可靠。这样,步骤2013中,所述前后两第二空间点之间沿zc轴方向的距离可以满足当前第一距离阈值;
[0242]
步骤2014,根据设定的高度梯度阈值,筛选出大于高度梯度阈值的高度梯度,得到有效第二空间点,基于有效第二空间点,便可得到深度图像中的有效深度点。
[0243]
在该步骤中,将所计算的各个高度梯度与高度梯度阈值进行比较,
[0244]
如果高度梯度大于高度梯度阈值,则保留用于计算该高度梯度的两个第二空间点,
[0245]
如果高度梯度不大于高度梯度阈值,则剔除用于计算该高度梯度的两个第二空间点,从而剔除掉地面上的空间点,避免将地面上的空间点识别成障碍物。
[0246]
鉴于有效第二空间点对应有有效第一空间点,有效第一空间点对应有深度图像中的深度点,故而,可以得到深度图像中的有效深度点。
[0247]
步骤2015,判断所有第二空间点的高度梯度是否计算完毕,如果是,则根据所有有效深度点,基于深度图像,获取该深度图像的有效图像,然后执行步骤202,否则,更新第一距离阈值,例如,可以按照设定的步长增加或减少所述第一距离阈值,返回步骤2013,
[0248]
步骤202,获取有效图像中有效深度点在移动机器人本体的承载平面中的投影,得到投影点;
[0249]
在该步骤中,可以将深度图像中有效深度点投影至移动机器人本体的承载平面,得到投影后的承载平面有效深度点;也可以是,将有效第二空间点对应的有效第一空间点投影至移动机器人本体的承载平面,得到投影后的承载平面有效第一空间点;为便于描述,所述投影后的承载平面有效深度点、投影后的承载平面有效第一空间点均可称为投影点。
[0250]
投影可以通过坐标系的转换来进行。例如,
[0251]
对于任一有效深度点,根据该有效深度点坐标信息,将有效深度点转化为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息;
[0252]
或者,
[0253]
对于任一有效深度点,将有效深度点所对应的第一空间点三维坐标信息转换为移动机器人坐标系下承载平面中的二维坐标信息,得到该有效深度点的投影点的坐标信息;
[0254]
其中,移动机器人本体的承载平面为移动机器人坐标系下的xbyb平面,通常为地平面。
[0255]
步骤203,删除孤立的投影点,
[0256]
在该步骤中,遍历投影点,如果所遍历的当前投影点的第一投影点邻域范围内的投影点数量小于设定的第一投影点数量阈值,则判定该投影点实际上为无效投影点,即为孤点,对其进行删除,较佳地,如果第一投影点邻域范围内没有其他投影点,则判定该投影点实际上为无效投影点,即为孤点,对其进行删除,
[0257]
其中,第一投影点邻域范围可以根据需要设定。
[0258]
步骤204,筛选出与移动机器人距离小于设定距离阈值的投影点,将筛选出的投影点作为第一边界。
[0259]
较佳地,根据投影点的坐标信息,筛选出与移动机器人最近的投影点,将筛选出的投影点作为第一边界。
[0260]
步骤205,对第一边界中的投影点进行聚类筛选,剔除错误的投影点,以进行边界优化。
[0261]
由于存在的各种误检,为了提高障碍物检测的准确性,基于投影点进行聚类过滤和边界优化。鉴于错误投影点是少数的,并且是面积较小的,通过统计第一边界投影点的连续程度来进行筛选。具体如下:
[0262]
步骤2051,检测第一边界中的非连续边界区间和连续边界区间,
[0263]
在该步骤中,将第一边界区分为连续或非连续两类边界区间,只要检测出其中一类边界区间,另一类边界区间便可确定,这样,可以根据第一边界中投影点之间的距离小于设定的投影点距离阈值来检测第一边界中的连续投影点,和/或,根据第一边界中投影点之间的距离不小于设定的投影点距离阈值来检测第一边界中的非连续投影点;根据连续投影点所组成的边界长度大于设定的第一投影点长度阈值来检测连续边界区间,和/或,根据检测第一边界中的非连续投影点所在的边界区间或者连续投影点所组成的边界长度不大于设定的第一投影点长度阈值来检测非连续边界区间,从而确定第一边界中的连续边界区间、以及非连续边界区间。
[0264]
其中,
[0265]
检测第一边界中的连续边界区间的方式可以为:
[0266]
当第一边界中相邻投影点之间连续、且具有连续投影点的边界长度大于第一投影点长度阈值,则该具有连续投影点的边界为所述第一边界中的连续边界区间;相邻投影点之间连续为:相邻投影点之间的距离小于设定的投影点距离阈值;
[0267]
检测第一边界中的非连续边界区间的方式可以为:
[0268]
当第一边界中相邻投影点之间不连续,和/或具有连续投影点的边界长度不大于设定的第一投影点长度阈值,则该相邻投影点和/或该具有连续投影点的边界为所述第一边界中的非连续边界区间;相邻投影点之间不连续为:相邻投影点之间的距离不小于设定的投影点距离阈值。
[0269]
较佳地,当移动机器人与第一边界的距离小于设定的第二距离阈值时,即,移动机器人与第一边界的距离较近时,则投影点距离阈值为第一投影点距离阈值;
[0270]
当移动机器人与第一边界的距离不小于设定的第二距离阈值时,即,移动机器人与第一边界的距离较远时,则投影点距离阈值为第二投影点距离阈值,
[0271]
第一投影点距离阈值大于第二投影点距离阈值;这样,移动机器人与第一边界的距离较远时,连续投影点之间的距离可以较小,反之,移动机器人与第一边界的距离较近时,随着投影点准确性的提高,连续投影点之间的距离可以较大。
[0272]
较佳地,同时检测出第一边界中的连续边界区间和非连续边界区间的方法包括:
[0273]
判断第一边界中相邻投影点之间距离是否小于投影点距离阈值,如果是,则判定该相邻投影点连续,
[0274]
判断由连续相邻投影点组成的边界长度是否大于第一投影点长度阈值,如果是,则判定该边界为第一边界中的连续边界区间;
[0275]
如果相邻投影点不连续,和/或由相邻投影点组成的边界长度不大于第一投影点
长度阈值,则判定由该不连续的相邻投影点组成的边界区间、和/或由组成的边界长度不大于第一投影点长度阈值的相邻投影点组成的边界区间为第一边界中的非连续边界区间;
[0276]
反复执行,直至第一边界中所有投影点都进行了检测。
[0277]
步骤2052,对非连续边界区间中的投影点,检测其正确性,判断被检测的投影点是否正确,如果正确,则保留该投影点,如果错误,则执行步骤2053,
[0278]
在该步骤中,对非连续边界区间中的任一投影点,根据该投影点的第二投影点邻域范围内是否具有投影点,来判定该投影点的正确性:
[0279]
当第二投影点邻域范围内投影点数量大于设定的第二投影点数量阈值,则判定该投影点为正确投影点,
[0280]
否则,判定该投影点为错误投影点。
[0281]
步骤2053,从该错误投影点开始,沿深度方向,依次地对投影点进行逐个筛选,以筛选出一个正确投影点,将筛选出的正确投影点作为边界中的投影点;反复执行该步骤,直至每个错误投影点都被筛选;将连续边界区间、步骤2052保留的投影点、和筛选出的正确投影点作为障碍物更新后的边界,即第二边界。
[0282]
步骤206,移动机器人与所述第二边界小于设定的第三距离阈值时,对所述第二边界中的投影点进行筛选,以便进行近距离情形下的边界优化。
[0283]
在该实施例中,鉴于移动机器人在距离障碍物较近的条件下,障碍物能够被看得更为清楚,可选地,如果移动机器人与障碍物(即第二边界)的距离小于设定的第三距离阈值,统计第二边界中投影点的数量和/或长度,当统计边界中的投影点数量少于设定的第三投影点数量阈值,和/或,统计边界中的投影点长度少于设定的第二投影点长度阈值,则判定所统计投影点所在边界区间为错误边界区间,删除该边界区间,从而对边界进行了修正。
[0284]
在移动机器人与第二边界的距离不小于第三距离阈值时,保留步骤205所得到的第二边界,直至移动机器人与所述第二边界小于第三距离阈值。
[0285]
所应理解的是,步骤206也可用于对第一边界进行筛选,即可以在步骤204之后进行,此外,步骤206还可以既在步骤204之后对第一边界进行筛选,又在步骤205之后对第二边界进行筛选,以对当前边界进行修正。
[0286]
步骤207,将当前第二边界作为障碍物检测结果,并输出。
[0287]
本实施例通过高度梯度去除地面深度点,并删除孤立的投影点,通过边界中投影点的聚类筛选,以删除边界中错误投影点,将正确投影点作为边界中的投影点,进一步地通过近距离情况下的边界区间的修正,降低了障碍物检测时对深度图像质量的依赖,提高了障碍物检测的准确性。
[0288]
实施例二
[0289]
参见图5所示,图5为本技术基于深度图像的障碍物检测方法中确定障碍物边界的一种流程示意图。该方法包括,
[0290]
步骤501,剔除深度图像中与移动机器人所在承载平面距离小于设定高度距离的深度点,得到有效图像。该步骤与步骤201相同。
[0291]
步骤502,鉴于深度图像中深度点数量的巨大,深度点可以呈现为点云,与之对应的投影点数量也会巨大,为便于分析投影点的分布和对投影点的处理,构建二维栅格,以将承载平面中的投影点分布于各栅格中,得到用于表征投影点分布的栅格图。
[0292]
其中,具有最小区域的栅格的区域大小可根据投影点的期望分布、障碍物尺寸等因素的需要设定,可选地,每个投影点位于一栅格中,以便于栅格与投影点对应;较佳地,使得一定比例数量的投影点位于栅格中,这样,栅格中可包括一个以上的投影点。
[0293]
为便于移动机器人在行进过程中对障碍物的检测而进行避障,二维栅格的列栅格沿移动机器人当前深度方向排列,例如,沿如图3中移动机器人坐标系中的xb方向(深度方向)排列列栅格,行栅格的排列方向与列栅格排列方向垂直,例如,沿如图3中移动机器人坐标系的yb方向。为便于描述栅格图中各栅格的位置信息,可以将栅格图视为图像平面,并采用图像坐标系来描述,即,栅格图的左上角为坐标原点,水平向右的方向为u轴,竖直向下的方向为v轴。
[0294]
为便于进行投影点的筛选,根据栅格中投影点的分布情况对栅格进行标识:
[0295]
对于任一栅格,
[0296]
如果栅格中没有投影点,则说明该栅格属于空旷区域,赋予该栅格用于标识空旷属性的第一标记,
[0297]
如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中无投影点,则说明该栅格可能属于障碍物边界,赋予该栅格用于标识边界属性的第二标记,较佳地,如果与该栅格相邻的同一列栅格中,位于靠近移动机器人一侧的栅格(图像坐标系中位置坐标较大的栅格)中无投影点和/或位于远离移动机器人一侧的栅格(图像坐标系中位置坐标较小的栅格)中有投影点,则该栅格属于障碍物边界的可能性大,赋予该栅格所述第二标记,其中,靠近移动机器人的距离、远离移动机器人的距离根据需要分别设定。
[0298]
如果栅格中有投影点,且与该栅格位于同一列的相邻边界栅格中有投影点,则说明该栅格可能属于障碍物,赋予该栅格用于标识障碍物属性的第三标记,
[0299]
这样,栅格图中可以包括边界栅格、障碍物栅格、空旷栅格。
[0300]
所述进行标识可以采用像素值来进行标记。例如,设置栅格的像素值。参见图6所示,图6为一种投影点栅格图的示意图。图中斜线栅格为空旷区域,白色栅格为障碍物边界,灰色栅格为障碍物。
[0301]
步骤503,删除孤立的栅格中的投影点,或者,标记栅格图中孤立的栅格为空旷栅格,
[0302]
在该步骤中,遍历栅格图中的栅格,如果当前遍历的栅格的第一栅格邻域范围内空旷栅格的数量小于设定的第一栅格数量阈值,或者,投影点的数量小于设定的第一投影点数量阈值,则判定该栅格为孤立的栅格,该栅格中的投影点为无效投影点,即,该栅格或该栅格中的投影点为孤点,对该栅格中的投影点进行删除,或者,标记栅格图中孤立栅格为空旷栅格。
[0303]
其中,第一栅格邻域范围可以根据需要设定,例如,设定m
×
n个栅格作为邻域。可选地,当前遍历的栅格的第一栅格邻域范围内都为空旷栅格,第一栅格邻域范围内没有其他投影点,则判定该栅格为孤点,对其中的投影点进行删除。
[0304]
为提高孤点删除的效率,较佳地,遍历栅格图中的非空旷栅格。
[0305]
参见图7所示,图中,在栅格的邻域内无其他具有投影点的栅格,该栅格为孤点。
[0306]
步骤504,提取栅格图中每一列栅格中具有最大位置坐标、且具有边界标识的边界栅格,作为第一边界。
[0307]
鉴于所有可能有效的障碍物点都投影在栅格图中,靠近移动机器人的一侧是避障时更关注的投影点,即移动机器人可能先碰撞的投影点,所以从栅格图中提取出来的障碍物边界是每一列栅格中最靠近移动机器人的那一个具有边界标识的栅格,也就是图像坐标系中位置坐标最大的投影点。
[0308]
由于在移动机器人前方可能有若干个错误投影点,这些位置实际上并没有障碍物,可能是灯光或者地面的错误检测,因此,所提取的第一边界是粗略边界。例如,图6中白色的边界栅格所组成的第一边界。
[0309]
步骤505,对第一边界中的边界栅格进行聚类筛选,以进行边界优化。
[0310]
由于存在的各种误检,为了提高障碍物检测的准确性,基于栅格图进行聚类过滤和边界优化。鉴于错误投影点是少数的,并且是面积较小的,通过统计第一边界的连续程度来进行筛选。具体如下:
[0311]
步骤5051,检测第一边界中的非连续边界区间和连续边界区间,
[0312]
在该步骤中,鉴于第一边界包括有连续和非连续两类边界区间,只要检测出其中一类边界区间,另一类边界区间便可确定,故而,可以根据第一边界中栅格之间的距离小于设定的栅格距离阈值来检测第一边界中的连续边界栅格,和/或,根据第一边界中栅格之间的距离不小于设定的栅格距离阈值,来检测第一边界中的非连续边界栅格;根据连续边界栅格所组成的边界长度大于设定的第一栅格长度阈值来检测连续边界区间,和/或,根据检测第一边界中的非连续边界栅格所在的边界区间、或者连续边界栅格所组成的边界长度不大于设定的第一栅格长度阈值,来检测非连续边界区间,从而确定第一边界中的连续边界区间、以及非连续边界区间。
[0313]
其中,检测第一边界中的连续边界区间的方式可以为:
[0314]
当第一边界中相邻边界栅格之间连续、且具有连续边界栅格的边界长度大于长度阈值,则该具有连续边界栅格的边界为所述第一边界中的连续边界区间;相邻边界栅格之间连续为:相邻边界栅格之间的距离小于设定的栅格距离阈值,或者,相邻边界栅格之间的数量小于设定的边界栅格数量阈值;较佳地,若第一边界中相邻两边界栅格所在的列栅格中存在列方向上的距离小于设定的栅格距离阈值,或者,所述相邻两边界栅格所隶属的列栅格中包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则所述相邻两边界栅格为连续。还可以是,若第一边界相邻两边界栅格所在的列栅格中存在列方向上距离的栅格数量小于设定的边界栅格数量阈值,或者,所述相邻两边界栅格所隶属列栅格中包括使得列方向上的栅格数量小于所述边界栅格数量阈值的其它边界栅格,则所述相邻两边界栅格为连续。其中,所述相邻两边界栅格所隶属的列栅格是指:分别与所述两边界栅格位于同一列所有的栅格。按照上述检测方式,图6中,边界中栅格8~栅格19均为连续栅格。
[0315]
检测第一边界中的非连续边界区间的方式可以为:
[0316]
当第一边界中相邻边界栅格之间不连续,和/或具有连续边界栅格的边界长度不大于设定的第一栅格长度阈值,则该相邻边界栅格和/或该具有连续边界栅格的边界为所述第一边界中的非连续边界区间;
[0317]
相邻边界栅格之间不连续为:相邻边界栅格之间的距离不小于设定的栅格距离阈值,或者,相邻边界栅格之间的数量不小于设定的边界栅格数量阈值;较佳地,若第一边界中相邻两边界栅格在列方向上的距离不小于设定的栅格距离阈值、且所述相邻两边界栅格
所隶属的列栅格中不包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,或者,第一边界相邻两边界栅格在列方向上的栅格数量不小于设定的边界栅格数量阈值、且所述相邻两边界栅格所隶属列栅格中不包括使得列方向上的栅格数量小于所述边界栅格数量阈值的其它边界栅格,则所述相邻两边界栅格为不连续。
[0318]
为便于理解,结合图6来说明。边界中栅格6和栅格8在行方向相邻,在列方向的距离较大,且栅格6所在列栅格和栅格8所在列栅格之间不包括使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,则栅格6和栅格8之间不连续;倘若栅格6所隶属的列栅格和/或栅格8所隶属的列栅格中包括有使得列方向上的距离小于所述栅格距离阈值的其它边界栅格,例如,图6中的栅格8'倘若为边界栅格,其位于栅格8所隶属的列栅格,即,栅格8'与栅格8位于同一列栅格中,栅格8'与栅格6之间在列方向上距离小于栅格距离阈值,即,栅格8所隶属的列栅格中包括了使得相邻两边界栅格所隶属的列栅格中列方向上的距离小于所述栅格距离阈值的边界栅格8',则这种情况下栅格6和栅格8之间为连续栅格。
[0319]
较佳地,当移动机器人与第一边界的距离小于设定的第二距离阈值时,即,移动机器人与第一边界的距离较近时,则栅格距离阈值为第一栅格距离阈值,边界栅格数量阈值为第一边界栅格数量阈值;
[0320]
当移动机器人与第一边界的距离不小于设定的第二距离阈值时,即,移动机器人与第一边界的距离较远时,则投影点距离阈值为第二栅格距离阈值,边界栅格数量阈值为第二边界栅格数量阈值
[0321]
第一栅格距离阈值大于第二栅格距离阈值,第一边界栅格数量阈值大于第二边界栅格数量阈值;这样,移动机器人与第一边界的距离较远时,连续边界栅格之间的距离可以较小,反之,移动机器人与第一边界的距离较近时,随着投影点准确性的提高,连续边界栅格之间的距离可以较大。
[0322]
较佳地,同时检测出第一边界中的连续边界区间和非连续边界区间的方法包括:
[0323]
判断第一边界中相邻边界栅格之间距离是否小于栅格距离阈值,或者,判断第一边界中相邻边界栅格之间的栅格数量是否小于边界栅格数量阈值,如果是,则判定该相邻边界栅格连续,
[0324]
判断由连续相邻边界栅格组成的边界长度是否大于第一栅格长度阈值,如果是,则判定该边界为第一边界中的连续边界区间;
[0325]
如果相邻边界栅格不连续,和/或由相邻边界栅格组成的边界长度不大于第一栅格长度阈值,则判定由该不连续的相邻边界栅格组成的边界区间、和/或由组成的边界长度不大于第一栅格长度阈值的相邻边界栅格组成的边界区间为第一边界中的非连续边界区间;
[0326]
反复执行,直至第一边界中所有边界栅格都进行了检测。
[0327]
例如,当移动机器人与第一边界的距离小于设定的第二距离阈值时,即,移动机器人与第一边界的距离较近时,则判断第一边界中相邻两边界栅格在列方向上的距离是否不小于设定的第一栅格距离阈值、且所述相邻两边界栅格所隶属的列栅格中是否存在使得列方向上的距离小于设定的第一栅格距离阈值的其它边界栅格,或者,判断第一边界相邻两边界栅格在列方向上的栅格数量是否不小于设定的第一边界栅格数量阈值、且所述相邻两边界栅格所隶属的列栅格中是否存在使得列方向上的栅格数量小于设定的第一边界栅格
数量阈值的其它边界栅格,如果是,则判定该相邻两列栅格中的边界栅格为连续边界栅格,否则,判定为非连续边界栅格,反复执行,直至第一边界中边界栅格所在的所有列栅格中的边界栅格都进行了检测,则得到由连续边界栅格组成的边界;
[0328]
当移动机器人与第一边界的距离不小于所述第二距离阈值时,即,移动机器人与第一边界的距离较远时,则判断第一边界中相邻两边界栅格在列方向上的距离是否不小于设定的第二栅格距离阈值、且所述相邻两边界栅格所隶属的列栅格中是否存在使得列方向上的距离小于设定的第二栅格距离阈值的其它边界栅格,或者,判断第一边界相邻两边界栅格在列方向上的栅格数量是否不小于设定的第一边界栅格数量阈值、且所述相邻两边界栅格所隶属的列栅格中是否存在使得列方向上距离的栅格数量小于设定的第二边界栅格数量阈值的其它边界栅格,如果是,则判定该相邻两列栅格中的边界栅格为连续边界栅格,否则,判定为非连续边界栅格,反复执行,直至第一边界中边界栅格所在的所有列栅格中的边界栅格都进行了检测,则得到由连续边界栅格组成的边界;
[0329]
其中,第一栅格距离阈值大于第二栅格距离阈值,或者,第一边界栅格数量阈值大于第二边界栅格数量阈值,这样,移动机器人与第一边界的距离较远时,栅格图中连续边界栅格之间的列方向的距离可以较小,反之,移动机器人与第一边界的距离较近时,栅格图中连续边界栅格之间的列方向的距离可以较大;
[0330]
当连续边界栅格组成的边界长度大于设定的第一栅格长度阈值,则判定该边界区间为连续边界区间,否则,判定为非连续边界区间。
[0331]
按照本步骤,如图6所示,图中,栅格8~栅格19为连续边界区间,栅格6、栅格20、21为非连续边界区间。
[0332]
步骤5052,对非连续边界区间中的边界栅格,检测边界栅格的正确性,判断被检测的边界栅格是否正确,如果正确,则保留该边界栅格,如果错误,则执行步骤5053,
[0333]
在该步骤中,对非连续边界区间中的任一边界栅格,根据该边界栅格第二栅格邻域范围内的栅格中所具有投影点的情况或所具有的非空旷栅格数量,来判定该边界栅格中的投影点或该边界栅格的正确性:
[0334]
当该边界栅格第二栅格邻域范围内的栅格中所具有的非空旷栅格数量大于设定的第二栅格数量阈值,或者,当该边界栅格邻域范围内的栅格中所具有的投影点数量大于设定的边界投影点数量阈值,则判定该边界栅格中的投影点正确,该边界栅格为正确栅格,
[0335]
否则,判定该边界栅格中的投影点错误,该边界栅格为错误栅格。
[0336]
例如,如图6中,假设边界栅格1的邻域范围为3
×
3个栅格,第二栅格数量阈值为4,边界栅格1邻域范围内仅有一个栅格2,不符合栅格正确性判定条件,故而判定边界栅格1为错误栅格,同样地,边界栅格3也将被判定为错误栅格。
[0337]
步骤5053,从该错误栅格开始,沿深度方向,依次地对与错误栅格位于同一列的栅格中的栅格进行逐个筛选,以筛选出一个正确栅格,将筛选出的正确栅格更新为边界栅格;反复执行该步骤,直至每个错误栅格都被更新;将连续边界区间栅格、保留的边界栅格和更新得到边界栅格作为第二边界。
[0338]
在该步骤中,当边界栅格为错误栅格时,说明正确的边界栅格在栅格图中应该在沿移动机器人当前深度方向,故而,从该边界栅格开始,沿移动机器人行进方向对与该边界栅格位于同一列的栅格依次进行栅格正确性检测,当一被检测栅格正确时,则将该被检测
栅格更新为边界栅格,以作为该列栅格的边界;或者,从该边界栅格中的投影点开始,沿移动机器人行进方向,即当前深度方向,对与该边界栅格位于同一列的栅格中的投影点依次进行投影点正确性检测,当被检测投影点正确时,则将该投影点所在栅格更新为边界栅格。如图6所示,当移动机器人当前移动方向为向上时,由于边界栅格1为错误栅格,说明正确的边界栅格在栅格图中应该在边界栅格1所在列栅格的上方,故而对与边界栅格1位于同一列的栅格,从边界栅格1开始,向上逐个检测各栅格的正确性,按照上述假设的栅格正确性判定条件,检测到栅格5为正确栅格,则将栅格5更新为边界栅格。这样,孤立的两个边界栅格1、3会被删除,边界栅格会向上移动至实际边界。步骤506,移动机器人与障碍物的距离小于设定的第三距离阈值时,对当前第二边界本身进行筛选,以便进行近距离情形下的边界优化。
[0339]
鉴于移动机器人在距离障碍物较近的条件下,障碍物能够被看得更为清楚,可选地,如果移动机器人与障碍物的距离小于设定的第三距离阈值,统计第二边界中边界栅格的数量和/或长度,当统计的边界栅格的数量少于设定的第三栅格数量阈值,和/或,统计的边界栅格长度小于设定的第二长度阈值,和/或,边界栅格内投影点的数量小于设定的第三投影点数量阈值,则判定该边界栅格为错误栅格,删除该边界栅格,或者,删除该边界栅格中的投影点。
[0340]
在移动机器人与障碍物的距离不小于第三距离阈值时,保留步骤505所得到的第二边界,直至移动机器人与障碍物的距离小于第三距离阈值。
[0341]
步骤507,将当前第二边界作为障碍物检测结果,并输出。
[0342]
在上述步骤中,所应理解的是,对于栅格图中栅格的判定、处理也可以理解为是对栅格中的投影点的判定、处理;步骤503中用于进行孤点删除的第一栅格邻域范围和步骤5052中用于进行栅格正确性检测的第二栅格邻域范围可以不相同。
[0343]
本技术实施例针对深度相机输出的深度图像点云存在错误深度点的问题,将深度点投影到移动机器人承载平面的二维栅格图中,将空间三维信息降为二维信息,从而既能够获得三维感知信息,又能够在二维环境中进行快速的路径规划,并可以高效地进行错误投影点的筛选,通过多种筛选策略,将错误深度点进行剔除,降低了对深度相机的深度图质量的要求,对于低质量的深度图像,仍然能够进行障碍物检测,有利于提高移动机器人避障的可靠性。
[0344]
参见图8所示,图8为本技术实施例基于深度图像的障碍物检测装置的一种示意图。该装置包括,
[0345]
有效深度点提取模块,用于剔除深度图像中与移动机器人承载平面的高度小于设定高度阈值的深度点,得到有效图像;
[0346]
投影模块,用于将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点,
[0347]
边界提取模块,用于基于所述承载平面中的投影点,提取距离移动机器人小于设定距离阈值的投影点,得到第一边界。
[0348]
进一步地,所述装置还包括至少以下之一模块:
[0349]
孤点处理模块,用于删除孤立的投影点,
[0350]
第一筛选模块,用于对第一边界中的投影点进行聚类筛选,剔除错误的投影点,得
到第二边界,
[0351]
第二筛选模块,用于在移动机器人与当前边界小于设定的边界距离阈值的情况下,修正当前边界;例如,在移动机器人与障碍物的距离小于设定的第三距离阈值的情况下,统计第一边界和/或第二边界中投影点的数量和/或长度,当统计边界中的投影点数量小于设定的第三投影点数量阈值,和/或,统计边界中的投影点长度小于设定的第二投影点长度阈值,则删除所统计投影点所在的边界区间。
[0352]
所述投影模块还包括,
[0353]
投影子模块,用于将深度图像中的有效图像投影到所述承载平面,得到承载平面中的投影点,
[0354]
栅格化子模块,用于构建二维栅格,将承载平面中的投影点分布于各栅格中,得到用于表征投影点分布的栅格图,并对于每一栅格,根据栅格中投影点的情况进行标识。
[0355]
本发明实施例还提供了一种移动机器人,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器被配置为实现上述任一所述基于深度图像的障碍物检测的步骤。
[0356]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0357]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0358]
本发明实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于深度图像的障碍物检测的步骤。
[0359]
对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0360]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0361]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1