孙国庆,侯忠生
(青岛大学自动化学院,山东青岛 266071)
随着集成电路和多媒体技术的发展,人们通过相机采集到大量的视频数据,为计算机视觉的研究与发展提供了丰富的数据集.在计算机视觉领域,视频序列中的运动目标检测[1-2]是一项重要研究课题.运动目标检测是通过分析视频序列图像,提取场景中的运动目标,是进行目标跟踪[3]、行为识别[4]和异常检测[5]等后续更高级处理的关键步骤.背景减除[6-7]是应用于运动目标检测的有效方法.只要得到视频序列中稳定的背景图像,将视频序列中的原图像与背景图像做差分运算,即可得到前景运动目标图像.
2012年召开的IEEE CVPR’2012国际会议上对近年来运动目标检测的研究成果进行了评价并总结成文[8].同时IEEE CVPR’2012提供了7类公共视频数据集,每类数据集又包含不同场景下采集到的视频序列.IEEE CVPR’2014将公共视频数据集由7类增加到11类[9].根据采集视频序列的相机与被监控场景是否有相对运动,该数据集分为静态背景和动态背景两类.在11类公共视频数据集中,其动态背景包含相机抖动、相机旋转和相机缩放3种不同场景.现实世界中由于自然风或地面震动等原因造成相机抖动是一种常见现象.相机抖动会造成整幅图像发生偏移,从而导致现有大多数背景减除法处理效果不理想.同时视频背景图像也会因天气、光照、传输噪声等影响发生不确定性的变化,这也会给背景图像的提取增加困难.为了克服这些干扰,构造一个更加接近真实值的背景图像表达方式是非常关键的.
目前,有多种先进的背景表达方式,如混合高斯(mixture of Gaussians,MoG)、核密度估计(kernel density estimation,KDE)[10]、模糊积分(fuzzy integrals,FI)[11]、自组织映射(self-organizing map,SOM)等.尽管背景图像表达方式不同,但均利用视频序列的历史数据,通过特定历史数据处理方法对背景图像建立数学模型.然后根据模型对新视频序列实时处理进而表达背景图像.历史数据处理方法可分为以下3种[12]:
1) 原始数据统计模型.
统计背景图像历史数据的中值[13]、平均值、加权平均值或其它统计指标建立数学模型来预测背景值.显然原始数据统计模型不能实时适应背景变化.
2) 数据统计分布模型.
假定背景图像历史数据满足某些统计分布,根据统计分布建立数学模型来表示背景.代表模型有核密度估计[10]、混合高斯模型(Gaussian mixture model,GMM)[14]、基于区域高斯混合(region-based mixture of Gaussians,RMOG)[15]等.但当背景图像受到噪声干扰,背景值可能会出现不符合假定统计分布的情况.
3) 数据学习模型.
数据学习模型是通过特定的学习方式提取历史数据特征来预测背景,克服了数据统计分布模型的假设失效问题,同时模型的精度和鲁棒性可由学习方法和预测因子的合理选取来保障.代表模型有模糊积分(fuzzy integrals)[11]、码本(codebook)[16]和自组织背景相减(self-organizing background subtraction,SOBS)[17]等.
当场景发生变化或受到光照噪声等影响时,建立的模型可能会出现失真情况,导致难以表示真实的背景图像.基于失真模型而得到的图像处理结果其可应用性将会受到质疑.数据驱动方法是根据系统的历史在线数据,直接寻找输入输出数据之间的关系,进而可省略建模过程,直接得到所期望结果的方法.数据驱动方法更适合背景图像的表达,可避免数学模型带来的不确定性.
无模型自适应控制(model-free adaptive control,MFAC)理论是侯忠生教授于1994年提出并已经得到广泛验证的数据驱动方法[18-21].该方法不包含系统模型信息,仅利用被控系统的输入输出数据,避免了模型带来的干扰.MFAC方法已经在运动目标检测方面得到成功的应用[12,22].文献[12]用MFAC方法处理灰度视频序列.文献[22]在灰度视频序列的基础上,使用了多输入多输出情形下的MFAC方法处理RGB视频序列.基于彩色图像的MFAC算法分离的前景图像正确率更高.上述MFAC方法的应用场景均是在静态背景,然而在动态背景中,例如相机抖动场景,MFAC对视频序列中运动目标检测还没有任何研究.
相机抖动会造成相邻两帧图像发生偏移,即图像上同一物体对应的像素点在坐标位置上发生平移.同时抖动也会造成图像边界像素丢失和新的像素信息进行填补.如果抖动造成的偏移量不太大,例如图像偏移量不超过整幅图像的10%,根据实际图像处理经验,此时大多数像素点仅在位置上发生平移运动.如果能计算出相邻两帧图像之间的偏移量,然后对偏移量进行运动补偿,可有望消除相机抖动带来的干扰.即通过背景补偿法[23]将动态背景转化为静态背景.
本文在MFAC算法处理静态视频序列图像的基础上,提出了一种处理相机抖动场景下运动目标检测的无模型数据驱动算法.其流程图如图1所示.具体算法描述如下:通过特征检测获取相邻两帧图像若干稳定的特征点对,根据匹配特征点对的偏移量来估计相机的偏移量,进行背景运动补偿.利用基于紧格式动态线性化(compact form dynamic linearization,CFDL)的MFAC方法,建立背景图像更新系统,实现对视频序列背景图像的表达.运用背景减除法,提取出前景运动目标.最后通过不同视频序列进行仿真实验,并与其它运动目标检测方法进行对比,来验证本文算法的有效性和优越性.
图1 MFAC相机抖动场景运动目标检测步骤Fig.1 Steps of MFAC moving object detection in camera jitter scene
在相机抖动场景中,如果不考虑像素偏移量,直接运用MFAC方法表达背景图像,构建出来的背景图像会随着帧数的增加逐渐模糊化,造成大量的误检区域并引入很多噪声,示意图像见图2.小幅值的相机抖动没有改变图像的局部特征,只是在坐标位置上发生偏移.因此图像的特征检测是作为估计相机偏移量的优选.本文利用Harris角点检测算法[24]分别提取相邻两帧图像的角点特征,作为计算偏移量的特征点.
图2 相机抖动场景直接运用MFAC进行处理Fig.2 MFAC is directly used for image processing in camera jitter scene
Harris角点检测算法原理[24]是利用窗口内图像灰度的自相关性进行的.当像素点在横向和纵向都出现像素值较大变化时,即认定为特征角点.检测过程为设定一个窗口并在图像中移动,计算移动前与移动后窗口所在区域图像的自相关系数.对于图像I(x,y),当在像素点(x,y)处平移(Δx,Δy)后的自相似性通过下面自相关函数给出:
式中:(x,y)是窗口中心位置,w为窗函数(window function),L表示窗口,(Δx,Δy)是窗口的偏移量,E表示图像灰度变化的剧烈程度.对E做泰勒展开:
特征点响应函数用下式表示:
式中:det(M)表示矩阵M的行列式,trace(M)表示矩阵M的迹,R表示特征点响应值.∂为经验常数,一般在0.04至0.06之间取值.当R ≫0时,即为检测到的特征角点区域.
本文采用欧式距离的方法[25]对特征点进行初匹配.假设两个特征点为p和q,其128维的特征描述子记为Dp和Dq,则欧式距离用下式表示:
通过采用最近邻与次近邻距离比值法作为特征匹配的相似性度量准则.选取与目标特征点的最近邻参考特征点作为正确匹配点,取次近邻参考特征点作为错误匹配点.如果二者欧氏距离的比值小于设定的阈值时,则认为是特征匹配点.特征点初匹配结果如图3所示.
图3 初匹配结果Fig.3 Initial matching results
在进行初匹配的特征点对结果中,不仅包含背景图像物体的匹配特征点对,同时也包含了前景运动物体的匹配特征点对.前景运动物体位置偏移是由前景物体本身运动与相机运动共同造成,故匹配的前景运动物体特征点对应该被剔除.本文采用随机抽样一致算法(random sample consensus,RANSAC)[26]去除前景匹配特征点对.只保留背景匹配特征点对结果如图4所示.在只包含背景匹配特征点对得到的一组偏移量数据中,出现次数最多的数值即为相邻两帧照片的偏移量(Δm,Δn).
图4 去除前景匹配特征点对匹配结果Fig.4 Remove the matching result of foreground matching feature point pairs
通过估计出相机偏移量,确定相邻两帧图像像素之间的对应关系,目的是克服相机抖动的干扰,使动态背景转化为静态背景运动目标检测.下面将利用数据驱动的思想进行背景图像的表达.
考虑下面一类在线单入单出离散时变非线性系统:
式中:f(·)是未知的非线性函数,y(k)与u(k)分别是系统在k时刻的输出与输入,ny与nu分别是系统输出与输入的未知阶数.
假设1f(·)关于控制输入的偏导数是连续的.
假设2除有限时刻点外,控制系统(9)满足广义利普希茨条件,即对任意的k12,k1≥0,k2≥0和u(k1)(k2),有|Δy(k+1)|≤c|Δu(k)|,其 中Δy(k+1)=y(k+1)−y(k),Δu(k)=u(k)−u(k −1),c >0是一个常数.
注1假设1是大多数数据驱动算法的一般条件.假设2是对受控对象动力学行为的一种约束,即有限的影响因素变化不能引起无限的输出行为变化.
对满足假设1,2的非线性系统(9),当|Δu(k)|0时,一定存在一个被称为伪偏导数(pseudo partial derivative,PPD)的时变参数φc(k)∈R,使得系统(9)转化为如下CFDL数据模型[19]:
并且φc(k)对任意时刻k有界.
考虑如下控制输入准则函数:
式中:λ >0是一个权重因子,目的是限制控制输入的变化;y∗(k+1)为期望输出.
将式(10)带入准则函数(11)中,对u(k)求导并令其导数为零,可得如下控制算法[19]:
式中:ρ ∈(0,1]是步长因子,目的是使算法更具有一般性.
式(12)中φc(k)的值是未知的,考虑如下估计准则函数:
式中:µ>0是权重因子.对式(13)关于φc(k)求极值,可得PDD的估计算法:
式中:η ∈(0,1]是步长因子,目的是使估计算法更具有一般性.(k)是φc(k)的估计值.
综合PPD估计算法(14)和控制算法(12),单入单出离散时变非线性系统的CFDL-MFAC方案如下[19]:
注2式(15)是PPD估计算法,式(16)是重置算法,式(17)是控制输入算法.重置算法的引入是为了使PPD估计算法具有更强的对时变参数的跟踪能力.
在静态场景中,视频序列背景图像中像素点(m,n)在各个时刻的值用{b(m,n,1),b(m,n,2),···,b(m,n,t)}序列表示.该序列可看作单入单出离散时变非线性系统.视频背景图像受自然环境影响缓慢变化,且像素值为有界正整数,所以背景图像的生成满足假设1和2.因此可以将背景图像生成系统转化为如下CFDL数据模型[12,22]:
相机抖动引起像素坐标位置偏移,相邻两帧图像像素对应点的坐标位置在时刻发生变化,其变化规律可用下式表示:
式中:i代表以当前时刻为基准向前i个时刻.Δm(t −i −1),Δn(t −i −1)分别表示t −i和t −i −1相邻两时刻图像在行和列方向的偏移量.当前时刻像素点坐标(m0,n0)因为偏移对应的t −1时刻的像素点坐标为(m1,n1).
在相机抖动场景中,视频序列背景图像中像素点(m,n)在各个时刻的值用{b(m,n,1),b(m −Δm(1),n−Δn(1),2),···,b(m−t)}序列表示,该序列依然可看作单入单出离散时变非线性系统,同样满足假设1和2.因此背景图像生成系统转化为如下CFDL数据模型:
式中:Δb(m0,n0,t)=b(m0,n0,t)−b(m1,n1,t−1),b(m1,n1,t −1)表示像素(m1,n1)在t −1时刻生成的背景图像,其对应的是t时刻像素(m0,n0)的背景图像;φ(m1,n1,t −1)表示背景图像生成系统的伪偏导数;Δu(m1,n1,t −1)表示背景图像生成系统的输入变化,用下式表示:
因此,相机抖动场景下CFDL-MFAC背景图像生成方案用式(25)-(27)表示:
实时进行背景更新与前景提取是整个运动目标检测系统的两个关键步骤,二者交错迭代进行.前景提取采用如下背景减除法:
式中:F表示像素点(m0,n0)在t时刻前景目标判断结果,th代表前景与背景的分离阈值.当差分结果大于等于阈值th,表示t时刻像素点(m0,n0)被前景运动目标遮挡,则F值为1,分离出前景目标;当差分结果小于阈值th,表示t时刻像素点(m0,n0)处为背景,则F值为0,进行背景更新.
选择性背景更新策略用下式表示:
式中:当F的值为1时,代表在t时刻存在前景目标,此时需要更新的背景像素点就用前一时刻相机抖动对应的背景像素点值代替.当F的值为0时,代表在t时刻不存在前景目标,背景更新就用MFAC的方法减少各种噪声的干扰.
注3相机抖动会使部分像素点丢失,导致边界像素点无法找到前一时刻对应的坐标像素点.采用当前时刻图像的像素点作为背景图像像素点进行更新,用下式表示:
PC机配置为windows 10操作系统,AMD Ryzen 7 4800H,2.90 GHz 8Cores,16 GB RAM.软件为MATLAB2019.
视频数据集是由IEEE CVPR发布在ChangeDetection.net网站上的数据集dataset2014.dataset2014提供了11类视频数据集,其中camera Jitter是专门的相机抖动场景下的视频数据集,包含四大视频序列,根据场景不同所对应的视频序列的名字分别为badminton,boulevard,sidewalk,traffic.该四类场景视频序列即为本文所处理的视频数据集.
控制方案(27)-(29)中的参数ρ,λ,µ,η将会影响控制系统的稳定性和响应速度.本文中,参数选取为ρ=0.1,λ=1,µ=1,η=1,φ(m,n,1)=0.2,th=25.背景初始化方法根据文献[27]确定.
将本文方法与KDE[10],GMM[14],RMOG[15]和SOBS[17]4种方法进行比较.仿真结果如图5-6所示.图5是同一视频序列boulevard不同视频帧的实验对比结果.从图5中可以看出MFAC方案更新的背景基本还原了真实的背景图像,同时提取的前景更加接近真实前景图像,且包含更少的误检噪点,基本消除了相机抖动和外部光照等噪声的影响.图6是针对不同视频序列traffic,sidewalk,badminton的仿真结果,从图6中可以看出,基于MFAC的方法,更新的背景与分离的前景图像效果最好,表明MFAC方法普适性、鲁棒性最强.
图5 视频序列boulevard.(a)当前原始图像;(b)真实前景图像;(c)MFAC提取的前景图像;(d)MFAC提取的背景图像;(e)GMM;(f)KDE;(g)RMOG;(h)SOBS.视频帧数分别是#900,#1200,#1490Fig.5 The video sequence comes from boulevard.(a)original image;(b)ground truth;(c)foreground image by MFAC;(d)background image by MFAC;(e)GMM;(f)KDE;(g)RMOG;(h)SOBS.The video frames are#900,#1200,#1490,respectively
图6 视频序列分别为traffic,sidewalk,badminton.(a)当前原始图像;(b)真实前景图像;(c)MFAC提取的前景图像;(d)MFAC提取的背景图像;(e)GMM;(f)KDE;(g)RMOG;(h)SOBS.视频帧数分别是#960,#880,#1100Fig.6 The video sequences come from traffic,sidewalk,badminton,respectively.(a) original image;(b) ground truth;(c)foreground image by MFAC;(d)background image by MFAC;(e)GMM;(f)KDE;(g)RMOG;(h)SOBS.The video frames are#960,#880,#1100,respectively
IEEE CVPR提供了如下定量评价数量检测指标,即:召回率(recall)、精密度(precision)、F-测度(F-measure)和正确分类率(percentage of correct classification,PCC)[8-9]用于检验不同前景图像提取方法.
式中:TP表示准确提取的背景像素点个数;TN表示准确提取的前景像素点个数;FP表示错误识别为背景的前景像素点个数;FN表示错误识别为前景的背景像素点个数.
召回率代表被正确提取为背景的像素点占理想状态背景的比例.精密度代表提取出的背景图像中理想状态背景占得比例.F-测度结合召回率和精确度综合反映背景提取方法的性能.正确分类率代表正确分类背景和前景占总像素点数的比例.这些指标均代表准确率,数值越接近1代表方法性能越好.
前景图像数值指标对比结果见图7-10.本文提出的方法前景召回率稳定在90%左右,说明对前景图像的提取较为完整.像素正确分类率在98%以上,表明前景与背景分离效果较好.
图7 召回率的对比Fig.7 Comparison of recall
图8 精密度的对比Fig.8 Comparison of precision
表1汇总了数据集cameraJitter4类视频序列全部的实验指标结果,以平均值的形式进行对比.从中可以看出,MFAC对视频序列处理的结果指标保持最高,要优于其他方法.
图9 F-测度的对比Fig.9 Comparison of F-measure
图10 正确分类率的对比Fig.10 Comparison of PCC
表1 不同方法的定量比较Table 1 Quantitative comparisons on different methods
表2汇总了几种方法的处理速度,MFAC因为其计算简单、计算量小的优点,在处理速度上也优于其它算法.
表2 不同方法处理速度比较Table 2 Processing speed on different methods
从仿真对比的定性分析与定量分析结果中,可以看出,本文提出的估算相机偏移量,基于MFAC图像处理算法可以很好地处理相机抖动场景下的运动目标检测问题.同时基于数据驱动的方式避免了模型失真的影响,且具有更强的跟踪能力、鲁棒性以及对场景的适应性更强.
为了克服相机抖动与光照变化等外界因素对背景图像表达的影响,提出一种以特征检测来消除相机抖动的干扰、借助CFDL-MFAC数据驱动控制算法来实现更新背景图像的方法.仿真试验对比表明,本文提出的解决方案具有较高的图像处理能力,可为解决相机抖动场景中的运动目标检测提供技术支持.
后续工作将针对相机旋转、缩放以及其他更加实际场景下的图像处理问题,同时也将研究将该算法进行实际系统应用的可能性上.