孟 灿,邹细勇,王国建
(中国计量学院 光学与电子科技学院,浙江 杭州 310018)
基于全方位视觉的移动机器人运动目标检测
孟 灿,邹细勇,王国建
(中国计量学院 光学与电子科技学院,浙江 杭州 310018)
针对移动机器人动态背景下运动目标的检测,提出一种基于全方位视觉的检测算法。首先,改进了SIFT算法中的特征点提取方法,在将图像划分为若干网格后,再根据特征点所在位置的局部区域熵对每个网格中的候选特征点进行筛选;其次,在SIFT点匹配后采用RANSAC算法去除误匹配点,以提高背景补偿的精度;最后用帧差法检测出运动目标。实验表明,该算法减少了SIFT点的获取时间,并具有良好的鲁棒性,能准确地在机器人运动过程中检测出运动目标。
动态背景;全方位视觉;SIFT;局部区域熵;背景补偿
全方位摄像机可以获取水平360°的场景图像,因此,全方位摄像机应用在移动机器人平台上有着重要意义。但是,由于摄像机的运动会使背景发生相应的运动,导致从动态背景中分割出运动目标变得很困难。在这种情况下,帧差法[1]得到的运动不仅包括运动目标的运动,还包括了背景的运动。因此,需要对图像的背景进行补偿,以消除背景运动,这样就能检测出运动目标[2]。
针对全方位视觉动态背景下的运动目标检测的研究,文献[3]提出了一种基于全方位视觉的移动机器人运动目标检测算法,该算法首先把全方位图像还原为符合人类视觉习惯的全景图像,然后获得全景图像的角点,再运用Kanade-Lucas-Tomasi(KLT)光流法跟踪角点,根据仿射变换模型完成背景补偿,最后再通过帧差法得到运动目标。但是,全方位图像和全景图像都存在几何畸变[4],虽然角点具有旋转不变和缩放不变等优良性质,但还是不能很好地描述全方位图像和全景图像的图像特征。同时,KLT光流法对光照十分敏感,会影响背景补偿的精度。为解决全景图像几何畸变造成的背景补偿不准确的问题,文献[5]提出一种改进的算法,该算法把全景图像均匀划分为若干方格,每个方格代表一个像素块,然后用稠密光流跟踪每个像素块,每个像素块都应用一个仿射变换模型来补偿该像素块的运动,最后再进行差分。该算法在目标检测的精度上得到了提高,但是,运用稠密光流进行跟踪,同时在一幅全景图像上运用多个仿射变换模型,使该算法的实时性降低。
为解决以上问题,本文提出了一种新的基于全方位视觉的移动机器人运动目标检测算法,该算法采用鲁棒的SIFT特征点匹配算法求解全局运动参数,完成背景补偿。SIFT算法能较好地解决由旋转缩放、视点变化、光照变化引起的图像变形等问题[6],因此,SIFT算法可以更好地提取存在畸变的全方位图像的局部不变特征。但由于经典的SIFT算法会产生大量的冗余特征点,且特征点分布不均匀,算法实时性低[7],因此,本文提出了一种改进的SIFT算法,该算法把图像划分为若干网格,对每一网格中的所有候选特征点,计算其所在位置的局部区域熵,根据熵值的大小,将候选特征点进行由大到小的排序,选取前n个作为该网格的最终特征点,然后确定网格内最终特征点的主方向,并生成特征描述符。
本文算法流程如图1所示。
图1 算法流程图
1)全局运动估计:首先,运用改进的SIFT算法提取全方位图像的特征点,通过特征匹配算法获得匹配的特征点对;然后,引入RANSAC算法来去除误匹配点;最后,对剩余的匹配特征点利用最小二乘法求解仿射变换参数。
2)背景补偿:根据求解的仿射变换模型参数,运用双线性插值算法,完成背景补偿。
3)运动目标检测:在背景补偿后,运用帧差法,并结合二值化和形态学处理得到运动目标。
2.1 全局运动估计
2.1.1 SIFT算法
SIFT算法[8]是由David G. Lowe提出的尺度不变特征变换算法。SIFT算法步骤如下:
1) DOG尺度空间极值检测
一幅图像的尺度空间L(x,y,σ),定义为原图像I(x,y)与高斯函数G(x,y,σ)的卷积运算,公式为
(1)
DOG(DifferenceofGaussian)图像是由不同尺度高斯差分核与图像卷积得到的,公式为
D(x,y,σ)= [G(x,y,kσ)-G(x,y,σ)]*I(x,y)=
L(x,y, kσ)-L(x,y,σ)
(2)
将DOG尺度空间的每个点与上下相邻尺度图像的26个近邻像素进行比较,确定局部极值作为候选特征点。
2)精确定位特征点
首先,通过拟合三维二次函数来精确定位特征点的位置和尺度,即对泰勒二次展开式(3)求极值,同时在计算过程中进行修正,去除对比度较低的不稳定极值点。
(3)
然后,利用Hessian矩阵的迹与行列式的比值去除不稳定的边缘响应点。
3) 计算特征点邻域梯度的大小和主方向
在以特征点为中心的邻域窗口中,对每个像素点进行梯度模值和方向计算,公式为
(4)
同时,用直方图统计邻域像素的梯度方向,直方图的峰值就代表了特征点的主方向。
4)生成特征描述子
将特征点的邻域按其主方向进行旋转,以保证描述子的旋转不变性。然后以特征点为中心,取16×16的窗口,将其划分为4×4个子区域,对每个子区域按8个角度方向,计算该子区域的梯度方向直方图,得到4×4×8=128维SIFT特征向量。
2.1.2 改进SIFT算法
本文改进的SIFT算法根据全方位图像的成像特点对SIFT点的分布区域进行了限制。同时,针对经典SIFT算法存在的特征点数量多、分布不均匀、实时性低等问题进行了改进,改进SIFT算法将图像划分为若干网格,并根据网格中所有候选特征点所在位置的局部区域熵,对特征点进行筛选,以限制特征点的数量,并使特征点均匀分布。
由于全方位摄像机采集到的图像中并不是所有的像素都代表外界环境,全方位摄像机的一部分结构和移动机器人也会出现在图像中,但是它们的运动与全方位摄像机的运动一致,因此,它们在图像中的位置一直是固定不变的。在这些区域提取的SIFT点并不能代表外界环境的运动,会造成背景补偿精度的下降,因此,需要对特征点的分布区域进行限制。如图2所示,全方位图像中区域1和区域3在图像中是固定不变的,只有区域2才代表外界环境的运动。因此,需要剔除在区域1和区域3提取到的SIFT点。这样不仅可以减少特征点的数量,而且可以提高背景补偿的精度。
图2 全方位图像
经典SIFT算法把整个尺度空间搜索到的极值点都作为关键点,故产生大量的冗余特征点。由于信息量能很好地评价特征点的特殊性[9-10],故本文采用特征点所在位置的局部区域熵对特征点进行进一步筛选,降低经典SIFT算法的冗余性,提高运算速度。同时,经典SIFT算法可能会在局部区域产生特征点聚簇现象,使特征点分布不均匀,这可能会造成特征点的误匹配。基于此,本文将图像划分为若干网格,并根据每个网格内所有候选特征点所在位置的局部区域熵值的大小,选取前n个特征点作为该网格的最终特征点。
特征点所在位置的局部区域熵的公式定义如下
在某些发达国家,水果大约有90%以上、蔬菜约有70%是经运输后进入销售环节。近年来,随着我国商品经济的飞速发展,果蔬运输也受到了前所未有的重视。
(5)
式中:k=255;pm表示局部区域中灰度为m的像素出现的概率。
改进SIFT算法流程如下:
1)DOG尺度空间极值检测。
2)精确定位特征点。
3)剔除全方位图像中位于区域1和区域3中的候选特征点。
4)将图像划分为若干网格,根据式(5),计算每个网格内所有候选特征点所在位置的局部区域熵,并根据熵值的大小,对候选特征点进行由大到小的排序,选取前n个作为该网格的最终特征点。
5)计算特征点邻域梯度大小和主方向。
6)生成特征描述子。
2.1.3 SIFT特征匹配
SIFT特征匹配算法采用SIFT特征向量的欧氏距离作为2幅图像中SIFT特征点的相似性判定度量,将具有最小欧氏距离的2个特征点匹配起来。算法采用优先k-d树近似的BBF(Best Bin First)搜索算法,快速搜索每个特征点在另一幅图像中对应的最近邻特征点和次近邻特征点,计算该特征点与最近邻点和次近邻点的欧氏距离,当二者的比值小于阈值Td,则接受该匹配点对,否则,丢弃。
2.1.4 RANSAC参数估计
(6)
根据式(6)可知,要得到仿射变换参数,理论上只需要3对匹配特征点就可以。但是,由于错误匹配点的存在,因此在求解过程中需要的特征点的对数要多于3个,本文利用RANSAC算法进一步去除误匹配特征点对,然后,根据剩余的匹配特征点对,利用最小二乘法求解仿射变换参数。
2.2 背景补偿和帧间差分
根据求得的仿射变换参数对前一帧图像进行背景补偿,但根据式(6)得到的坐标不一定是整数,因此采用双线性插值算法完成背景补偿。假设f1(x,y)为参考帧图像,f2(x,y)为当前帧图像,对f1(x,y)进行背景补偿得到图像f1′(x,y),将f1′(x,y)与f2(x,y)相减,通过设置阈值T,得到运动目标的二值图像D(x,y),即
(7)
然后,对二值图像D(x,y)进行形态学处理,经过腐蚀和膨胀操作后,可以填补轮廓断裂,消除小的空洞,并可以消除噪声点,最终得到运动目标。
为了验证本文改进算法的有效性,利用安装有全方位摄像机的旅行家II号机器人采集到的视频序列进行仿真。实验视频分辨率为640×480,实验环境为在PC(IntelCorei3CPU2.53GHz,1.8Gbyte内存)机上利用OpenCV和VisualC++6.0进行实验。
针对采集到的图像,进行经典SIFT算法与改进SIFT算法的比较实验,本文中改进SIFT算法把图像分为20×20个网格,取n=1,实验结果如图3和图4所示。
图3中特征点的数目为1 149,图4中特征点的数目为188。从图中可以得知,改进的SIFT算法不仅减少了SIFT特征点的数量,而且使特征点的分布趋于均匀,避免了SIFT点过度集中,去除了冗余的SIFT点,同时大大缩短了程序运行的时间。表1中列出了经典SIFT算法和改进SIFT算法在特征点数量和程序运行时间方面的比较。
图3 经典SIFT算法特征点检测结果
图4 改进SIFT算法特征点检测结果
表1 经典SIFT算法与改进SIFT算法运行时间与特征点数量比较
图5为SIFT点匹配初始结果,可以看出里面存在一些错误的匹配点。图6为RANSAC算法筛选过的SIFT点匹配结果,可以看出消除了错误匹配点。
图5 SIFT点匹配初始结果
为验证本文提出的基于全方位视觉的移动机器人运动目标检测算法的有效性,拍摄了检测行人的视频序列。实验结
图6 RANSAC处理后的SIFT点匹配
果如图7所示,帧间差分阈值T=12。
图7 运动检测结果
图7a和图7b是采集到的视频序列的第221帧和222帧,图7c是直接采用帧差法并经二值化后得到的检测结果,可以看出大量背景被泄漏。图7d是第221帧图像经背景补偿后得到的图像,图7e是经背景补偿后的帧差结果,可以看到大部分的背景已经被消除。图7f是图7e经过二值化和形态学处理后得到的结果,与图7c相比较,可以看出图7c中残留的背景和噪声已经完全消除,检测出了轮廓清晰、完整的运动目标。
本文提出了一种基于全方位视觉的移动机器人运动目标检测算法。采用了改进的SIFT算法提取特征点,该算法约束了特征点的数量,剔除了冗余的特征点,且使特征点均匀分布。同时,使该算法的实时性得到了明显提高。然后利用RANSAC算法去除误匹配特征点,提高背景补偿精度。实验结果表明,该算法应用在全方位视觉系统中,可以在动态背景中准确地检测出运动目标,证明了算法的有效性。
[1]栾庆磊,赵为松. 动背景下帧差分法与边缘信息融合的目标检测算法[J].光电工程,2011,38(10):77-83.
[2]武艳美,肖阳辉. 基于特征点匹配的全局运动估计[J].计算机工程,2011,37(22):148-150.
[3]LIUH,DONGN,ZHAH.Omni-directionalvisionbasedhumanmotiondetectionforautonomousmobilerobots[J].SystemsMan.andCybernetics,2005(3):2236-2241.
[4]张帆,朱齐丹,徐光. 基于前向映射的全景视觉图像解算方法[J].光电工程,2009(1):19-25.
[5]OH C M,LEE Y C,KIM D Y,et al. Moving object detection in omnidirectional vision based mobile robot[J].IEEE Industrial Electronics Society,2012(12):4232-4235.
[6]冯政寿,王美清. 基于Harris与改进SIFT算法的图像匹配算法[J].福州大学学报:自然科学版,2012,40(2):176-180.
[7]付永庆,宋宝森,吴建芳.边缘分类SIFT算法[J].哈尔滨工程大学学报,2010,32(5):632-636.
[8]LOWE D. Distinctive image features from scale-invariant interest points[J].International Journal of Computer Vision,2004,60(2):91-100.
[9]SCHMID C,MOHR R,BAUCKHAGE C. Evaluation of interest point detectors[J]. Int. J. Comput. Vis.,2000,37(2):151-172.
[10]SEDAGHAT A,MOKHTARZADE M,EBADI H. Uniform robust scale-invariant feature matching for optical remote sensing images[J].IEEE Trans. Geoscience and Remote Sensing,2011,49(11):4516-4527.
孟 灿(1989— ),硕士生,主研图像处理、机器视觉、模式识别;
邹细勇(1979— ),博士,副教授,硕士生导师,主要研究方向为机器人导航、计算机控制、智能照明系统;
王国建(1990— ),硕士生,主研ZigBee无线通信。
责任编辑:任健男
Moving Object Detection in Omnidirectional Vision Based Mobile Robot
MENG Can, ZOU Xiyong, WANG Guojian
(CollegeofOpticalandElectronicTechnology,ChinaJiliangUniversity,Hangzhou310018,China)
According to the detection of moving object based on mobile robot under dynamic background, an algorithm of detection based on omnidirectional vision is proposed. The method of extracting feature points is improved in the SIFT algorithm. After dividing the image as grid cells, the feature points of each grid cell are selected according to the entropy of local region around the feature point. Then after matching SIFT points, it employs RANSAC algorithm eliminate the mismatching points to improve the accuracy of the background compensation. Finally, frame difference method is used to detect the moving object. Experimental results show that with a better robustness, the proposed algorithm decreases the time of extracting feature points and it can detect the moving object while robot is moving.
dynamic background; omnidirectional vision; SIFT; entropy of local region; background compensation
浙江省重点科技创新团队项目(2010R50020);国家自然科学基金项目(50905170;61007012)
TN911.73
A
10.16280/j.videoe.2015.01.030
2014-08-02
【本文献信息】孟灿,邹细勇,王国建.基于全方位视觉的移动机器人运动目标检测[J].电视技术,2015,39(1).