基于光流场分割的伪装色运动目标检测
2020-07-14
(济南大学 a.信息科学与工程学院,b.山东省网络环境智能计算技术重点实验室,c.山东省“十三五”高校信息处理与认知计算重点实验室,山东 济南 250022)
运动目标检测是计算机视觉领域内的一个重要研究课题[1-3],其中具有伪装色的运动目标检测是研究的难点之一。伪装色运动目标是一类在视觉上具有伪装特性的运动目标,其颜色、亮度、纹理等与所处的变化的环境非常类似,不易被察觉和发现,难以检测。研究伪装色运动目标检测对军事侦察、视频监控等领域具有重要意义[4-5]。
动态背景下的伪装色运动目标检测是视频监控的关键,这类运动目标的颜色或纹理与变化的背景之间的差别往往不明显。大多数研究是利用传统的背景差分法检测动态背景中的运动目标,但该方法不适用于伪装色运动目标的检测[6-7]。背景差分法的基本思想是首先建立背景模型,然后利用前景与背景之间的某种差别,例如颜色分布或纹理的不一致来检测运动目标。当目标的色彩、纹理等属性在视觉上与变化的背景特别相似时,这类运动目标的检测效果就会非常不理想。
目前关于伪装色目标检测的相关研究较少。李金屏等[8]通过对伪装色运动目标所经历运动区域的像素灰度值和色彩值变化规律进行分析(简称像素值变化规律方法),得到判定存在伪装色目标的条件是规律呈现异常变化,但是这个判定条件不适用于检测视频中背景发生较大变化时(如场景中风速很大)的伪装色运动目标。Li等[9]根据目标与背景在波段红外高光谱的差别来检测部分伪装色运动目标,但此方法所需检测仪硬件成本较高,难以普及使用。文献[10-12]中主要从稀疏光流场的角度出发来检测运动目标(简称稀疏光流场分割方法),由于稀疏光流场在提取图像特征角点过程中容易提取大量的伪角点,因此难以准确地检测出伪装色运动目标。
为了解决上述问题,本文中提出稠密光流场分割方法(简称本文方法)。该方法首先利用稠密逆搜索(DIS)光流算法[13]计算图像所有像素点的光流矢量信息,得到当前图像的光流场,然后分析光流场中光流信息的变化,如光流大小与方向,最后结合K-均值算法分割光流场,进而提取出伪装色目标。DIS光流算法基于逆向搜索与梯度下降思想实现光流移动估算,不但降低了时间复杂度,而且提升了计算精度。下面分析该方法的可行性以及具体的检测流程。
1 伪装色目标的运动规律分析及其光流特点
伪装色运动目标的外在颜色、形态、纹理等统计特征与所处环境的对应特征极其相似,这种与背景相近、极具伪装性的目标就是我们的研究重点。图1为伪装色运动目标示例,其中包括部队士兵在作战时会将自己伪装成不易被察觉的背景颜色(图1(a)),以及在现实生活中较为常见的草丛中的蚂蚱(图1(b))。
(a)作战中的士兵
(b)草丛中的蚂蚱图1 伪装色运动目标示例图
1.1 伪装色目标的运动规律分析
由图1可知,具有伪装特性的运动目标在视觉上与背景十分相近,以致人眼很难将其与背景区分;在图像上表现为目标的色彩值、纹理与背景非常类似,以致在提取背景与伪装色运动目标数据上的差别具有一定的难度,因此可以通过研究视频中伪装色运动目标的运动规律来检测伪装色运动目标。
通过研究视频中伪装色运动目标的运动规律,发现具有伪装特性的目标潜伏于动态的背景之中,常常会为达到其目的而有所异动,从而导致目标与背景的运动规律不同。在一定范围内,伪装色运动目标的运动具有连续性,运动方向较稳定且运动方式较一致,而背景的运动往往具有随机性,运动方向较不稳定且运动方式多变。
1.2 伪装色目标的光流特点
光流是一种重要的运动估计方法,可描述图像中像素间的相对运动信息[14]。伪装色运动目标与背景之间宏观上的运动差异信息可以利用光流进行描述。通过光流法计算得到视频相邻2帧之间的运动光流场后,可以发现伪装色运动目标与背景间的运动规律在光流场中的特点是不同的。
对一个完整的运动目标而言,伪装色运动目标的运动具有连续性的特点,其光流的运动规律具有相似性,在一个较短的时间间隔内的速度矢量保持一致,尤其在速度方向上保持稳定,可以定量分析。相比之下,背景的运动方向多变,不可人为控制,其光流的运动规律不易描述,在一个较短的时间间隔内速度矢量不稳定,速度方向上不能保持稳定的方向,且不能定量分析。实验表明,通过分析伪装色运动目标与背景的光流特点来检测伪装色运动目标确实是一种有效、可行的方法。
2 算法设计
利用光流法可计算出相邻2帧图像间的光流场,背景和伪装色运动目标往往会同时发生运动,所得到的光流场包含了伪装色运动目标和背景的光流,为了提取出伪装色运动目标还需要进一步对所得到的光流场进行分割。图2为稠密光流场分割算法流程图。
图2 稠密光流场分割算法流程图
2.1 稠密光流估计
光流是空间运动物体在观察成像平面上像素运动的瞬时速度,包含了物体的运动信息。光流估计是求解相邻2帧图像间的同一像素点位移矢量的过程。光流场是图像中的所有像素运动的二维瞬时速度场,光流场计算遵循亮度守恒模型,假定像素点发生位移之后像素强度或灰度值不发生变化。给定一幅图像,其中,I(x,y,t)表示像素点(x,y)在t时刻的灰度值,I(x,y,t+1)表示同一像素点在t+1时刻的灰度值,像素点偏移量为(u,v),则亮度守恒模型可表示为
I(x,y,t)=I(x+u,y+v,t+1)。
(1)
由亮度守恒模型可推出光流约束方程
Ixu+Iyv+It=0,
(2)
式中:u=dx/dt,v=dy/dt,分别为像素点沿x和y方向上的分量;Ix、Iy、It分别为灰度值I对x、y和t的偏导数。
由于稀疏光流法对特征角点的依赖性较强,提取的特征角点往往存在大量伪特征角点,因此采用Kroeger等[14]提出的一种在光流质量和计算时间中取得平衡的算法,光流计算精度高且计算时间复杂度低。该算法对图像中所有像素点进行光流计算得到稠密光流场,利用图像亮度守恒模型构建梯度约束方程,以此为基础,通过对光流约束方程添加不同程度的约束条件进行光流求解。
为了使光流求解结果可靠、有效,光流计算要求一个更为精细化的变分模型。变分模型通常是由常值假设的数据项和平滑项构成的能量泛函。DIS光流计算的能量泛函方程可表示为
(3)
式中:U为稠密光流场;EI、EG分别为原始图像数据随时间变化不满足亮度恒等关系、梯度恒等关系时的误差函数;ES表示先验项,描述光流场变化不满足先验恒等关系时的误差函数;φ(EI)、φ(EG)、φ(ES)分别为基于惩罚函数φ(a2)(a=EI、EG、ES)的亮度数据项、梯度数据项和平滑项;σ、γ、α为权重,用于调节亮度数据模型与梯度数据模型和平滑项之间的相对作用程度。
惩罚函数的表达式为
(4)
式中ε为经验数,为了防止输出值为0,本文中取值为0.001。
2.2 可视化光流场
为了判断光流算法的有效性,分析算法的应用场景通常需要对计算出的光流场进行可视化处理。光流场可视化的重点在于以直观的方式显示出视频图像间的光流信息。光流场有多种显示方案,通常以灰度显示和彩色显示为主,但是,灰度显示不能直观表示光流方向,相比之下,彩色显示是用颜色表示光流场,人眼对其分辨能力更强,且包含更丰富的信息。为此,我们通过DIS光流算法计算出光流(视频序列图像中每个像素的位移和方向),将光流场转换到色调饱和度明度(HSV)空间中显示,光流的不同数值可用不同颜色来区分,色斑颜色深浅代表物体运动速率,黑色代表物体没有发生运动。光流场分割后可视化效果如图3所示。
2.3 光流场分割算法
光流场分割是基于光流法检测目标的关键技术。通过计算得到的光流场,可知运动目标与背景间的运动规律在光流场中的体现是不同的。根据运动分布规律,不同目标像素点运动不同,同一目标像素点运动相似,因此,可将目标图像的各像素点根据其光流幅值和方向信息划分到不同的运动区域中,采用K-均值聚类算法实现光流场的分割,保证分割的准确性。
(a)作战士兵潜伏
(b)士兵可视化结果
(c)变色龙爬行
(d)变色龙可视化结果图3 光流场分割后可视化效果图
2.3.1 光流矢量的提取
在一个较短的时间内,伪装色运动目标中每个像素点的光流矢量可以很好地反映其运动的连续性,其中光流矢量的幅值反映运动的速度特性,光流矢量的方向反映运动的主方向。通过分析每个像素点的运动变化强度,可以将伪装色运动目标与背景中运动物体进行区分。
在采用K-均值聚类算法时可选取像素点的位置及其光流幅值m、光流方向θ作为特征矢量,即pi=(xi,yi,mi,θi),xi、yi为图像Ii中第i个像素点的位置坐标,mi为第i个像素点运动到第Ij+1帧中的距离,即像素点i的位移;θi为图像中同一像素点i在2帧图像间的角度,即像素点i的运动方向。设Δx、Δy分别为Ii中像素点运动到Ij+1中的x、y方向的偏移量,则mi和θi的计算公式为
(5)
θi=arctan(Δy/Δx)。
(6)
当计算得到像素点的幅值和方向后,将光流幅值m和方向θ归一化为0~255之间的整数值,并利用方向-幅值直方图阈值技术确定初始聚类中心,完成光流场分割。
用Tm(i)、Tθ(j)表示光流幅值和光流方向直方图,tm、tθ表示光流幅值为m和光流方向为θ的像素点数量,i和j分别为幅值、方向峰值的数量,因此方向-幅值直方图可形式化为
Tm(i)=tm,
(7)
Tθ(j)=tθ。
(8)
对应的光流幅值和光流方向峰值集合为Pm=(p1,p2,…,pi)和Pθ=(p1,p2,…,pj)。聚类中心的初始化步骤如下。
1)生成所有可能的聚类中心。聚类中心分别取自Pm、Pθ。
2)利用欧式距离函数计算像素点到各聚类中心的距离,根据就近原则形成新一个聚类集合。
3)再次遍历上一步形成的聚类中心,当像素点数小于阈值t的聚类中心时,去除此聚类中心(t通常为(0.006~0.008)M,M为图像像素点总数)。
4)再一次分配每个像素点距离它最近的聚类中心。
5)重复步骤2)再次更新像素的集合和聚类中心。
2.3.2 光流场分割算法
基于K-均值聚类算法的光流场分割算法步骤如下。
2)更新类。当迭代第l次时,计算所有像素点与聚类中心的距离,并按照最小距离原则将像素点归入距离最小的那一类,距离函数为
(9)
3)计算新的聚类中心。在更新完成类时,利用类内元素均值计算出新的聚类中心。
3 实验结果与分析
为了验证算法的有效性和实用性,使用随机存储器为12 GB、主频为2.4 GHz的Inteli7-5550U处理器,在VS2015+OpenCV4.0环境下实现上述算法。
3.1 实验数据
从网上选取26段具有代表性的视频序列作为数据进行实验,其中有20段视频为士兵手持枪在茂密的树林中潜伏运动,有6段视频为变色龙在树枝上爬行运动,茂密的树叶与变色龙颜色相近,如图4所示。这些视频的帧尺寸是430像素×270像素,帧速率是25 s-1,每段视频共有500帧左右。
3.2 结果分析
选用稀疏光流场分割方法和本文方法进行比较,就实验视频序列1(茂密的树叶与变色龙颜色相近,变色龙在树枝上爬行运动序列)、实验视频序列2(树林作为背景,士兵手持枪潜伏运动序列)的检测效果、检测准确率和平均检测时间进行对比分析。
(a)作战士兵潜伏(b)作战士兵步行(c)作战士兵持枪(d)变色龙爬行图4 具有代表性的部分视频数据集
图5、6分别为2种不同方法对视频序列1、2的运动目标检测结果。图5、6中的(a)、(b)为视频相邻2帧图像,(c)为稀疏光流场分割方法检测结果,(d)为本文方法检测结果。就目标完整性而言,与稀疏光流场分割方法相比,本文方法检测结果更好。
稀疏光流场分割方法利用Lucas-Kanade(LK)光流法计算特征点光流,容易受噪声影响,导致提取的角点存在大量伪角点,使得检测结果存在较大误差,因此目标内多数像素点被误检为背景,检测效果不理想。本文方法使用DIS光流算法计算所有像素点的光流矢量并对光流矢量进行聚类,光流计算精度高,检测效果好。
为了验证本文方法对伪装色运动目标检测准确率和平均检测时间,本文中对比了使用像素值变化规律方法、稀疏光流场分割方法和本文方法进行伪装色运动目标检测的结果,采用检测准确率Acc、错误率R对检测结果进行比较,即
(a)士兵潜伏运动第32帧(b)士兵潜伏运动第33帧(c)Lucas-Kanade光流法检测结果(d)稠密光流场分割方法检测结果图6 士兵手持枪潜伏运动序列检测效果
(10)
式中:Acc为正确检测伪装色运动目标的概率;R为将非伪装色运动目标检测为伪装色运动目标的概率;假设某时间段内存在伪装色运动目标,TP表示检测到伪装色运动目标,FN表示未检测到伪装色运动目标;假设某时间段内不存在伪装色运动目标,FP表示检测到伪装色运动目标,TN表示未检测到伪装色运动目标。
利用本文方法测试了20个视频,并且每个实验进行5次,实验结果均取平均值(见表1)。由表可知,使用像素值变化规律方法得到的伪装色运动目标的检测准确率最低,平均检测时间较长;使用稀疏光流场分割方法得到的伪装色运动目标的准确率较像素值变化规律方法有所提升,平均检测时间较短;使用本文方法得到的伪装色运动目标的准确率最高,且平均检测时间最短。
表1 不同方法检测伪装色运动目标的结果对比
4 结语
本文中以伪装色运动目标为研究对象,由于目标处于运动状态,且具备自己的运动速度和运动方向,并且在一个较小的时间间隔内保持稳定,相比之下,背景的运动规律不易描述,在一个较短的时间内其运动规律不明确,尤其是在速度方向上,因此围绕目标运动与背景差别的这一特征,采取DIS光流算法计算出整个视频序列的运动光流场,然后根据目标与背景运动规律的差别对光流场使用K-均值算法进行聚类,进而提取兴趣目标。实验结果表明,本文方法可以有效检测伪装色运动目标。
由于光流法携带运动目标的运动信息,能够在场景任何信息未知的情况下检测出运动对象,因此是检测伪装色运动目标的有效方法。相对而言,DIS光流算法对于天空无纹理、地面弱纹理等场景中的目标检测效果不是很理想,接下来将围绕此问题展开深入研究。