多视角目标检测与跟踪技术的研究与实现
2017-02-21瞿俊峰沈星辰倪进园
瞿俊峰+++沈星辰+++倪进园
摘 要:随着计算机视觉的发展,运动目标的检测与跟踪技术得到了充分的应用,然而容易被遮挡的致命缺陷大大限制了这一技术的发展空间。采用多个相机进行多视角观察是解决这一问题的有效方法。文章在已有的目标检测和跟踪技术的基础上加入了多个视角之间的航迹融合,将多个视角的坐标投影到统一的坐标系中,从而改善单一视角下目标检测与跟踪技术的不足。
关键词:目标检测;目标跟踪;多视角;航迹融合;归一化矩阵
1 概述
随着计算机视觉的发展,单视角目标检测跟踪技术的应用越来越广泛。商场、车站、大楼等许多公共场合都采用了这一项技术。
目前常见的目标检测方法有帧差法、光流法、混合高斯模型和非参数模型法等。帧差法[1]对环境有很好的适应性,差分图像受光线变化影响小,检测有效而稳定,但是只能检测相对运动的目标,检测出的目标位置不精确,不能提取完整的运动目标,较大程度依赖差分帧的选择时机和目标的运动速度,背景不能保证完全静止,就会导致目标提取的错误。光流法[2]能够在不知道场景的任何信息的情况下, 检测出运动对象。但是大多数光流方法计算复杂,只能得到稀疏的光流场,不适于实时处理。混合高斯模型[3]比单高斯模型更精确,能够较完整的提取目标。但是参数更新的收敛速度慢,不能够及时反映背景的变化;对全局亮度的变化比较敏感,有时会将整个视频帧作为前景。需要事先假定背景分布模型及需要进行模型参数估计和优化,也不适用于密度分布未知的计算机视觉等应用系统。非参数模型[4]能够较敏感地检测出运动物体,较完整地分割出运动对象。但是要建立非参数模型需要先存入N帧图像用来判断像素点和进行背景更新,制约检测速度,较难满足实时性。
常见的目标跟踪方法有特征匹配法、卡尔曼滤波法和光流法等。特征匹配法[5]对目标的视角、光线及运动状态的变化等不利因素有较好的适应性,对于刚性目标的跟踪具有很好的实时性和跟踪精度。但是跟踪准确性对于计算量有较大需求。卡尔曼滤波法[6]计算简单,跟踪准确,但是不能很好解决相互遮挡的问题,在运动目标之前相互交叉之后又继续运动的情况下,会出现将两个目标视为一个目标,交叉之后分开时,又视为两个新的目标。光流法[7]的优点在于不需要目标的先验知识,计算比较精确。但是,它对照度变化和噪声比较敏感、计算量也比较大。而且由于实际景物中的速度场不一定总是与图像中的直观速度场有唯一对应的关系,偏导数的计算又会加重噪声水平,使得基于光流的方法在实际应用中常常不稳定。
多视角目标检测跟踪技术,通过多个航迹之间的关联融合,解决单一視角存在的一些问题。本文根据国内外的研究现状,分析其优缺点,以单视角运动目标检测、单视角目标跟踪和多视角运动目标融合为研究内容,建立一种新的基于多视角探测的运动目标检测跟踪系统。通过对该项目的研究,可以有效的提高多视角目标检测跟踪系统的检测率和跟踪精度,使其具有更广泛的应用。
2 目标检测
早期的运动目标检测大多采用帧差法。这种方法检测速度快,计算量小,但是会造成检测结果不完整,不能完整提取运动目标的信息,给后续的处理带来了很大的麻烦。因此,我们选择了混合高斯模型进行运动目标检测。
背景像素值在一段时间内分布为多峰,利用单个高斯模型的集合来描述像素值在一段时间的变化状态,就是混合高斯。对每一个像素点,定义K个高斯分布来表示其状态,K值体现了像素值多峰分布的峰的个数,K值一般取在3-5之间,检测过程中只要像素点符合K个高斯分布的一个,就认为该像素点为具有背景特征的像素点,反之,该像素点被判为目标。
将一副图像分成RGB三个通道,各个通道将各色的灰度值作为每个像素点的值,构成相应的三个灰度矩阵。
然后从第n+1帧开始,逐帧进行背景匹配和背景、高斯分布更新。更新过程如下:对于每一帧,取一个像素点当前的灰度值与已有的5个高斯分布函数进行比较:如果存在匹配,则返回该高斯分布的序号k(1,2,3,4,5);如果不匹配,则继续评判后续函数是否匹配,如果均不匹配,则对已有高斯函数进行替换,将原有的高斯函数中权重最小的高斯函数替换为新的高斯函数,将新的高斯函数的权重w设为被替换高斯函数的现有权值,初始化新的高斯分布均值mean=该像素点灰度值,并且设定方差为3。对于存在匹配的高斯分布k,我们对其均值、方差、权重进行修正,总体而言,对于存在匹配的高斯分布k加大其权重,对于不匹配的高斯分布k减小其权重。更新后的权重w=(1-a)×w+a,其中a为学习因子,在这里设定学习因子a=0.5。更新后的均值mean=(1+a)×mean+a×image_source,其中image_source为当前像素的灰度值。更新后方差为std2=(1-a)×std2+a×(image_source-mean)2。
最后,在一帧图像处理完后,对各高斯分布进行归一化,找出权重最大的高斯分布并以此函数对应位置的值作为当前帧各像素点的背景值,从而提取出当前帧的背景。
3 目标跟踪
为了实现快速计算以实现实时处理,同时考虑到通过多视角航迹融合可以在一定程度上消除目标相互遮挡带来的缺陷,这里采用卡尔曼滤波实现目标跟踪。
卡尔曼滤波器的基本思想是:如果满足以下三个假设:
(1)被建模的系统是线性的,即k时刻的系统状态可以用某个矩阵与k-1个时刻的系统状态的乘积表示;(2)影响测量的噪声属于白噪声;(3)噪声本质上是高斯分布的。
且给出了该系统的历史测量值,那么可以建出一个将这些早期观测值的后验概率最大化的系统状态模型。假设的后两条说明噪声与时间无关,同时通过均值和协方差就可以准确地建立起幅值模型。将前期测量值的后验概率最大化是指每次获得测量值之后的模型都是在考虑早期的模型和新测量值之间的不确定性基础上建立的,并且具有最高的正确概率。
其中,R为测量噪声协方差。
所以,后验误差协方差为
卡尔曼滤波器用反馈控制的方法估计过程状态:滤波器估计k时刻的状态,然后用含有噪声的测量变量获得反馈。工作过程可分为两步,第一步为预测,用已获得的信息修正模型,然后用修正以后的模型计算目标下一时刻最有可能出现的位置;第二步为校正,在获得了k+1时刻的测量值后,将测量值与k时刻模型的预测值进行调整。
4 航迹融合
协方差矩阵算法计算简便,精确度高,因此非常适合应用在这种场合,下面对这种方法进行详细的论述。
首先对于三台相机,各取5个对应点,进行坐标变换。设三个视场内坐标分别为(x1,y1),(x2,y2)和(x3,y3)。建立一个矩阵H。然后将坐标归一化,即
各组数据归一化之后计算协方差conv(x1,y1)、conv(x1,x1)、conv(y1,y1);conv(x2,y2)、conv(x2,x2)、conv(y2,y2);conv(x3,y3)、conv(x3,x3)、conv(y3,y3),建立协方差矩阵
于是,建立坐标转换矩阵P
接下來,就可以根据三个视场内的坐标将目标投影到融合坐标系中
5 结束语
该项目基本实现了当初的预期目标。首先对于目标检测和目标跟踪,该项目都成功的实现并且对于非高速目标都可以实现检测和跟踪。而且,引入了航迹关联之后,对于目标检测和跟踪的效果都有明显提升,而单一视角下目标易被遮挡的问题也得到了一定程度上的解决。
程序运行后,如图1所示,对于运动目标,在每个视角内都用黑色框框出,同时根据当前状态预测下一时刻运动状态。
在图2中,目标发生遮挡,在每个单一视角中,可以发现两个目标被判定为一个,但是在融合坐标系中,还是可以观察到单独的目标(车)在移动。
参考文献
[1]高凯亮,覃团发,王逸之,等.一种基于帧差法与背景减法的运动目标检测新方法[J].电讯技术,2011(10):86-91.DOI:10.3969/j.issn.1001-893x.2011.10.018.
[2]王晓卫,宁固.一种改进的基于光流的运动目标的检测算法[J].武汉大学学报:信息科学版,2003(3):351-353.
[3]华媛蕾,刘万军.改进混合高斯模型的运动目标检测算法[J].计算机应用,2014,34(2):580-584.
[4]毛燕芬,施鹏飞.一种用于运动目标检测的多模态非参数背景模型[J].上海交通大学学报,2005.
[5]奚慧婷.刚性运动目标的跟踪算法研究[D].华东师范大学,2008.DOI:10.7666/d.y1371587.
[6]黄超群.基于混合高斯模型和Kalman滤波器的运动目标检测与跟踪[D].云南大学,2010.
[7]裴巧娜.基于光流法的运动目标检测与跟踪技术[D].北方工业大学,2009.