张艳艳, 娄 莉, 梁 硕
(西安石油大学 计算机学院, 西安 710065)
运动目标检测[1]的目的是从背景图像中尽可能完整地提取出运动目标。这是计算机视觉中一项关键技术,广泛应用于工业、医学、军事、交通等领域。运动目标检测是目标跟踪、行为分析的基础,检测的结果直接影响后续处理,所以运动目标检测尤为重要。然而,现在已有的运动目标检测算法还不能达到最佳效果,所以对此的研究仍在进行。由于现实场景非常丰富,不论是复杂的背景环境、检测目标的速度,还是光照的变化、目标的遮挡都会影响检测效果,因此,要想达到良好的运动目标检测效果非常不易。
目前常用的运动目标检测算法有三大类,即背景减除法、帧间差分法和光流法,而且均呈现出各自一定的优缺点[2]。其中,背景减除法原理简单,检测效果好;缺点是难以得到绝对的静态背景模型,并且需要对背景模型进行实时更新。帧间差分法对于图像序列的变化有较强的适应能力,更新、识别速度快;缺点是对于得到的运动目标易产生“空洞”现象,检测的目标不完整。光流法不仅包含了被提取运动目标的运动信息,也包含目标场景的三维结构信息,最重要的是该方法适用于摄像头运动的情况;其缺点是容易受到遮挡、光照突变和噪声等因素的影响,而不能获得正确的光流场,影响运动目标的检测精度。由于使用单一的运动目标检测算法尚存诸多不足,本文即通过将Lucas-Kanade光流法与最大类间方差的图像分割法相结合用于运动目标检测,从而提高运动目标检测的精度。
由于传统光流法耗时长且受噪声影响较大,而Lucas-Kanade光流属于稀疏光流,处理像素点少,耗时小,所以本文选用Lucas-Kanade光流法。具体步骤为:首先对图像序列进行灰度化处理,再通过Lucas-Kanade光流处理得到其光流场,通过最大类间方差的图像分割法进行前景提取,将光流不连续的区域视为前景,光流连续的区域视为背景,最后对图像进行形态学处理,完成运动目标的检测过程。通过Matlab实验仿真验证了本文算法可以切实检测出更为精确的运动目标,而且相对于传统的光流法,耗时更短。
光流是指图像表观运动的瞬时速度,包含观测物体变化信息、景物三维结构信息。光流场是一种二维的瞬时速度场,光流算法就是将三维的运动场转化为二维的光流场,方便后续前景提取。经典的光流法有基于全局的Horn-Schunc光流法[3]和基于局部的Lucas-Kanade光流法[4]。
本文主要使用Lucas-Kanade光流法来展开设计仿真实验,所以在此只讨论Lucas-Kanade光流法的基本原理。设像素点(x,y)在t时刻的灰度值为I(x,y),此像素点在t+dt时刻到达新位置点(x+dx,y+dy),对应的灰度值为I(x+dx,y+dy)[5]。根据图像一致性假设,当dt→0时,图像的亮度保持不变,即:
I(x,y,t)=I(x+dx,y+dy,t+dt)
(1)
经过一系列推导可得:
(2)
I·U+It=0
(3)
Lucas-Kanade光流法是由Lucas和Kanade共同提出的一种基于局部约束的光流计算方法。该方法假设在(x,y)的小邻域Ω内,所有像素点的光流矢量保持恒定,均可大致近似为(u,v);再赋予区域内各点不同的权重,根据权重和(u,v),计算(x,y)点处的精确光流。
设邻域Ω内有n个像素点,每个像素点对应的(u,v)应满足以下n个基本方程:
Ixiu+Iyiv+Iti=0i=1,2,…,n
(4)
根据亮度恒定假设中,光流基本约束方程的误差为:
Ec(u,v)=∬[Ixu+Iyv+It]2dxdy
(5)
在邻域Ω内,Lucas-Kanade光流的误差为:
ELK(u,v)=∬W2(x,y).(Ixu+Iyv+It)2dxdy
(6)
其中,W(x,y)={wi|i=1,2,…,n}是邻域Ω内各点的权重,其分布特点为中心的权重最大,越偏离中心,相应的权重值越小。
Lucas-Kanade光流法和Horn-Schunck光流法类似,即求解光流的过程都是求解误差值最小时的(u,v)的过程。实际计算时的图像数据是离散化的数据,所以必须对式(6)做出离散化处理,才能求得实际的水平方向光流u和垂直方向光流v。离散化处理后,可得:
(7)
则公式(7)可表示为:
(8)
其中,
W=diag(w1,w1,…,w1),b=[It1,It2,…,Itn]T
(9)
式(8)的解可记为:
(10)
这就是通过Lucas-Kanade方法计算得出的光流。
图像分割技术指将图像分为若干个各具特征的区域[7],也就是研究分析图像内容的具体特征信息,根据一定的准则,把图像分割成相邻的有意义的区域。特征信息包括灰度、纹理、色彩等。图像分割中最重要的内容是分割方法的设计与选择,分割方法的选择是否得当将直接影响分割结果及后续处理。目前常用的图像分割方法有:基于聚类的图像分割、基于形变模型的图像分割、基于区域的图像分割、基于阈值的图像分割等。由于基于阈值的图像分割方法简单,分割效果较好,本文将使用此类方法进行图像分割。
阈值分割[8]法主要有单阈值分割和多阈值分割法两种。分析可得,单阈值分割法只能简单地分割出目标区域和背景区域,只需一个阈值即可完成分割。多阈值分割方法的目的是分割出图像中不同的目标区域,对分割结果的要求更精确。阈值分割过程中的关键步骤是最佳阈值的选取,阈值过高或过低,都会影响图像分割效果。本文采用自适应的阈值确定方法OTSU算法、即最大类间方差法进行图像分割。
OTSU算法的基本思想是为了将图像分成背景区域和前景区域两类,用方差来判断背景区域和前景区域的差别,当两者之间的类间方差达到最大的时候,可确定最佳阈值、即为此时类间方差最大的灰度级。
OTSU算法原理是对图像I(x,y),前景和背景的分割阈值记为T,属于前景的像素点数占整幅图像的比例记为Pa,平均灰度为wa;背景像素点数占整幅图像的比例为Pb,平均灰度为wb;整幅图像的平均灰度记为w0。
假设图像的灰度级为L,大小为M×N,图像中灰度级为i的像素总个数为Ni,则计算灰度级i的概率为:
(11)
根据OTSU算法,最佳阈值求解公式为:
(12)
其中,
(13)
(14)
(15)
(16)
(17)
这就是通过OTSU算法得到最佳阈值的过程,本文使用此方法对相关实验图像实现阈值分割。
本文将Lucas-Kanade光流法和OTSU算法相结合用于运动目标的检测,从而得到一种改进的算法,算法设计流程如图1所示。
图1 本文算法流程Fig. 1 Flow chart of the algorithm in this paper
由于Lucas-Kanade算法是光流基本算法之一,使得其具备了光流的优点,即不需要建立背景模型,就可以得到检测物体的运动信息,且能获得比较完整的运动目标,与Horn-Schunck光流法相比,Lucas-Kanade是稀疏光流,仅对部分像素,而不是全部像素进行计算,因此耗时较短。在此基础上,本文将采用此方法进行光流的计算。
图像分割方法很多,由于阈值法实现简单、计算量小、性能较稳定,所以在图像分割中堪称是基础性和应用最广泛的设计技术。而最佳阈值的选择对图像分割技术发挥着至关重要的作用,阈值选择过高则会遗漏一些细节信息,阈值选择过低又会引入多余的噪声。所以本文选择采用自适应的阈值选择的OTSU算法,此方法能通过计算方差来得到最佳阈值。
算法实现步骤为:先获取两帧连续图像,对图像进行灰度化处理,得到其灰度图像;其次,对两帧灰度图像运行Lucas-Kanade光流算法得到光流场,从光流场中可以看出,光流连续的区域为背景区域,光流不连续的区域为前景区域,即运动目标所在区域;再通过OTSU算法运算得到最佳阈值,对其进行二值化处理,得到二值图像;最后进行形态学处理,使得到的运动目标更加完整。
本文使用的软件为Matlab2016a,为了将本文所用算法与传统运动目标检测算法做对比,实验采用LASIESTA数据集中的I_BS_02室内图像序列作为输入图像。图像展示序列如下:图2为当前帧图像;图3为背景减除法处理结果,第75帧图像为当前帧图像,第248帧为背景图像;图4为帧间差分法处理结果,第75帧图像为当前帧图像,第74帧为前一帧图像;图5为本文方法处理结果,第75帧图像为当前帧图像,74帧为前一帧图像。
图2 当前图像Fig. 2 The current image
(a) 背景相减的灰度图像 (b) 背景相减的二值图像(a) Gray image with background subtraction (b)Binary image with background subtraction图3 背景减除法处理结果Fig. 3 Processing results of background subtraction
(a) 帧间差分后的灰度图像 (b) 帧间差分后的二值图像(a) Gray image with frame difference (b) Binary image with frame difference图4 帧间差分法处理结果Fig. 4 The processing result of frame difference method
(a) 当前图像 (b) 算法处理结果(a) The current image (b) The processed results图5 本文算法处理结果Fig. 5 The processing results of algorithm in this paper
由图3~图5的Matlab[9]仿真实验结果可以看出,与传统的背景减除法、帧间差分法相比,Lucas-Kanade光流与最大类间图像分割结合算法得到的运动目标更完整,检测效果更好。光流法在不需要知道背景信息、更无需对背景建模的情况下就可以检测到运动目标,且可以得到完整的前景目标,而Lucas-Kanade光流法是稀疏光流,不需要对图像中的所有像素进行计算,使运算时间缩短,所以本文使用的算法在运动目标检测上得到了良好效果,对后续的图像跟踪、识别、异常处理能起到非常重要的作用。
本文提出的将Lucas-Kanade光流法与最大类间方差的图像分割法相结合的算法,从Matlab仿真的实验结果可以看出,此方法能够检测到更为完整的运动目标,检测效果较好。由于Lucas-Kanade算法是稀疏算法,从而减少了运算时间,而OTSU算法能够自适应地选择最佳阈值,使得二值化的图像更合理,因此这2种算法的结合用于运动目标检测既能得到较好的结果,又可减少运算时间。因为运动目标检测是目标跟踪、异常处理等的前提,研究可知得到更为完整的运动目标则尤显重要,运动目标检测的研究将具备可观的实用价值。
[1] 慈文彦. 运动目标检测方法综述[J]. 信息技术,2016(12):93-96,100.
[2] 李晔. 常见视频运动目标提取方法原理及特点再探析[J]. 科技经济导刊,2016(32):90.
[3] HORN B K P, SCHUNCK B G. Determining optical flow[J]. Artificial intelligence, 1981, 17(1-3): 185-203.
[4] LUCAS B D, KANADE T. An iterative image registration technique with an application to stereo vision[J]. Nutrient Cycling in Agroecosystem, 1981 , 83 (1) :13-26.
[5] 赵小川. MATLAB图像处理:能力提高与应用案例[M]. 北京:北京航空航天大学出版社,2014.
[6] CHAO Haiyang , GU Yu ,NAPOLITANO M . A survey of optical flow techniques for robotics navigation applications[J]. Journal of Intelligent & Robotic Systems,2014,73(1-4):361-372.
[7] 韩思奇,王蕾. 图像分割的阈值法综述[J]. 系统工程与电子技术,2002, 24(6):91-94,102.
[8] 倪麟. 基于Otsu理论的图像分割算法的研究[D]. 重庆:重庆大学,2013.
[9] 胡敏,李梅,汪荣贵. 改进的Otsu算法在图像分割中的应用[J]. 电子测量与仪器学报,2010,24(5):443-449.
[10]江铁成. 基于MATLAB的数字图像处理技术研究[J]. 合肥师范学院学报,2017,35(6):25-27.