基于光流技术的障碍物检测方法
2017-01-20郭文俊常桂然
郭文俊 常桂然
摘要:障碍物的检测有着重要的应用,然而一般的检测方法容易受到环境因素的影响使得检测的效果不是特别理想,因此研究改进障碍物检测的方法有着重要的意义。本文从计算机视觉的角度上,对障碍物检测技术进行了分析研究,提出了利用光流技术进行障碍物的检测,该方法利用时间序列图像中的灰度信息获取运动参数,实现了障碍物的检测,操作简单实用性较强。
关键词:计算机视觉;障碍物检测;光流技术;运动参数
中图分类号:TP391 文献标识码:A DOI:10.3969/j.issn.1003-6970.2016.04.017
0 引言
人们对周围环境信息的获取和接受大多是通过视觉感受的,尤其是动态信息更容易引起人们的注意。科技的进步以及多媒体技术的发展使得人们接触的信息越来越多,如何从大量的信息中进行提取、分类和跟踪已经成为运动目标检测和目标跟踪技术的研究热点。目前该该项技术已经取得了很多成果,而且不断有新的算法在提出,作为智能交通系统中的一项关键技术,对于保证智能车辆安全行驶也是至关重要的。卞建勇、崔心等采用基于帧间差分的方法实现了运动障碍物的检测,但该方法要求对大数据量的整理无法满足整个监控场内的实时要求。吴思、林守勋等实现了对动态背景下目标物的检测与跟踪,但其提出的方法对车辆识别率较高,无法满足城市交通的检测要求。
本文建立了基于光流技术的障碍物检测系统,通过比较实际图像与自运动估计之间的光流场来识别障碍物,在检测的过程中设置一定的预估计检测区域,整个过程只对区域内的数据进行处理,一定程度上降低了系统处理的数据量,同时利用颜色不变定律消除背景的影响,只检测出障碍物。
1 摄像机标定
计算机视觉是利用计算机实现对生物视觉的模拟,即利用计算机来实现客观的三维世界与平面图像之间的联系。实验操作中处理的图像序列都是通过摄像机捕获的视频序列里提取出来的。想要将图像中的信息反馈给系统识别,就必须建立二维图像信息与三维空间目标物几何信息之间的联系,故此研究摄像机成像几何模型是非常必要的。通过摄像机成像模型的研究建立真实世界中的目标物与获取的图像空间中的目标物之间的坐标关系。
1.1 坐标系描述
本文选用的模型为小孔成像模型,如图1.1小孔模型所示,采用右手准则定义的坐标系,表示了三个不同层次的坐标系系统:摄像机坐标系(Oc;Cc,Yc,Zc)、图像物理坐标系(O1;x,y)和图像坐标系(O0;u,v)。其中摄像机坐标系是一个以小孔模型的中心Oc为原点,以光轴Zc为Z轴的三维直角坐标系,它的Xc轴和Yc轴分别与以O1为原点的图像物理坐标系的x轴和Y轴,以及以O0为原点的图像坐标系的u、v两轴相平行,从图中可以看到图像物理坐标系和图像坐标系均为二维直角坐标系。
1.2 摄像机成像模型
摄像机的成像过程是一个从三维空间到二维空间退化的投影变换过程。如图1.1所示的小孔摄像机模型中,将三维空间中的一点P投影到图像平面上,再存储到计算机中并建立两两不同坐标系之间的变换关系,以实现从三维空间到二维空间的转换。
(1)摄像机坐标系到图像物理坐标系
如图1.1所示,摄像机坐标系中的物点P(Xc,Yc,Zc)与其在图像物理坐标系中的投影点p(x,y)的关系可以表示为:
(1)
利用齐次坐标系可表示:
(2)
f为摄像机的内部参数,是固有属性。
(2)图像物理坐标系到图像坐标系
如图1.1所示,图像物理坐标系O1在图像坐标系O0下的投影坐标为(u0,v0),代表图片上的每个像素在图像物理坐标系上的x轴v轴的物理尺寸分别为dx,dy,两个坐标系的变换关系为:
(3)
利用齐次坐标系可表示:
(4)
2 基于光流技术的障碍物检测
光流的概念由Gibson于1950年首先提出,是目前图像分析的重要方法。光流在计算机视觉、对象分割、三维运动分析、对象识别与跟踪中有很重要的作用。光流不仅包含了被观察物体的运动信息,而且携带着有关其自身三维结构的相关信息。故此,在很多实际应用中,光流都有非常重要的角色。
2.1 光流的计算
光流的计算就是在视觉运动分析中计算三维物体的运动参数和结构参数,光流的计算有很多种方法,最常用的是基于时空梯度的方法,它根据图像灰度对时空和空间的导数来得到,故此假设图像区域在时间和空间上是连续的,或是可导的,该关系式被称为基本等式有时也被成为光流约束方程,它构成了光流计算的一个重要的约束。
如图2.1,设图像上的点(x,y)在某一时刻t的辐照度为f(x,y,t),经过一定的时间间隔△t后对应点的辐照度为f(x+△t,y+△t,t+△t),根据极限思想当△t→0时认为辐照度是不发生变化,于是有:
f(x,y,t)=f(x+△t,y+△t,t+△t) (5)
用Taylor公式展开为:
(6)
忽略公式(6)中的二阶无穷小ε,当△t→0,有:
(7)
其中u=dx/dt,v=dy/dt分别是图像中某点像素在x和y方向上的光流分量。
下面则主要介绍比较经典的基于梯度的光流检测方法,Lueas-Kanade光流法。
2.2 Lucas-Kanade光流法
Lucas-Kanade算法(LK)是用于求稀疏光流(sparseoptical flow)的,最初于1981年提出。由于算法易于应用在输入图像中的一组点上,其后来成为求稀疏光流的一种重要方法。LK算法只需要每个感兴趣周围小窗口的局部信息,所以它可以应用于稀疏内容,这与Horn-Sehunck的算法全局性是不同的。
LK算法基于以下三个假设:
(1)亮度基本保持变。视频序列中目标物的像素在帧间运动时其外观基本保持不变,对于获取的灰度图像(LK算法也可以用于彩色图像),假设其像素被逐帧跟踪时亮度基本不发生任何变化。
(2)帧间时间间隔非常微小即可认为时间上是连续的。
(3)空间一致。—个场景中同一表面上邻近的点具有相似的运动,在图像平面上的投影也在邻近区域。
设图像上的点(x,y)在时刻t的辐照度为I(x,y,t),经过时间间隔人t后对应点为I(x+△t,y+△t,t+△t),当△t→0时可认为辐照度不变,于是有:
I(x,y,t)=I(x+△t,y+△t,t+△t) (8)
我们假设移动足够的小,则对于(8)使用泰勒公式,可以得到:
(9)
其中H.O.T=higher order terms指更高阶,在移动足够小的情况下可以忽略,结合式(8)和式(9),可以得到下式:
(10)
(11)
2.3 算法流程图
基于光流的方法能够很好的描述物体的运动特征,该方法的改进也能很好的用于实时的视频处理中,但是该方法的困难在于物体特征点的寻找和匹配。特别是当运动目标很多的时候往往需要先依据别的方法来区分不同的障碍物,而且到目前为止还没有一种比较通用的快速匹配算法,从而限制了光流法在实时障碍物检测中的应用,L-K算法的流程图如图2.2所示。
3 基于Lucas-Kanade光流技术的障碍物检测结果
本实验是在HP 251-110cn台式机上进行的,在Windows XP操作系统的平台上,采用Intel公司开发的开源项目OpenCV,在Microsoft Visual C++集成开发环境下完成的。数据由车载相机捕获的视频序列组成,图像帧是在不同光照、不同姿态下拍摄的,实验前要将捕获的图像帧利用cvCvtColor()函数转化为如图3.1所示的灰度图,在对其调用函数cvCalcOpticalFlowPyrLK()得到光流检测结果。如图3.2和图3.3分别为LK光流检测结果图和光流矢量图。
文章主要针对光照变化以及旋转变化小到可以忽略不计的情况下进行的研究。通过对结果的比较,对图像处理中的一些基本的操作耗时情况有了一定了解,其中主要影响检测结果的是不同帧间时差的选取。其中方式1和方式2是选取转换后的灰度图中分别选取时间间隔为2s和5s的图像帧,而方式3和方式4是选取并未经过处理的原始图像帧而时间间隔分别与方式1与方式2相同。表1则是在以上四中情况下的对比实验,其中算法处理结果的正确识别率及各步的耗时如表1所示。
5 总结与展望
本文通过对图像处理技术的分析讨论了Lucas-kanade光流法,并利用该算法实现了障碍物的检测,对于增强行车系统的安全性和可靠性有着非常大的帮助。该系统的实现可使用户能较好的掌握行车过程中的路况信息及时对外界环境信息做出反应,大大提高了行车的安全性,避免了事故的发生。此外该算法还可用于视频的检测,而且系统设计也比较简单,只是由于图片检测的时间很难达到实时的要求,故在今后的设计中要增加考虑利用其视频的运动特性来增加检测效果的是实时性。