沈盼盼,樊 丰,伍瑞卿
(电子科技大学,四川 成都 611731)
对视频序列中运动目标的提取是计算机视觉和视频分析的基本部分,在视频监控[1]、体育运动分析[2]、人机交互[3]、辅助临床医疗诊断[4]等领域有广泛的应用前景。基于背景差分的运动目标检测是最常用的方法[5],该方法中背景的获取和更新是关键。近年来,人们对如何构建背景进行了大量的研究,例如高斯模型的法、中值法、时间平均法等,大多数都是针对像素建立的。
本文从直接计算背景像素值的角度研究。因为时间平均法容易将前景运动目标混入到背景图像中,导致提取的背景图像出现混影。自适应平滑算法利用通过时间段内像素点的不变性建立背景模型,但是如果运动目标运动缓慢或者暂时静止时候会将前景像素值误判为背景像素值,产生错误结果。基于像素在时间轴上变化提出的中值法,检测过程中可能会因光照的变化将噪声点像素值误判为背景。针对这些问题,本文根据运动目标像素值的变换比背景的变化快[6]的思想,采用帧间差分法和中值法相结合构造背景模型,并且利用帧差信息对背景实时更新。采用对RGB空间的三通道分离的运动目标检测方法,采用Osto法[7]获取阈值来提取运动区域。本文算法在运动目标存在的情况下也能建立较完整的背景模型,构建的背景可适应光照变化和微小物体的抖动,克服了在对目标和背景灰度相近的情况下难以提取准确的目标对象的问题,另外,背景更新是针对每个像素点更新,大大减少了运算时间。
首先,利用中值法获取背景BM;然后,利用相邻帧间差分的变化获取背景BS;考虑到光照等影响,中值法难免会将噪声点误判为背景,所以最后将得到的BM和BS进行加权,得到初始背景模型。图1为初始背景模型的获取流程图。
算法步骤为:
1)从N帧视频呢序列中获取n帧图像,记作(f1,f2,…,fn)。
图1 背景模型获取流程图
4)对n帧图像进行灰度变换,变换后的灰度图像序列记为 (g1,g2,…,gn)。
5)对n帧灰度图像(g1,g2,…,gn)进行帧间差分,对差分后的每个灰度图像进行二值化,阈值的选取由Otsu 法确定,得到一个二值图像序列 D2(i,j),D3(i,j),…,Dn(i,j)。
6)在二值图像序列中,每个像素点的值可看作是由0和1组成的一维数组,找出其一维数组中连续性最长的0 的区间,例如点 (i,j)的像素点变化情况为[0,1,0,0,1,0,0,0,1,1],可以看出最长的0 区间中有 3 个 0。求出这个区间中最中间的元素所在的列数,找出其对应的视频序列号,如果是奇数个0就取最中间一列,对应视频序列号为M,如果是偶数个0就取中间两列,对应视频序列号为M1和M2。
7)假设提取的最长0区间有m个0,则背景图像BS的每个像素值计算公式如下
每个像素都进行处理,最后得到第二个背景模型BS。
8)考虑到两种方法的优缺点,本文将获取的两个背景模型按照式(2)结合来作为初始背景模型B0
式中,λ在(0,1)的范围内。
图2和图3显示了对SampleVideo和highway分别利用时间均值法、文献[4]的方法以及本文算法建立的背景模型。序列SampleVideo中λ取值为0.97,序列highway中λ取值为0.9。从图中可以看出,用时间平均法获取的背景模型会残留前景部分的重影,尤其在运动目标速度较快的时候比较明显。文献[4]的方法在目标存在或者移动缓慢的情况下会将目标部分误判为背景。而本文算法建立的背景效果较好。
取n帧视频序列,由视频序列每个图像和初始化背景模型对比得到一个差异累计图像。在差异累计图像每个像素点设置一个计数器,序列图像和初始化背景模型之间在某个像素点出现一次较小差异就令计数器加1,差异大小根据阈值Tf来判断。当第k帧图像与初始化背景模型相比较时,差异累计图像可看作是随时间变化的一个动态矩阵A(i,j,tk)。根据运动对象的像素值变化比背景像素值变化快的特点,按照如下方法更新背景:
设有 m 帧视频序列 f1(i,j),f2(i,j),…,fm(i,j),差异累计矩阵为
式中:τ(i,j)记录每个像素差异累计的次数,由二值图像序列(g1,g2,…,gn)中每个像素点的最长0区间长度决定,因此每个像素点的τ值不同。假如当前的背景模型为Bk-1(i,j),则当累计至 τ(i,j)时,点 (i,j)处的背景像素值根据式(2)自动更新,而差异累计图像中为0的像素点处背景像素值不变,公式为
式中:α为更新率,取值在(0,1)区间。
为了在阈值化时消除部分噪声的影响,首先对背景差后的灰度图像进行滤波处理,本文采用的中值滤波。fk为当前视频图像,Bk为当前背景图像。本文采用Otsu法自动选取分割阈值T0,另外为了抑制光照突变的影响,增加一个动态阈值Ts。计算公式如下
式中:T为选取的阈值,Ts体现了光照的整体变化,增加Ts能够在阈值时候抑制光线的影响。ε为抑制系数,如果光照变化明显则取较大值反之,取较小值。
阈值化后的二值图像中,运动对象已经大致获取,但是由于光照的突变或者噪声的影响使得检测到得前景中含有噪声点、空洞、间隙等,需要进一步优化才能得到较准确的运动目标。本文首先采用形态学的开、闭操作来填充小的空洞间隙,消除小一些的噪声点,然后对整个图像进行连通性分析,将面积较小的区域去除,最后留下的即是运动区域。
背景图像中,被阴影遮挡后的区域的灰度值将比原来减小,但是在色度变化不大的情况下可认为归一化的颜色空间对阴影造成的像素点颜色、亮度变化不敏感,具有一定稳健性[8]。考虑到只用RGB空间会丢失像素值的亮度信息,因此,分别按照式(4)计算当前视频图像和当前背景图像的归一化颜色空间的r和g的值,计算当前视频图像和当前背景图像的亮度值为
如果在 (r,g,I)空间的当前像素值为 (rk,gk,Ik),背景像素值为(rb,gb,Ib),则当前像素值同时满足式(10)的3个条件时,即为阴影
最后将检测出的阴影部分从提取出运动目标的二值图像中清除,得到更加精确的目标对象。
为了验证本文算法的有效性,选取了2组视频序列进行目标检测,并将本文算法在灰度域进行试验,与在RGB域的试验结果进行比较。图4显示了SampleVideo在灰度域获取的初始背景模型、目标检测结果以及经过形态学处理后得出的目标区域的二值图像。图5显示了SampleVideo在RGB空间获取的初始背景模型、各个通道的目标检测结果、3个通道相结合的检测结果以及经过形态学处理后得出的目标区域二值图像。
比较图4和图5可以看出,在目标灰度值和背景相近的情况下,在灰度域进行背景差分必然会丢失掉一些有用信息,本文将各个通道分离后分别进行目标检测,然后取并集可以得到更完整的运动对象。
图6是对SampleVideo序列第21帧、第30帧、第45帧的检测结果,图7是对hall的第15帧、第80帧、第100帧的检测结果,图8是对viptraffic的第20帧、第35帧、第51帧的检测结果。
本文主要对初始背景模型的获取加以改进,采用三通道分离来检测运动目标,实时性好,对目标和背景灰度相近的情况有较好的检测结果。但是也存在一些不足,如果目标长时间停留或者做微小的运动,获取的背景模型会掺杂较多目标区域,使得检测结果不够理想,有待进一步研究,结合其他方法进行改进。
[1]于忠校.视频监控图像的运动目标检测方法综述[J].电视技术,2008,32(5):72-76.
[2]JI Xiaofei,LIU Honghai.Advances in view-invariant human motion analysis:a review[J].IEEE Transaction on Systems,Man,and Cybernetics,Part C:Applications and Reviews,2010,40(1):13-24.
[3]FAI H,YAMAMOTO S.Bayesian online change point detection to improve transparency in human-machine interaction systems[C]//Proc.the 49th IEEE Conference on Decision and Control.[S.l.]:IEEE Press,2010:3572-3577.
[4]杨红梅.基于人体运动跟踪的远程康复系统关键技术的研究[D].重庆:重庆邮电大学,2010.
[5]齐志才.自动化仪表[M].北京:中国林业出版社,2006.
[6]YANG T,LI S Z.Real-time and accurate segmentation of moving objects in dynamic scene[C]//Proc.the ACM 2nd International Workshop on Video Surveillance & Sensor Networks.[S.l.]:IEEE Press,2004:136-143.
[7]朱瑾瑜,刘海燕,黄淑梅.基于连通性检测的视频监控运动目标提取[J].电视技术,2007,31(10):78-80.
[8]毛晓波,谢晓芳,张晓林.消除运动物体阴影的最大色度差分检测法[J].电子技术应用,2007,33(1):61-63.