基于局部SURF与Kalman滤波的多机器人识别与跟踪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于局部SURF与Kalman滤波的多机器人识别与跟踪
李江昊;韩立媛;彭丹;王绪全
【摘要】针对SURF匹配算法,提出一种局部特征匹配的思想,对场景中多个目标机器人进行识别与跟踪。
在静态场景中,利用背景差法检测出场景中所有运动机器人,提取各个机器人的轮廓,通过轮廓获得每个机器人在图像中的区域,对每个小区域提取SURF特征点并与模板图像进行匹配,得到想要跟踪机器人的位置信息,最后通过Kalman滤波对机器人位置进行修正并跟踪。
实验证明本算法在不降低匹配的准确性上有效提高了识别与跟踪的效率。
%For improving SURF matching algorithm, an idea of local feature matching which can recognize and track multiple moving robots in one scene is proposed. In the static scenes, background subtraction method is employed to detect all the moving robots and extract the profile each of them. Through profile the hold region of each robot in the scene can be got. Extracting SURF feature points of each region and matching them with template image, the location information is achieved of the tracking robot. Finally, the Kalman filter is used to correct robot’ s location and track it. Experiments show that the proposed algorithm improves the efficiency of recognition and tracking without reducing the matching accuracy.
【期刊名称】《燕山大学学报》
【年(卷),期】2016(040)005
【总页数】5页(P426-430)
【关键词】SURF;特征匹配;背景差法;Kalman滤波
【作者】李江昊;韩立媛;彭丹;王绪全
【作者单位】燕山大学信息科学与工程学院,河北秦皇岛066004;燕山大学信息科学与工程学院,河北秦皇岛066004;燕山大学理学院,河北秦皇岛066004;燕山大学信息科学与工程学院,河北秦皇岛066004
【正文语种】中文
【中图分类】TP242.6
近年来,随着数字图像处理技术、计算机视觉技术等的不断发展与普及,目标识别与跟踪技术得到了迅速发展,新的理论、新的算法层出不穷。
尤其当处于十分复杂的环境中,算法的实时性、可靠性的要求在实现上变得更加困难[1-2]。
很多学者在这方面也进行了深入的研究,例如Hebert Bay等人提出SURF快速鲁棒性特征匹配[3],它在图像匹配中有着广泛的应用,具有鲁棒性好,速度快等特点。
Wei He等人提出在跟踪中应用SURF,通过匹配准确获取目标的位置信息,从而进行跟踪[4]。
纪筱鹏等人提出基于轮廓特征及扩展Kalman滤波的车辆跟踪方法[5],通过Kalman预测车辆在每帧中的位置信息。
轮廓特征的匹配识别有一定的局限性,如果运动目标发生形变,监控角度的改变都会使匹配失效。
针对SURF具有尺度不变性、旋转不变性、平移不变性等优点但算法的时间复杂度高,计算量大等缺点,本文提出局部SURF与Kalman滤波结合的目标机器人检测识别与跟踪方法。
目前,对行人及车辆的检测跟踪的研究很多,但少有对机器人方面跟踪的研究,随着机器人在安防方面的不断发展,对机器人工作过程的实时监控有着重要的安全意义。
本文将在楼宇空旷的大厅中对目标机器人进行跟踪实验,监控场景中会存在两个运动机器人,一个是六自由度的机械手小车机器人,另一个是圆形扫地机器人,
如图1所示。
任务是先对这些运动机器人进行识别,找到想要跟踪的目标机器人并进行跟踪。
局部SURF只对监控场景中的目标机器人提取特征点和描述子,它与提取整幅图像特征点相比较,不仅大大降低了数据的计算量,更提高了匹配的准确性和鲁棒性。
识别出目标机器人后通过Kalman滤波修正机器人在图像中的位置信息进行准确的跟踪并预测机器人在下一帧的位置信息,两者的结合提高了监控中跟踪的准确性和实时性。
利用背景差分法检测场景中目标机器人的关键是构建背景图像[6-7],采用RGB中值法进行背景建模,RGB中值法建模就是把一段彩色图像序列中处于稳定状态最长的RGB像素值作为背景点。
首先每隔两帧获取视频中一帧图像,共获取10帧图像,对这10帧图像的像素点取中值。
如公式(1)所示:
通过对RGB 3个分量分别取中值,将3个分量的中值作为背景点,最后构成背景图像。
这样省去了将RGB图像转换为灰度图像取中值,再将灰度背景图像转换为RGB背景图像的转换过程,同时也避免转换过程中图像的失真。
获得背景图像后将当前机器人图像和背景图像做差,即可得到只含有运动机器人的差分图像,如图2所示。
检测出运动机器人后,首先使用形态学处理差分图像,滤除噪声。
然后提取差分图像中机器人的轮廓,根据每个轮廓位置信息使用OpenCV截取原图像对应的感兴趣部分,即在整幅图像中分别截取每个机器人所在的区域图像,并分别对每个机器人区域图像计算SURF特征点,如图3所示。
SURF是一种快速鲁棒性特征点检测[8],与SIFT不同的是它采用积分图像和快速Hessian矩阵在尺度空间检测图像特征点。
为了保持图像尺度不变性,SURF通过不同尺寸的盒子模板(9×9、15×15、21×21、27×27)与图像卷积,得到不同尺度下的极值点,每个极值点与同一尺度下的8个点和上下两个尺度各9个点,总共
26个邻域点进行比较,如果极值点全部大于或小于这26个邻域点则此极值点作
为候选特征点,否则舍弃此极值点。
最后通过插值来稳定特征点位置和尺度,这样得到的特征点具有尺度不变性。
特征描述子生成主要分成两步:第一步是在特征点邻域内确定特征点主方向,从而保证图像的旋转不变性。
第二步生成特征向量,沿主方向构造一个20s×20s(s为
特征点所在的尺度)的窗口区域,在窗口内提取一个64维向量,每个特征点由这
64维向量构成一个描述子,并表现出图像的特征。
最后根据描述子,利用欧氏距
离匹配两幅图像的特征点。
采用SURF算法提取的图像特征具有尺度、缩放、旋
转等的不变性,对光照和噪声的变化也有一定的稳定性[9]。
使用欧式距离匹配后,统计每个机器人区域图像和模板图像匹配的特征点对数和匹配对之间的距离,并记录下每个机器人匹配特征点对之间的最小距离、在图像中的最小外接矩形区域以及它们的轮廓信息,最后识别出匹配特征点对之间距离最小的机器人,此机器人就是最终要监控的对象,同时也获取此机器人在图像中所占据的
矩形区域和轮廓信息,通过轮廓信息计算出机器人的质心位置,获取最小外接矩形区域的目的是为了控制跟踪框的大小,保证跟踪框随机器人的大小变化而变化。
特征点图像如图4所示。
为了稳定的跟踪机器人,使用Kalman来预测目标在下一帧图像中的位置信息,
通过计算出的质心和预测的质心修正机器人在图像中的位置[10]。
在识别的过程中,难免会发生误识别的状况,如果在某帧图像中识别错误目标,可以通过Kalman
预测来避免跟错目标,从而实现稳定的跟踪。
Kalman滤波[11]是一种高效的递归滤波器,可通过状态方程和观测方程来描述系统,并给出预测的结果。
在视频序列中,通过对当前帧fk中目标机器人位置的观
测来预测下一帧fk+1中目标机器人即将出现的位置信息。
它有计算量小、可实时计算的特点,为实时跟踪目标机器人带来精确、高效的定位信息。
Kalman的核心
方程为
观测方程:
使用Kalman滤波跟踪目标机器人,首先要知道目标机器人初始时刻的位置信息
X0=[x0,y0,vx,vy],(x0,y0)是机器人质心在图像中的位置坐标,vx,vy是机器人在
x和y方向上的初始速度。
然后初始化状态转移矩阵A、观测矩阵H、过程噪声W、观测噪声V、先验误差P。
在视频序列的每一帧中,观测向量是机器人识别后获取到的位置信息ZK=[xk,yk]。
使用OpenCV创建Kalman函数,计算下一帧的预测值YK,并给预测值YK和观测值ZK的差Diff设定一个阈值T,如果Diff>T,说明识别出的目标不是想要跟踪的目标,只通过预测值来获取目标质心并跟踪,并用预测值来更新测量值。
如果Diff≤T,则通过Kalman公式来修正预估计值,并
对测量值进行更新,从而能够对下一帧做出预测。
Kalman进入预测和修正的循环状态,从而对目标机器人进行准确的跟踪。
算法流程图如图5所示。
实验环境是室内大厅,监控场景中存在两个运动的机器人,一个是六自由度车载机械手,一个是圆形扫地机器人。
监控系统的硬件平台包括一个USB摄像头和一台PC机,摄像头固定在三脚架上且保持静止状态。
软件平台使用的是Visual Studio 2010和OpenCV 2.4.0。
此外,表1还给出了SIFT算法的跟踪性能,单纯的SIFT匹配算法仅获取运动机
器人质心,虽然所用时间要比Kalman与SIFT融合算法时间短一些,但跟踪准确
率低。
Kalman与SIFT融合算法在对机器人进行跟踪时,当识别发生错误时可通
过Kalman预测值进行修正,所以在不影响跟踪实时性的前提下,还保证了跟踪
的准确性。
在监控场景中,分别对两个机器人进行识别跟踪,图6(a)分别是第1、30、73、105帧对小车的跟踪结果,图6(b)分别是第2、40、99、103帧对扫地机器人的
跟踪结果。
机器人区域图像与模板进行SURF特征点匹配用时为0.02 s,整幅图
像与模板匹配用时为0.48 s。
视频一共110帧,六自由度车载机械手的正确跟踪
帧数为110帧,扫地机器人的跟踪帧数为107帧,跟踪时间及正确率如表1所示。
当采用Kalman与SIFT相融合算法对图中两个机器人进行跟踪,当识别发生错误
时可通过Kalman预测值进行修正,从而保证跟踪的准确性。
结合轮廓特征,只对图像感兴趣区域计算SURF特征点,统计出匹配距离最小的
机器人,有效的减少了算法的计算量和识别的准确度。
同时结合Kalman预测,
提高跟踪的稳定性,降低了仅仅根据识别获取非目标机器人质心并跟踪的错误概率。
在室内真实场景中进行的监控跟踪实验得到了比较满意的跟踪结果,验证了该算法的有效性、实时性。