一种基于运动模板的障碍物检测算法
2012-10-17匡佩
匡 佩
同济大学软件学院,上海 201804
1 概述
目前,基于视觉的障碍物检测方法主要分三类。第一类是从单幅图像中提取特征信息,并与数据库中信息比较,从而感知是否有障碍物。第二类是利用运动信息提取障碍物,其中最流行的方法是基于光流的障碍物检测。该类方法对于障碍物运动时有显著的检测效果,但是当障碍物太小或静止时将会失败。另外,光流法需处理大量的数据,实时性受到影响。第三类是利用立体视觉方式提取障碍物,类似三维重建,运算量大,通常需要专用的硬件。[1]
本文提出一种基于运动模板的障碍物检测算法,属于第二类方法,但是采用基于运动模板的历史运动信息来检测障碍物,有效解决了实时性问题,且不管是动态还是静态障碍物,只要相对于盲人有运动,就可将该障碍物检测出来。
2 运动模板
运动模板(Motion Template)是由MIT媒体实验室的Bobick和Davis提出的[2]。运动模板是一种有效的跟踪普通运动的方法,尤其可应用在姿态识别中。运用运动模板需要知道物体的轮廓(或者轮廓的一部分,此处轮廓指实心轮廓),而轮廓的获取有不同的方法。我们采用帧间差分得到物体的运动边缘,既简单,也便于计算,而准确度也不受太大影响。
3 基于运动模板的障碍物检测算法
本算法根据运动模板的模型提取运动目标的整体运动方向,共需要两个线程同步处理。一个线程计算图像数据,获取MHI,判断从摄像头获取的每帧中是否含有障碍物,另一个线程计时并统计单位时间内检测到的障碍物数,若超过阈值,则报警。总算法流程表述如下:
线程1,计时统计线程:统计每秒内出现在图像正前方区域的障碍物次数count,若在1s内检测到的障碍物次数超过阈值,则报警,提醒盲人做出正确避让。
线程2,图像处理线程。应用帧间差分法获取相邻两帧间的差分图像;
1)对差分图像做二值化处理,同时对图像进行降噪,以消除路面纹理等噪声,求取运动目标的轮廓图像;
2)由轮廓图像更新序列运动历史图像MHI;
3)选取3*3的Sobel模板和MHI卷积计算得到每一个坐标点的局部梯度方向;
4)针对MHI图像作运动分割,得到各运动部分的序列图像;
5)针对所有运动部分的序列图像,做以下循环:
(1)针对整幅图像判断运动区域的大小,选取最大的运动目标,该步骤也会滤去部分强噪声;
(2)计算该运动目标的全局运动方向;
(3)确定运动目标的中心点并在图像中绘出其全局运动方向;
(4)若运动目标的中心点在图像的正前方区域则认为该帧图像中存在妨碍盲人正常行走的障碍物,该秒内障碍物count数加1。转到步骤1执行,直至视频流结束或算法退出。
4 实验结果
为验证本算法的效果,我们在以下硬件平台上测试:Intel Atom N5401.66GHz处理器,2G内存,Intel GMA 3150显卡。软件借助Intel开源包OpenCV进行开发[3]。
图1中,圆心位置为运动物体中心点,从圆心位置指出来的半径为物体相对盲人的运动方向。根据该方向为盲人具体往什么方向避障提供了参考。
图1 运动模板检测结果
图2为一段序列图像中处理结果选取。其中图2(A)中,障碍物刚进入镜头在图2(B)中,障碍物在1s内出现次数超过阈值,则向盲人报警。盲人根据提示,向左避让,故图2(C)中障碍物相对盲人向右移动。图2(D)中,由于检测到的运动物体未在图像敏感区域,无需报警。
由于该方法是针对盲人出行使用,所以路面纹理和光线对该方法有很大的影响。在柏油路面中,会将人行道等道路线误认为是障碍物。实验结果表明,在不同天气情况下水泥路面障碍物识别准确率接近100%。水泥和柏油路面比混合路面准确率高。夜间由于光线较暗,准确度大大下降。
在实时采集图像过程中,受摄像头影响,障碍物检测能达到是15帧/s~16帧/s。在读取视频文件进行处理时,处理帧速能达到36帧/s~40帧/s,完全达到实时性要求。
图2 序列图像处理部分过程
5 结论
本文针对运动模板能够检测与跟踪运动物体的特点,提出了一种基于运动模板的障碍物检测算法。经过实验,该算法在运行速度上达到了实时的效果,同时,相比于传统基于视觉的方法,本文中方法减弱了地面纹理对系统准确性的影响,使系统鲁棒性得到了提高。但是,毕竟该系统是基于视觉的系统,晚上使用时效果不佳,在地面纹理过于复杂的时候,系统准确性也受到影响,这将作为今后研究的重点。
[1]BERTOZZI M., GOLD A.A parallel real-time stetro vision system for generic obstacle and lane detection.IEEE Transactions on Image Processing, 1998, 7(1): 62-81.
[2]G.Bradski, J.Davis.Motion Segmentation and Pose Recognition with Motion History Gradients.MACHINE VISION AND APPLICATIONS, 2002, 13:174-184.
[3]G.Bradski, A.Kaebler.Learning OpenCV.O’REILLY Press.2008:340-362.