朱素杰,王 萌
(周口科技职业学院,河南 周口 466100)
高级驾驶辅助系统(Advanced Driver Assistance Systems, ADAS)旨在提高汽车的安全性和驾驶舒适性,其功能包括目标检测和跟踪、交通标志检测和识别、行人检测等。ADAS面临的最重要的难题是车辆对外部环境的感知,然而随着立体视觉技术的不断成熟,立体匹配可以非常精确和详细地对周围环境进行直观的描述。立体匹配的关键问题在于从不同视点拍摄的立体图像中找到像素之间的对应关系[1]。为此,文献[2]提供了一种新的高密度立体声通信算法分类法(STM)和一个用于定量评价立体算法(SM)的试验台。可以看出,这两种算法产生了很好的结果,然而却以时间为代价,仅适合于静态场景[3]。
本文研究的方法主要致力于立体声传感器嵌入在动态的ADAS,对于应用在动态场景上的立体匹配,需要处理动态场景。该匹配算法通过立体声传感器根据每秒的帧提供每一对立体图像对,获得相应的立体图像,将时间信息合并到立体方法中来提高最后的匹配结果。然而,仅有少量的研究致力于从立体序列中重建动态场景。本文通过考虑连续帧之间的一致性,将立体匹配的结果大大改进。
本文提出了一种基于时空信息的快速立体匹配方法。基于早期提出的通过图像点得到全球视差范围的方法,本文提出了一种新的计算视差范围的方法。该方法不再通过所有图像点来求取全局视差范围,而是根据边缘点的性质得到。最后,将该方法和STM[4]、SM[5]方法进行了比较,通过比较结果可以看出该方法大大提高了匹配率。
图1 算法流程图
首先根据以上方法进行特性的匹配,然后通过关联方法在连续的图像之间建立关系。根据视差约束原理,本文提出一种独立于扫描线的视差约束方法。通过成本函数来度量候选边缘点之间的相似性。最后利用DP算法计算当前帧的视差图Dk进行特征点的匹配。
首先从立体图像中提取匹配特征点。通常使用边缘点作为特征点。为了便于适应智能交通系统,需要选择快速而准确的边缘检测算法。本文使用Canny边缘检测算法进行了边缘检测,此边缘检测器提供了连续的边缘曲线,并产生了更重要的边缘点,有助于得到较少的稀疏视差图。
图2 连续帧左图像对应点坐标
在所有已知的立体匹配方法中,对于输出视差图的质量和计算时间来说,精确选择视差搜索空间是至关重要的。在本节中,提出了一种新的查找局部和全局视差范围(视差搜索空间)方法。将局部视差范围适用于相关联的图像点,将全局视差范围适用于没有关联的图像点。通过讨论研究,根据匹配算法在每一对图像扫描线上独立执行的原理,提出局部或全局视差范围与图像扫描线有关。
1.3.1局部视差范围计算
图3 相邻帧边缘点坐标图
从式(2)和式(3)可以推断出:
局部视差范围根据前一帧的边缘点对当前帧中的相应点进行搜索。
1.3.2全局视差范围计算
全局视差范围的计算方法是基于v视差图的分析,该v视差图通过初始视差图或预估视差图得到。在本文中,根据当前帧的v视差与前一帧相同的原理,提出了一种既不用计算初始视差图,也不用计算预估视差图的计算方法。如果每秒的帧数非常精确,那么图像中物体的视差值不会发生较大的变化。也可以说,在当前帧的v视差图中道路表示的斜线,将会在前一帧的v视差图中非常接近它的位置。当前帧的v视差图将分为两部分:包含对象的顶部和包含道路的底部。在v视差图中表示道路的斜线可以用下列方程描述:
di=(yi-b)/a
(5)
其中yi为图像线指数,di为同一图像线的视差值,a和b为斜线参数。
每个图像线上只有一个视差值di。考虑到上面所做的假设与前一帧的视差图所固有的不确定性,在图像线yi处的差异d的值应该满足以下不等式:
di-a≤d≤di+a
(6)
其中a是选择的一个不确定性值(公差值)。此约束用于图像底部的整个图像线。
图4 通过v视差计算的全局视差范围图
其中I(ei)是边缘点ei的强度,M(ei)是边缘点ei的梯度大小,θ(ei)是边缘点ei的方向。
图5 局部视差范围图
局部视差范围不仅需要提高匹配点的精度,也需要提高整个图像的精度,因为如果DP算法在某一步失败,将可能影响到图像中其他边缘点匹配。但在本文的匹配过程中,如果DP算法在某一个阶段失败,那么局部视差范围就会迫使算法遵循最优路径,如图5所示。当在图像中发现大量的局部区域时,局部视差范围都能够较好地控制。
为了评估本文所提方法的性能,在立体图像对的虚拟序列中进行了测试,并与现有的快速时空立体匹配方法相比较。为了说明时间信息在匹配过程中的重要性,在不整合时间信息的情况下,同样的方法应用于立体图像,既不使用本地约束,也不使用全局约束。
该方法在虚拟立体图像上进行了测试。数据集包含512×512的立体图像和它们的地面实况。图6显示了在第294帧的左立体图像,图7显示了由Canny边缘检测算法获得的边缘图像。图8描述了用本文方法在第294帧计算的视差图。图9描述了由STM和SM方法计算该帧的视差图。
图6 第294帧的左立体图像
图7 由Canny边缘检测算法获得的左图像
图8 本文方法在第294帧计算的视差图
图9 由STM和SM方法计算该帧的视差图
表1对三种方法在第294帧中得到的结果进行比较,为每种方法提供了匹配边缘点(NME)的数量、正确匹配点的数量(NCM)、错误匹配点的数量、正确匹配的百分比(PCM)和第294帧的执行时间(ETime)。
通过表1可以清楚地看到本文方法正确匹配了更多的边缘点,提供了较少的稀疏视差图,从而大大提高了正确匹配率。
表1 三种方法在第294帧中获得的结果
本文利用相邻帧之间的时间一致性,通过对前一帧的匹配结果进行计算,完成了当前帧的视差图的计算。在当前帧的匹配过程中,通过前一帧的视差图来确定局部和全局视差范围,这样既减少了每个边缘点可能匹配的数量,也减少了错误匹配的数量,并加速了匹配过程。该方法已经在虚拟的序列上进行了测试,结果令人满意。后续研究中将在真实序列中进行测试。