运动目标图像的识别与跟踪本文主要目的是将视频摄像头中的运动目标从背景中提取出来,并加以跟踪。
首先考虑的是常见的目标检测的算法,其次考虑对于噪声的滤除,最后是对运动目标的跟踪。
一、基本目标检测算法我们主要考虑的目标检测的算法主要有三种,光流场法、背景模型法以及时域差分法。
1.1光流场法光流主要是图像亮度模式的表现运动。
而光流场则是指灰度模式的表面运动。
一般条件下,我们可以根据图像的运动,进行估算相对运动。
光流场法的基本理论是光流场基本方程:0=++t y x I vI uI (1.1)式中我们根据亮度守恒,利用泰勒公式展开,忽略高阶项与二次项。
其中x I 、y I 和t I 是图像在对数轴x 、y 两个方向和t 的的导数,()v u ,就是这个点的光流坐标。
光流场法的目标检测,在摄像机运动时候也可以做出判断,但是图像的噪声太过明显,使得计算数据庞杂,计算的公式更加复杂,这样并不适合我们的对于目标跟踪的高精度的摄像系统。
1.2背景模型法背景模型法,也被称为背景差法,主要利用当前的图像和背景的图像的二值化做差,然后取阈值,分割运动目标。
首先根据:()()()y x b y x f y x D t t t ,,,-= (1.2)我们可以得到当前的图像帧数()y x f t ,和背景图像的帧数),(y x b t 做差,然后以公式对图像进行二值化的处理。
⎩⎨⎧≤>=)(,0)(,1),(BackGroundT D ForeGround T D y x P t t t (1.3) 上面),(y x P t 是二值化模板图。
假设某一区域大于一个给定的面积的时候,该区域就是我们要找的目标区域。
背景模型法的算法简单,可以快速反应,并且可以提供运动目标的大略特征等数据。
但是对于复杂背景下,比如人流较大的公共场所,或者有光照等干扰时,就需以其他的算法以不断更新背景信息来进行弥补。
相关的,还有背景统计模型法,在没有运动目标的前提下,建立背景的静态景观作为背景数据,然后根据前一帧数图像和以后的图像进行实时比对,采集运动目标。
现在最常用的描述背景点颜色分布的概率模型是高斯分布,并提出了自适应高斯混合背景模型,用以模拟背景。
背景统计模型的方法是在数理统计方法之上,相比之下,和对整体的像素点利用同一阈值分割更加有效、合理。
1.3时域差分法该方法是指对一个非常小的时间间隔t ∆(t ∆<<1s),两幅图像根据这一时刻和上一时刻背景的比较,利用阈值化来进行筛选运动目标区域,提取运动目标。
差分图像),(1y x D 根据公式:),(),(),(11y x f y x f y x D t t ∆--= (1.4)上式中,),(y x f t 是t 时刻的帧图像,),(y x f t t ∆-则是t ∆以后的帧图像。
接着,根据下面公式,对图像进行二值化:⎩⎨⎧≤>=)(,0)(,1),(BackGroundT D ForeGround T D y x P t t t (1.5) ),(y x P t 是二值模板图。
目标像素大于T 时,该像素就是目标像素,小于等于T 时就一定为背景像素。
时域分析法的计算速度快,对于运动目标的分析准确。
虽然不能完全分析出运动目标所有的像素点,但是可以确定运动目标的方位。
美中不足的是,它对于运动目标的位置检测不够精细,而且也有较多的噪点。
二、针对本文对移动目标跟踪的方法在本文中,我们在针对移动目标的检测跟踪,首先截取一个静态的图像,作为背景,其次针对这一背景我们与下一时间段的所截取图像进行比较。
如果有较大的变动,说明有移动物体出现。
然后按照:灰度、中值滤波、二值化、差值法、确定运动目标、求重心这一顺序来完成对运动目标的跟踪。
2.1 RGB 图像的灰度化处理正常采集的图像都是彩色的图像,需要我们对彩色的图像灰度处理,能使得图像后期的处理更加简单。
现在的图像采集方式所采集的图2.1 运动目标跟踪算法程序图图像中的像素的颜色有绿色、红色和蓝色三个分量。
这三种颜色分别搭配组成各种各样的颜色。
其中每个分量有255种取值,相当于每个像素点上颜色的变化范围达到一千六百余万种。
灰度图像是图像中比较特殊的一种,它的红绿蓝三个分量相同的特殊的彩色图像,像素点也只有255种变化,变化范围大大变小,计算量也同时变小,方便我们后期其他的处理。
所以我们一般进行数字图像处理的时候都要先将图像变为灰度图像。
它不影响我们对图像整体特征的了解,因为其本身具有与彩色图像相同明暗特征,色度特征等。
整体和局部的特征除了颜色,没有其他的变化。
我们可以利用公式进行灰度化处理:),(*11.0),(*59.0),(*3.0),(y x B y x G y x R y x Gray ++= (2.1)上式,),(y x 为图像中一个像素点的坐标,Gray 所代表的的物理意义是点的亮度,也就是灰度。
R 、G 、B 分别代表红色绿色蓝色这三个颜色分量。
图2.2是采集的原图像和灰度图像对比,4.2a 图为采集到的原图,4.2b 为经过灰度处理的图像。
a 采集到的原图b 灰度处理后的图像图4.2 采集到的原图与灰度图像对比 2.2图像的中值滤波处理在图像采集、录像摄影过程中,图像经常会受到各种噪声的干扰。
体现为一些单独的小像素点,彩色图像或者灰度图像中,显示不明显,但是如果未经过滤波处理的图像,在二值化过程中就一定十分明显,会发现图像周围由于光线明暗、背景或者身体颜色的过渡形成一些孤立的像素点,也就是噪声。
这与这些噪声影响我们对于图像的处理的精确度,并对图像的分割、分析、阈值或者判断等带来巨大的影响。
受到噪声影响的图像有多种方法进行滤波,其中很多种方法去除噪声的同时,使得图像边缘变得模糊,这样令我们的图像特征受到很大影响。
这是图像滤波的低通性,一般这种滤波方式都是线性的滤波。
我们使用中值滤波方式,这种方式是非线性的,可以做到保护边缘又可以去除明显的噪声污染。
把数字图像中的一个点的值用该点的一个区域的各个点的值的中值代替。
一组数n x x x x x 4321,,,,令其排序如下:in i i i x x x x ≤≤≤≤ 321则:{}⎪⎩⎪⎨⎧+==+))](2/([21)(,,,,,)2/(2/]1[4321为偶数为奇数n n x x n x x x x x x Med Y i n i n i n (2.2) Y 称为n x x x x x 4321,,,的中值,如有一个序列(10,20,30,40,50,60,70),则中值为40。
这是中值滤波的实现原理把一个点的特定长度或形状的领域称为窗口,我们所处理的二位图像进行滤波,定义输出为:}),(,),({}{2)(),(I j i A s r x med x med Y s j r i ij i ∈∈==++ (2.3)图2.3是图像经过灰度处理后再由中值滤波处理的图像对比。
a 滤波前的图像b 滤波后的图像图2.3 图像滤波前后对比2.3图像的二值化处理图像的二值化处理是将图像上的点的灰度值置成0或255,也就是整个图像呈现出明显的黑白效果。
即将255个灰度等级的灰色图像通过适当的阈值选取而获得仍然可以反映图像是整体和局部特征的二值图像。
我们进行过上面所说的灰度化处理后,把灰度图像二值化,便可得到二值图像,这样在对图像做进一步处理的时候,图像的几何性质与像素值为0和255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量较小。
我们一般采取阈值分割技术来得到理想的二值图像,这种阈值分割方式对于背景和人物有较强的对比的情况下尤其有效。
二值化处理的计算简单,并且总能封闭,应用更加方便,我们可以判定所有的灰度的值大于我所规定的阈值的就被我判定为黑色,灰度值就是255,否则我就将它判定为白色,或者说不是背景区域,灰度值为0。
或者我们也可以说,所处理的二值图像上所得值不是1就是0。
假如采集图像中的物体呈均匀的深色,而且背景的灰度等级明显低于被拍摄物体,阈值法就可以很好的分割所采集图像。
假设灰度值为N L L L ,...,21的图像,图像尺寸为N M ⨯,利用随机变量X 表示图像中的随便一个像素N y M x xy ...3,2,1,...3,2,1∈∈μ。
N L L L ,..,,21,就是说X 有N 个取值的可能。
各级灰度出现的概率:)(),...,(),(2211N N L P p L P p L P p === (2.4)并且11=∑=N n N p(2.5) 我们用密度矩阵来描述这种随机变量:⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡N N p p p L L L X P X ,...,,,..,,)(2121(2.6) 不同的图像,矩阵的密度也有所不同。
期望值在随机变量的统计过程中能反映出随机变量的平均值。
也代表随机变量取值比较集中的地方。
灰度值在图像中是随机变量,所以,该从灰度中心进行分割。
它令有灰度值的白像素和黑色像素有均等的灰度值,用threshold μ表示阈值:∑==N n n n t h r e s h o l d L P L 1)(μ (2.7)使)(n L h 表示n L 的出现次数,则:∑∑∑∑∑========N n n N n n n m N n n N n nN n n n threshold L h L h L Lh L h L L P L 11111)()()()()(μ (2.8)经过滤波,所处理的二值化图像的噪点会少一些,图2.4是中值滤波后所处理的二值化图像。
a 图像二值化前b 图像二值化处理以后图2.4 图像进行二值化处理前后比对2.4图像的差值处理为了使图像的重心计算更加简便,减少图像中的噪点,我们需要对图像每相邻四帧的二值化图像和第一帧的二值化图像做差,可以有效地提取背景。
该过程类似于边缘提取,但是并不一样,差值处理主要是根据时间先后做差。
如果是静态下的背景,处理后的图像只有很少的噪点,有运动的物体则能看出运动物体的轮廓。
图2.5是原背景与二值化后根据时间做差的两幅图像比比较:a背景原图像b背景图像经过差值处理后图2.5 背景图像经过差值处理前后图2.6是这一背景中有人运动的图像比较:a人物运动图像原图b人物运动时经差值处理后图2.6 人物运动时刻经过差值处理后的情况2.5重心计算我们对重心的计算主要是针对整幅图像的灰度为255的区域取平均值来取得的,该区域的位置一般在我们已经确定的运动目标的面积中心位置,这是根据所有区域的点计算出来的。
假定图像大小为NM⨯的数字图像),(yxf,重心位置),(YX定义为:∑∑===MxNyyxf xMNX11),(1(2.9)∑∑===M x Ny y x f y MN Y 11),(1(2.10) 由于我们的图像都是经过二值化处理的,目标区域的值都是1则上式化简:∑∑===M x Ny x MN X 111 (2.11) ∑∑===M x Ny y MN Y 111(2.12) 也就是说,我们可以利用目标点的坐标位置进行计算,假设其目标外接一个矩形,则重心点就在矩形的中心点。