基于双目视觉的运动目标检测跟踪与定位

2015-12-18 01:16王婷婷张学贺
机械与电子 2015年6期
关键词:目标跟踪立体匹配

王婷婷,李 戈,赵 杰,张学贺

(哈尔滨工业大学机器人技术与系统国家重点实验室,黑龙江 哈尔滨 150001)

Detection,Tracking and Positioning of Moving Target Based on Binocular Vision

WANG Tingting,LI Ge,ZHAO Jie,ZHANG Xuehe

(State Key Laboratory of Robotics and System,Harbin Institute of Technology,Harbin 150001,China)



基于双目视觉的运动目标检测跟踪与定位

王婷婷,李戈,赵杰,张学贺

(哈尔滨工业大学机器人技术与系统国家重点实验室,黑龙江 哈尔滨 150001)

Detection,Tracking and Positioning of Moving Target Based on Binocular Vision

WANG Tingting,LI Ge,ZHAO Jie,ZHANG Xuehe

(State Key Laboratory of Robotics and System,Harbin Institute of Technology,Harbin 150001,China)

摘要:为克服传统目标检测跟踪方法无法对目标准确定位,以及在复杂环境下容易受光照、阴影等因素干扰的问题,提出了基于双目视觉的目标检测跟踪与定位方法。首先使用Matlab标定工具箱和OpenCV进行摄像机标定和图像校正,然后利用基于双目视觉的背景差分法实现目标检测,结合基于Kalman滤波的改进Camshift算法实现目标跟踪,最后利用视差图得到目标三维信息,从而实现目标定位。实验结果表明,所提方法能够实时跟踪运动目标并实现目标的准确定位。

关键词:双目视觉;目标跟踪;立体匹配;三维测距

0 引言

运动目标检测与跟踪一直是计算机视觉的核心课题,是智能监控系统的关键技术之一。目前,多数目标检测跟踪依靠单目视觉,无法实现目标准确定位,而双目视觉可以从不同角度拍摄同一场景的二维图像中恢复深度信息,因此,提出一种基于双目视觉的运动目标检测跟踪与定位方法,不仅可以实时检测跟踪目标,而且能够实现目标准确定位。

静态背景下的运动目标检测主要包括帧间差分法、背景差分法[1]和光流法。帧间差分法对光照不敏感,缺点是不能提取完整目标信息;背景差分法原理简单,易于实现,实时性较好,可以提取完整的目标信息,但是对光照变化敏感,需要实时更新背景;光流法不需要场景先验信息,但计算复杂,不适合实时计算。Camshift是一种基于颜色特征的目标跟踪算法,由于计算量小,实时性高,该方法在目标跟踪领域得到了广泛应用,但是由于缺乏有效的运动预测模块及对目标特征的更新机制,Camshift容易丢失目标。立体匹配算法分为全局立体匹配算法和局部立体匹配算法。全局算法精度高,但计算复杂,不适合实时计算,SAD是一种典型的局部立体匹配算法,相比全局立体匹配算法计算量小,实时性高。

在此,将立体视觉应用到目标检测中,利用视差图背景差分法提取运动目标,Kalman滤波和Camshift算法结合实现目标跟踪,并利用视差图得出目标三维信息。

1 摄像机标定

摄像机模型采用针孔模型,空间任何一点P在图像上的成像位置可以用针孔模型近似表示,投影关系如式(1)所示,摄像机标定就是标定其内外参数[2]。由于OpenCV标定结果稳定性差,首先利用Matlab标定工具箱进行单双目标定,之后将标定结果存成XML格式,读入OpenCV对图像进行校正。

(1)

(u,v)为P点在图像坐标系下的坐标;(Xw,Yw,Zw)为P点在世界坐标系下的坐标;Zc为P点在摄像机坐标系下的坐标;(fx,fy,cx,cy)为摄像机内部参数;R和T为外部参数,分别表示摄像机坐标系相对世界坐标系的旋转矩阵和平移矩阵。

2 运动目标检测

运动目标检测步骤如图1所示。

图1 运动目标检测步骤

立体匹配[3]可以得到视差图,由于对算法的实时性要求较高,因此选择原理简单实时性较好的SAD立体匹配算法[4]。该算法利用绝对误差累计的小窗口查找左右图像的匹配像素,对强纹理场景有较好的效果。SAD立体匹配算法首先预过滤图像,使图像亮度归一化并加强图像纹理,然后根据极线约束原则,SAD窗口沿图像水平极线进行搜索匹配,最后进行后过滤处理,去除坏的匹配点。SAD计算公式为:

(2)

CSAD(x,y,d)为匹配代价;w为邻域窗口;I(x,y)为基准图待匹配像素灰度值;d为窗口移动位移;I′(x+d,y)为配准图匹配像素灰度值。匹配代价最小时对应的视差即为所求视差。

由于程序实时性要求比较高,所以利用OpenCV均值漂移函数cvRunningAvg()来实时更新背景模型。二值化阈值分割就是对图像选取合适的阈值进行二值化,如果像素点灰度值大于阈值则该点为前景,否则为背景,阈值的选择直接影响目标检测效果。在此,采用OSTU(大津法)确定阈值,它是在最小二乘原理基础上推导出来的,算法将图像按照灰度特性分为背景和前景,两部分的类间方差最大时对应的灰度值就是阈值[5]。

经过二值化后的图像由于噪声、阴影等影响,存在很多小的连通,需要进行形态学处理,形态学主要操作包括腐蚀、膨胀、开运算和闭运算。开运算是先腐蚀再膨胀的过程,能去除二值化图像中的噪点、毛刺,闭运算就是先膨胀后腐蚀的过程,主要作用是填充目标细小空洞、连接裂缝[6]。对二值化图像先进行闭运算,再进行开运算,以达到准确分割目标的目的。结构元素B对图像A的开运算:

(3)

结构元素B对图像A的闭运算:

(4)

3 运动目标跟踪

检测出目标后,就可以进行目标跟踪。颜色是物体的固有特征,不受目标运动状态的影响,在目标跟踪中应用广泛。Camshift是基于颜色特征的连续自适应均值漂移算法,核心思想是用运动目标前一帧或检测到的位置和大小初始化搜索框,根据颜色直方图计算搜索框质心,移动搜索框中心至质心,当中心与质心距离小于阈值时即跟踪到目标,再以跟踪结果自适应搜索下一幅图像。但是由于缺乏有效的运动预测模块及对目标特征的更新机制,Camshift容易丢失目标[7]。Kalman滤波器是一种高效的递归滤波器,能够从一系列不完全的、包含噪声的测量序列中预测系统状态。Kalman滤波器分为预测和校正2部分,预测部分的作用是通过观测值与先验估计得到修正后的后验估计,并将后验估计用于下一时间状态的先验估计,校正部分的作用是将测量值与基于前一次测量得到的预期值进行调整。Kalman滤波器的状态方程为:

(5)

Kalman滤波器的观测方程为:

(6)

Xk与Xk-1分别为k时刻与k-1时刻的状态向量;F为传递矩阵;B为输入矩阵;Uk为允许的外部控制向量;Wk为动态噪声;Zk为k时刻的观测向量;Hk为观测矩阵;Vk为观测噪声。

Kalman滤波和Camshift结合可以有效解决目标丢失问题,基于Kalman滤波的改进Camshift跟踪算法流程如图2所示。 改进算法首先根据目标检测结果提取目标轮廓,利用Kalman滤波器预测Camshift搜索窗口的初始位置,然后利用Camshift算法计算目标的位置和大小,再以此位置作为观测值更新Kalman滤波器。当目标发生大面积遮挡时,Camshift算法得出的目标位置和大小不准确,可使用Kalman滤波器预测值作为观测值更新Kalman滤波器。

图2 基于Kalman滤波的改进Camshift跟踪算法流程

4 基于双目视觉的目标定位

目标定位的原理就是利用视差与深度成反比关系得到目标真实距离,立体匹配求取视差图后就可以进行三维测距。由Matlab标定工具箱得到摄像机内外参数,再利用Bouguet算法进行立体校正,可以得到重投影矩阵Q。矩阵Q图像坐标系坐标(x,y)、世界坐标系坐标(X,Y,Z)、视差d有如下关系:

(7)

(8)

c′x为主点在右图像上的x坐标,除c′x外Q矩阵中的其他参数都来自左图像;(cx,cy)为主点在左图像坐标;f为焦距;Tx为双目间距。(X/W,Y/W,Z/W)就是对应的世界坐标系中的坐标。

5 实验分析

5.1摄像机标定实验

表1是单目标定结果,得到摄像机内部参数;表2是双目标定结果,得到摄像机外部参数。图像大小为320px×240px,从标定结果看,误差较小,满足标定精度要求。另外,这里的旋转矩阵,是指棋盘围绕摄像机坐标系下三维空间的坐标轴的旋转,其中每个向量的长度表示逆时针旋转的角度。图像校正前后对比如图3所示,可以看出校正后左右图像在同一极线上,校正效果较好。

表1单目标定结果

项目左相机右相机焦距(fx,fy)/px(308.81134,308.89670)(307.81921,308.06230)焦距误差/px(1.42563,1.41058)(1.31844,1.30819)主点(cx,cy)/px(184.88843,116.77573)(164.84458,112.94921)主点误差/px(2.91672,2.06134)(2.71907,1.98095)畸变系数(k1,k2,p1,p2,k3)(-0.06448,0.12787,-0.00619,-0.00317,0.00000)(-0.04323,0.05013,0.00253,-0.00014,0.00000)畸变系数误差(0.02386,0.10423,0.00199,0.00286,0.00000)(0.02010,0.04643,0.00171,0.00322,0.00000)倾斜系数00像素误差(0.12130,0.12733)(0.14433,0.13368)

表2双目标定结果

旋转矩阵旋转矩阵误差平移矩阵平移矩阵误差 0.02868 0.00047-0.00196éëêêê〛0.008750.009810.00082éëêêê〛-189.82754 -0.96686 3.04682éëêêê〛0.499390.300292.48575éëêêê〛

图3校正前与校正后的对比

5.2运动目标检测跟踪实验

图4实验对象为遥控小车,其中,图4a和图4b为非动态阈值与动态阈值图像二值化分割对比。可以看出,基于OSTU动态阈值调整的二值化分割可以去除物体运动产生的阴影,并且可以更真实还原物体大小。图4c和图4d为加入Kalman滤波前后效果,结果表明加入Kalman滤波器的目标跟踪算法可以准确找到目标位置,效果明显提高。

图4 动态阈值二值化分割、Kalman滤波器的效果

图5为目标检测跟踪最终效果。实验对象为大小不同的两辆遥控小车,结果表明,本文提出的算法适用于多目标检测跟踪且效果良好。

图5 目标检测跟踪效果

5.3测距实验

表3为测距结果,从实验结果看出,误差小于1.5%,标定精度在可接受范围内。

表3测距结果

实际测量距离/mm计算距离/mm误差/%20002001.20.121001997.21.322002216.70.8

续表

6 结束语

为实现对运动目标的检测跟踪与定位,对摄像机标定、立体匹配和目标检测跟踪等关键技术进行了研究,基于OpenCV视觉库,在VisualStudio2010平台上编程实现。实验结果表明,基于双目视觉的检测跟踪算法能准确检测跟踪目标,并实现目标准确定位。

参考文献:

[1]McKennaS.Trackinggroupsofpeople[J].ComputerVisionandImageUnderstanding,2000,80(1):42-55.

[2]DangT,HoffmannC,StillerC.Continuousstereoself-calibrationbycameraparametertracking[J].IEEETransactionsonImageProcessing,2009,18(7):1536-1550.

[3]隋婧,金伟其.双目立体视觉技术的实现及其进展[J].电子技术应用,2004(10):4-6.

[4]岳陈平,孟丽娅.基于SAD算法的立体匹配的实现[J].微型机与应用,2013,32(6):41-43.

[5]张辉,张道勇,何最红.灰度等级处理中的OSTU动态阈值法研究[J].传感器世界,2008(7):24-27.

[6]刘冬冬.基于双目视觉和CamShift算法的目标检测与跟踪[D].济南:山东大学,2006.

[7]侯杰虎.基于Kalman滤波器的视频运动目标跟踪算法研究[D].成都:成都理工大学,2012.

Abstract:In order to solve problems such as traditional target detecting and tracking methods failing to locate accurately and method being susceptible to interference from light and shadow, target detecting and positioning methods based on binocular vision are put forward. Firstly, the Matlab Calibration Toolbox and OpenCV were used for camera calibration as well as for image correction. Next, the background difference method based on binocular vision was used to achieve target detection, while the improved Camshift algorithm based on Kalman filtering was employed to realize target tracking. Finally, a disparity map was used to obtain the three-dimensional target information, thereby achieving target location. Experimental results show that the proposed method can track the moving target in real time and can achieve an accurate positioning.

Key words:binocular vision;target tracking;stereo matching;3D distance measurement

作者简介:王婷婷(1990-),女,河北衡水人,硕士研究生,研究方向为机器人视觉。

基金项目:国家自然科学基金(61473104)

收稿日期:2015-01-27

文章编号:1001-2257(2015)06-0073-04

文献标识码:A

中图分类号:TP391

猜你喜欢
目标跟踪立体匹配
影像立体匹配中的凸优化理论研究
基于互补不变特征的倾斜影像高精度立体匹配
多视角目标检测与跟踪技术的研究与实现
基于改进连续自适应均值漂移的视频目标跟踪算法
基于重采样粒子滤波的目标跟踪算法研究
双目立体匹配算法的FPGA实现
改进导向滤波器立体匹配算法
空管自动化系统中航迹滤波算法的应用与改进
智能视频技术在电力系统领域的应用
动态规划立体匹配的状态空间分析和性能改进