1.本发明属于智能交通技术领域,具体涉及一种基于立体视觉的动态障碍物检测方法。
背景技术:2.智能交通系统中的动态障碍物检测方法,一方面不仅要对动态物体进行正确的检测和分类,而且要进行准确的运动估计和预测;另一方面,检测可能不仅限于人类,也可能涉及大小和速度不同的动态物体,如动物或其他交通工具等。
3.目前主流的动态障碍物检测方法有两种,一种是使用非视觉传感器,如激光雷达、毫米波雷达等,靠主动发射信号来探测物体位置信息。其具有测量误差小,受环境影响小的优点,但也存在着较多同类传感同时工作时互相干扰,对特殊物体的无法很好的检测以及成本较高等缺陷,不能大规模部署到智能交通系统。另一种是使用视觉传感器,利用可见光作为接收信息,相较于非视觉传感器,视觉传感器在获取场景三维信息的同时还可以采集环境的图像信息,因此可以为后续的障碍物检测获得更多的信息。该方法对相机硬件要求低,成本也低,但是对环境光照非常敏感,且计算复杂度高,不能在计算受限的平台上实时运行。
4.综上所述,现有技术存在以下缺点:
①
非视觉传感器工作时互相干扰,对特殊物体的无法很好的检测;
②
非视觉传感器方法成本高,大规模部署困难;
③
视觉传感器方法的检测精度有限,且不同的方法仅适用于检测特定的动态障碍物;
④
视觉传感器方法的实时性受限于平台的计算能力。
技术实现要素:5.本发明旨在克服现有技术的不足,提供一种成本低、计算量小、适应性广、精度高的基于立体视觉的动态障碍物检测方法,便于大规模应用到智能交通系统。
6.本发明提供的基于立体视觉的动态障碍物检测方法,具体步骤为:
7.(1)点云生成,是从立体图像中获取深度信息,结合视觉slam(simultaneous localization and mapping,即同步定位与建图)得到的位姿生成原始点云数据;
8.(2)点云滤波,是对点云数据进行降噪和下采样处理,提高方法的准确性和实时性;
9.(3)点云聚类,是对滤波后的点云数据进行聚类,得到障碍物的预聚类结果;
10.(4)障碍物轮廓提取,是对预聚类的结果进行最小外接矩形框提取;
11.(5)2d目标检测,是对目标进行2d检测,得到2d检测边界框,可对点云聚类和3d跟踪结果进行校正;
12.(6)动态障碍物跟踪,是把点云分类得到的分类结果和2d目标检测得到的2d检测边界框融合,同时对动态障碍物的轨迹进行跟踪预测。
13.进一步地,步骤(1)所述点云生成,具体流程为:
14.利用双目相机获取视场的左右视图,接着采用改进的自适应立体匹配深度网络(madnet)【1】获取视差图,本发明采用基于深度学习的立体匹配网络较好地兼顾了实时性和准确性。在得到视差图后,利用相机间的位置关系通过三角测量的原理转换为三维点云。双目立体视觉系统如图2所示。图2中,世界坐标系中的点p在左右视图上的成像点为x
l
和x
r
,焦距为f,b为两相机光心的距离,则视差d=x
l
‑
x
r
,利用相似三角形可计算出点p的三维坐标为:
[0015][0016]
已知视差d=x
l
‑
x
r
,则:
[0017][0018]
其中,x
c
,y
c
,z
c
为p点在相机坐标系中的坐标。
[0019]
进一步地,步骤(2)所述点云滤波,具体流程为:
[0020]
(1)设置点云的高度范围阈值(例如:l
ground
=0.1m,l
height
=2.0m),过滤掉地面等不在测试距离范围的点云;
[0021]
(2)采用体素滤波方法,在不破坏点云本身几何结构的同时对点云数据进行下采样处理;
[0022]
(3)采用半径滤波方法,减少障碍物边缘的噪声。
[0023]
进一步地,步骤(3)所述点云聚类,具体流程为:
[0024]
为了提取障碍物的外围矩形轮廓,有必要对障碍物点进行聚类,本发明采用一种改进的dbscan算法【2】,该算法利用密度进行聚类,可以自动确定簇的数量,计算速度快且能够有效处理噪声点和发现任意形状的空间聚类。dbscan算法中,需要确定两个参数:eps:在一个点周围邻近区域的半径;minpts:邻近区域内至少包含点的个数。改进算法的具体操作为:
[0025]
(1)根据knn分布,2d目标检测的输出以及数学统计分析自适应计算出最优全局参数eps与minpts;
[0026]
(2)将所有点分类,分别标记为核心点、边界点和噪声点;
[0027]
(3)删除标记出的噪声点;
[0028]
(4)连接在eps距离内的所有核心点,并归入到同一簇中;
[0029]
(5)各个簇中的核心点对应种子代表对象的选择;
[0030]
(6)遍历滤波后的点云数据集,根据选择的代表对象进行区域查询,将边界点分入与之对应核心点的簇中;如果数据集合中所有的点都被处理,则算法结束。
[0031]
进一步地,步骤(4)所述障碍物轮廓提取,采用最小凸包法结合模糊线段的方法提取聚类结果的矩形框,具体流程为:
[0032]
首先,利用graham扫描提取凸包点;然后,利用模糊线段法提取障碍物的矩形边框。
[0033]
其中,所述利用graham扫描法提取凸包点,具体操作流程为(参见图3):
[0034]
(1)把同一聚类结果的所有点放在二维坐标系中,则纵坐标最小的点一定是凸包上的点,记为p0;
[0035]
(2)把所有点的坐标平移一下,使p0作为原点;
[0036]
(3)计算各个点相对于p0的幅角θ,按从小到大的顺序对各个点排序;当θ相同时,距离p0比较近的排在前面,依次得到的结果记为为p1,p2,p3,p4,p5,p6,p7,p8;由几何知识可知,结果中第一个点p1和最后一个点p8一定是凸包上的点;把第一个点p0和第二个点p1放在栈里面;从步骤3求得的那个结果里,把p1后面的那个点拿出来做当前点,即p2,接下来开始找第三个点;
[0037]
(4)连接栈中第二个和栈顶的那个点,得到直线l;看当前点是在直线l的右边还是左边;如果在直线上,或者直线的右边就执行步骤5;如果在直线的左边就执行步骤6;
[0038]
(5)如果在右边,则栈顶的那个元素不是凸包上的点,把栈顶元素出栈,执行步骤4;
[0039]
(6)当前点是凸包上的点,把它压入栈,执行步骤7;
[0040]
(7)检查当前点是不是步骤3那个结果的最后一个元素;如果是最后一个元素,则结束;如果不是最后一个元素,则把当前点后面那个点做当前点,返回步骤4;
[0041]
进一步地,步骤(5)所述2d目标检测,具体流程为:
[0042]
采用mobilenetv3
‑
ssd网络【4】对目标进行运动检测,并将生成的2d边界框用于优化聚类和跟踪结果。mobilenetv3
‑
ssd网络在运行时间和性能之间做到了很好的权衡。具体实现见参考资料。
[0043]
进一步地,步骤(6)所述动态障碍物跟踪,具体流程为:
[0044]
首先根据卡尔曼滤波器的预测结果对当前动态障碍物列表中预测的障碍物建立搜索区域;接着对相邻两帧之间的障碍物进行数据关联,在时间t,将全局框架中所有当前簇的质心计算为簇中所有点的平均值,将它们关联到最接近的质心,并将该簇关联到前一帧,实现帧间目标和轨迹的匹配;然后基于2d目标检测模块的输出边界约束以及数据关联的结果对卡尔曼滤波器进行动态更新,从而完成对目标障碍物速度和位置的滤波和预测;最后输出关联目标。其算法流程见图3所示。
[0045]
其中,卡尔曼滤波器的操作包括两个阶段:预测与更新。在预测阶段,滤波器使用上一状态的估计结果,做出对当前状态的估计。在更新阶段,滤波器利用当前状态的观测值优化在预测阶段获得的预估值,以获得一个当前阶段更精确的新估计值。
[0046]
其中,kf滤波器的输入为世界坐标系下当前簇的质心在x
‑
y平面的取值,即由于引入了2d目标检测模块,该值受到检测结果边界值的约束,该系统的动态和测量模型可以定义为:
[0047]
[0048][0049]
其中定义为状态变量,q是系统噪声的建模,r是对测量噪声的建模,h用来提取的前两个维度,n(0,q),n(0,r)是假设噪声建模满足期望为0的正太分布,a定义为:
[0050][0051]
其中,t
s
为两次更新的时间间隔。
[0052]
本发明技术方案的优点主要体现在:
[0053]
①
既解决了使用非视觉传感器的高成本问题,又改善了基于视觉传感器方法的检测精度;
[0054]
②
本发明中,点云生成模块采用快速实时的模块化自适应深度立体视觉网络从立体图像中推断出视差图,改善了基于视觉传感器方法对平台计算能力的依赖,同时提高了实时性;
[0055]
③
本发明引入了2d目标检测模块,一方面提高了点云聚类和位姿跟踪的准确性,另一方面使动态障碍物的检测不再局限于特定的类型;
[0056]
④
本发明中各个模块的实现随着人工智能技术的发展和新算法的提出可进行方法替换,完成更新迭代。
附图说明
[0057]
图1为本发明方法流程图示。
[0058]
图2为双目立体视觉系统。
[0059]
图3为graham扫描法示例图示。
[0060]
图4为动态障碍物跟踪算法流程图示。
具体实施方式
[0061]
如图1所示:
[0062]
步骤一:点云生产模块的实施过程为:先基于双目相机采集视场的左右视图,将采集的左右视图输入到基于深度学习的立体匹配网络中得到视差图,本发明采用改进的madnet网络,接着通过三角测量的原理结合相机参数将视差图转换为相机坐标系下的三维点云,本发明通过slam模块得到的位姿信息将相机坐标系下的点云变换到一个全局坐标系下,完成点云生成操作;
[0063]
步骤二:点云滤波模块是对步骤一得到的点云进行降噪和下采样处理,本发明采用的点云滤波操作为:
[0064]
(1)设置点云的高度范围阈值,考虑到真实场景障碍物的高度范围,可设置为l
ground
=0.1m,l
height
=2.0m,过滤掉地面等不在测试距离范围的点云;
[0065]
(2)采用体素滤波方法,在不破坏点云本身几何结构的同时对点云数据进行下采
样处理;
[0066]
(3)采用半径滤波方法,减少障碍物边缘的噪声。
[0067]
步骤三:点云聚类模块本发明采用一种改进的dbscan算法,该算法利用密度进行聚类,可以自动确定簇的数量,计算速度快且能够有效处理噪声点和发现任意形状的空间聚类。dbscan算法中,需要首先确定两个参数:eps:在一个点周围邻近区域的半径;minpts:邻近区域内至少包含点的个数。改进算法的具体操作为:
[0068]
(1)根据knn分布,2d目标检测的输出以及数学统计分析自适应计算出最优全局参数eps与minpts;
[0069]
(2)将所有点分类,分别标记为核心点、边界点和噪声点;
[0070]
(3)删除标记出的噪声点;
[0071]
(4)连接在eps距离内的所有核心点,并归入到同一簇中;
[0072]
(5)各个簇中的核心点对应种子代表对象的选择;
[0073]
(6)遍历滤波后的点云数据集,根据选择的代表对象进行区域查询,将边界点分入与之对应核心点的簇中;如果数据集合中所有的点都被处理,则算法结束。
[0074]
步骤四:障碍物轮廓提取模块,采用最小凸包法结合模糊线段的方法,具体操作为:
[0075]
首先,利用graham扫描提取凸包点,参见图3,具体流程为:
[0076]
(1)把同一聚类结果的所有点放在二维坐标系中,则纵坐标最小的点一定是凸包上的点,如图3中的p0。
[0077]
(2)把所有点的坐标平移一下,使p0作为原点。
[0078]
(3)计算各个点相对于p0的幅角θ,按从小到大的顺序对各个点排序。当θ相同时,距离p0比较近的排在前面。例如图3得到的结果为p1,p2,p3,p4,p5,p6,p7,p8。我们由几何知识可以知道,结果中第一个点p1和最后一个点p8一定是凸包上的点。把第一个点p0和第二个点p1放在栈里面。现在从步骤3求得的那个结果里,把p1后面的那个点拿出来做当前点,即p2,接下来开始找第三个点。
[0079]
(4)连接栈中第二个和栈顶的那个点,得到直线l。看当前点是在直线l的右边还是左边。如果在直线上,或者直线的右边就执行步骤5;如果在直线的左边就执行步骤6。
[0080]
(5)如果在右边,则栈顶的那个元素不是凸包上的点,把栈顶元素出栈,执行步骤4。
[0081]
(6)当前点是凸包上的点,把它压入栈,执行步骤7。
[0082]
(7)检查当前点是不是步骤3那个结果的最后一个元素。是最后一个元素的话就结束。如果不是的话就把当前点后面那个点做当前点,返回步骤4。
[0083]
然后,利用模糊线段法提取障碍物的矩形边框。
[0084]
步骤五:2d目标检测模块具体操作为:
[0085]
本发明采用mobilenetv3
‑
ssd网络对目标进行运动检测,并将生成的2d边界框用于优化聚类和跟踪结果。
[0086]
步骤六:动态障碍物跟踪模块具体操作为:
[0087]
首先根据卡尔曼滤波器的预测结果对当前动态障碍物列表中预测的障碍物建立搜索区域;接着对相邻两帧之间的障碍物进行数据关联,在时间t,将全局框架中所有当前
簇的质心计算为簇中所有点的平均值,将它们关联到最接近的质心,并将该簇关联到前一帧,实现帧间目标和轨迹的匹配;然后基于2d目标检测模块的输出边界约束以及数据关联的结果对卡尔曼滤波器进行动态更新,从而完成对目标障碍物速度和位置的滤波和预测;最后输出关联目标。其算法流程见图4所示。
[0088]
参考文献:
[0089]
【1】tonioni,alessio,et al."real
‑
time self
‑
adaptive deep stereo."proceedings of the ieee/cvf conference on computer vision and pattern recognition.2019.以及,haiyang wang,xinchao wang,jie song,jie lei,mingli song.:faster self
‑
adaptive deep stereo.in:proceedings of the asian conference on computer vision(accv),2020.
[0090]
【2】martin ester,hans
‑
peter kriegel,jorg sander,xiaowei xu,et al.“a density
‑
based algorithm for discovering clusters in large spatial databases with noise.”in kdd,volume 96,pages 226
–
231,1996.和li,shan
‑
shan.“an improved dbscan algorithm based on the neighbor similarity and fast nearest neighbor query.”ieee access 8(2020):47468
‑
47476.
[0091]
【3】debled
‑
rennesson i,feschet f,rouyer
‑
degli j.optimalblurred segments decomposition of noisy shapes in lineartime.computers&graphics,2006,30(1):30~36.
[0092]
【4】howard,andrew,et al."searching for mobilenetv3."proceedings of the ieee/cvf international conference on computer vision.2019。