APP下载

改进局部二值模式算法与Camshift结合的目标跟踪方法

2021-10-08李杰超张潇宵

科学技术与工程 2021年26期
关键词:算子纹理颜色

李杰超, 张潇宵, 王 凯

(1. 北京首都国际机场股份有限公司运行控制中心, 北京 101399; 2. 北京首都国际机场股份有限公司信息科技部, 北京 101399; 3. 中国民用航空总局第二研究所科研中心, 成都 610041)

随着国民经济的不断增长,计算机视觉、电子信息、大数据等新型技术的不断发展,作为智能化视频监视技术基础之一的物体检测、跟踪与识别技术成果显著,目前运动目标跟踪技术已经被广泛地应用于农业、军事、民航等多个领域[1-2]。虽然智能化、自动化技术发展迅速,然而针对视频实景监视不同场景下实现目标跟踪还存在着很多待解决的问题,如光照强度变化剧烈,背景相似,目标姿态及尺度变化,易造成目标特征跟踪失效,跟踪效果不佳,其实际应用范围受限,还无法满足各个行业对跟踪系统稳定性、可靠性的要求。因此,进行稳定、可靠的目标跟踪算法研究仍然是比较艰难的问题。目前针对运动目标跟踪机理的不同,可以分为基于光流的运动目标跟踪算法[3]、基于运动估计的目标跟踪算法[4]、基于目标识别的跟踪算法[5]及基于特征搜索的目标跟踪算法[6]。

对于简单场景,基于光流的运动目标跟踪算法是不需要先验知识的,能在动态背景下较好地跟踪目标,其缺陷是对光照太敏感,计算量太大,为了减少目标对运动方向的偏导数计算,加重了噪声的影响,因此该跟踪算法对场景的要求比较苛刻;基于运动估计的目标跟踪算法是利用目标的先验概率分布以及观测信息进行跟踪。针对高速目标,对目标运动状态能进行较为准确预测,计算区域小能使得实时性好,仅仅关注目标的点特征,不能完整地描述目标,需结合其他的跟踪算法来弥补不足;对于多目标复杂场景,基于目标识别的跟踪算法是对全图进行特征分类,只要在区域内符合目标特征的都会被识别出来,这也能够对多目标进行跟踪。其缺点是针对某些特定场景,如目标发生旋转或者光照条件变化[7],跟踪性能会不稳定;样本数量与分类器的性能关系紧密,当其对机动目标进行跟踪时,样本数量的增加使得目标运动维数成指数增加,训练耗时也会大大增加,而且训练过程中大量的正例样本数量不可避免。如果在高分辨率的视频中进行目标分析会有巨大的运算量,跟踪实时性会欠佳。基于特征搜索的目标跟踪算法是通过边缘与轮廓特征、颜色特征、纹理特征及小波特征[8]等实现目标跟踪。如Meanshift算法是根据上一帧图像的收敛点作为起始搜索位置进行迭代计算,而Camshift是基于Meanshift的改进,文献[9]基于色度和饱和度的Camshift目标跟踪算法,跟踪效果较稳定。

针对视频实景监视场景下对多类目标进行跟踪(如行人、车辆及航空器等)、目标运动姿态不同(远距离小目标、转弯、近距离快动目标及慢动目标等)的问题,现提出一种改进局部二值模式(local binary pattern,LBP)算法与Camshift结合的目标跟踪方法。

通过采集不同监控视频下行人、车辆及航空器多类目标,对本文中的改进方法与文献[9]方法的跟踪效果和性能指标进行比较。其基本思想是利用LBP算子纹理和颜色对阴影不敏感的特性,采用改进的LBP算子与高斯混合模型结合进行背景建模和目标检测;同时将LBP算子的纹理和颜色融入Camshift算法中,结合Kalman滤波进行目标运动状态的预测,最终实现对监视场景中多目标的自动跟踪。

1 目标检测

1.1 改进LBP算子

1.1.1 LBP算子

LBP算子先定义一个八邻域的窗口,将中心像素点的灰度值作为阈值,把周围8个像素点的灰度值与中心点的灰度值进行比较,如果大于中心像素点的灰度值标记为1,否则标记为0。将邻域得到的值按照位置赋予不同的权值得到一个无符号八位二进制数,将二进制转换为十进制后得到的LBP值重新赋给中心点,其成为具有纹理信息的像素点。

Ojala等[3]将LBP算子进行改进,选择不同尺寸和选择周边邻域点的个数,而且将原来的方形改为圆形。此时改进的LBP算子表达式为LBPN,R,其中R为圆形半径,N为像素点个数,其计算公式为

(1)

式(1)中,pc为中心像素点p(x,y)的灰度值;pi为半径为R的周边N个像素点的灰度值;函数S(x)定义为

(2)

1.1.2 CS-LBP算子

Center symmetric LBP(CS-LBP)是一种改进的LBP算子,采用领域点与中心点的比较改为,以中心点为对称点来对领域值进行比较,对噪声具有较好的鲁棒性,其计算公式为

(3)

式(3)中:i=0,1,2,3。

1.1.3 融合颜色纹理信息的SC-LBP算子

将颜色信息加入CS-LBP特征中形成spacial color LBP(SC-LBP)算子,改进后的算子能够更好地区分前景与背景信息,对于提取前景目标非常有利。其计算方式为

SC-LBPN,R(xc,yc)=LBPN,R(xc,yc)+2Nf(Rc,Gc|γ)+

2N+1f(Gc,Bc|λ)+2N+2f(Bc,Rc|γ)

(4)

(5)

式中:(Rc,Gc,Bc)为中心点(xc,yc)处的红(R)绿(G)蓝(B)三色的颜色分量;函数f(a,b|γ)为当某一颜色分量的值大于另一颜色分量的值γ倍时,其取值为1,否则为0。实验表明γ>1对噪声的干扰具有很好的抑制作用,本实验中γ=1.1鲁棒性最强。因此SC-LBP算子不仅包含了LBP的纹理信息,同时包含了中心像素点处的颜色值信息。为了减少计算的复杂度,可使用CS-LBP算子取代LBP算子,且对颜色分量进行相关性的减少。改进的SC-LBP特征定义为

SC-LBP2N,R(xc,yc)=LBP2N,R(xc,yc)+

2Nf(Rc,Gc|γ)+2N+1f(Gc,Bc|λ)

(6)

式(6)中:N的值为4,对应总的模式数为64,提取出的特征能较好满足背景建模。

1.2 基于高斯混合模型与改进LBP算子的背景建模

混合高斯模型能较好地完成背景建模,但是其易受到场景中不断变化的光照和阴影的影响,根据1.1节中融合颜色与纹理信息的LBP算子对背景建模有利,能较好地抑制光照变化、背景抖动、阴影、噪声等因素,同时能减少计算的复杂度,对后续跟踪有很好的效果。

1.2.1 模型建立更新

根据设定的分块原则,将图像分成若干个小块,在t时刻,每一小块的背景模型用K个分别带权值{w1,w2,w3,…,wK}的融合颜色和纹理的LBP直方图表示。针对实际应用中监视场景不断变化,需要对背景模型进行实时更新,对匹配成功的模型增加权重,未匹配成功的模型取代原模型中权重最小的模型,并给予一个较小的权重。其更新方法如下。

假设模型匹配的相似度呈现高斯分布,那么每一小块的背景模型用多个高斯分布表示为

(7)

下面是匹配与参数更新过程,把K个高斯分布按照优先级从大到小排列,优先级的值由ω/σ计算得到。输入新的一帧视频序列图像后,对于每一个小块,当存在一个i,将它依次与K个高斯分布进行比较:

(8)

如果式(8)结果为1,那么第i个模型与之匹配,停止后续匹配;如果为0,就认为不匹配,继续后面的代入匹配。完成匹配的第i个模型将进行参数的更新,那么背景模型更新为

ωi,t=(1-α)ωi,t-1+αMi,t

(9)

(10)

Xi,t=(1-ρ)Xi,t-1+ρXt

(11)

式中:α为权值系数的更新率,其选取值的大小表示背景更新的快慢,取值为[0,1];ρ为参数的更新率,其表达式为

(12)

1.2.2 背景建模

式(9)~式(12)没有匹配成功的,用原有的权值最小的高斯模型与之替换,将高斯分布重新归一化处理,背景分量的选取为上述这些模型按照权值大小进行排列,排在前B个的直方图就作为背景分量,其余的直方图分量则当作背景分量或者是不可靠的背景分量。

B=min(w1+w2+…+wk>T),T∈[0,1]

(13)

式(13)中:w为权重值,并按降序排列;T作为阈值来判断选取的前B个直方图的和大小,其取值越大对前景目标的敏感度越低,越小又会产生噪声。

下面展示了在三种不同场景和不同目标类型下,采用传统高斯混合模型(Gaussian mixture model, GMM)和本文算法对目标检测效果的对比。

如图1所示,图1(a)、图1(d)、图1(g)是视频原始序列帧,由于光照影响,目标周围有阴影。图1(b)、图1(e)、图1(h)是传统GMM算法进行前景目标检测效果,由于阴影的颜色与背景有差别,会将阴影作为前景检测出来。图1(c)、图1(f)、图1(i)是将改进LBP算法和高斯混合模型相结合,可以看出,由于LBP纹理加颜色的特征对阴影不敏感,本文算法对前景目标提取效果较好。

图1 目标检测效果对比图Fig.1 The effect comparison of target detection

以上通过本文算法对场景中前景目标的检测,然后利用图像连通域对前景目标进行标记,如图2所示。

图2 运动目标标记效果图Fig.2 The mark result of moving target

2 目标跟踪

采用Camshift算法对运动目标进行跟踪。针对传统Camshift算法存在的缺点,如光照、阴影、目标速度快、目标颜色与背景相同或相似等情况时,易导致目标丢失。针对以上问题,提出基于SC-LBP颜色和纹理的Camshift算法结合Kalman滤波器的目标跟踪方法。

2.1 Camshift跟踪算法

Camshift连续自适应的均值漂移算法是对每一帧图像进行均值漂移算法运用,然后将上一帧搜索到的目标中心作为下一帧均值漂移算法搜索的中心进行不停的迭代计算,最终收敛到最终目标。Camshift算法采用的是hue saturation value(HSV)颜色空间,所以需要将red green blue(RGB)颜色空间转换为HSV的颜色空间,其转换的公式为

V=max(r,g,b)

(14)

H=

(15)

(16)

式中:V为亮度值;H为色度值;S为饱和度值;当在RGB空间中选取某一点(r,g,b)时,r、g、b代表这个点的空间坐标;max为选取这三个值中的最大值;min为选取这三个值的最小值。

以下是Camshift算法进行目标跟踪的实现步骤。

利用1.2节提及基于高斯混合模型与改进LBP算子的背景建模检测方法检测到含有运动目标的矩阵区域时,这个区域包含的n个像素用颜色直方图描述这些像素点。

假设检测的运动目标区域中,所有的像素点用{xi}(i=1,2,3,…,n)来表示,目标区域中心点为x0。将它们的联合直方图中的概率分布qu作为匹配模型,该特征的概率密度为

(17)

(18)

候选模板的建立类似于上述方法,同样是通过中心点与周边像素的特征值计算概率密度。当假设上一帧的运动目标区域中心为y时,那么在计算当前帧时就用y来初始匹配目标的候选位置,来计算候选目标{xi}(i=1,2,3,…,n′),其中n′为候选目标用n′个像素,其候选的联合概率密度为

(19)

式(19)中:C′同样可以推导出:

(20)

通过得到初始目标模型与候选目标模型,再转化为寻找候选目标模型与初始目标模型的匹配度达到最高。在理想情况下,这两个模型的概率分布是完全一样的。下面采用巴氏(Bhattachayrya)系数作为直方图相似性度量的优越性判断,其定义为

(21)

式(21)中,φ(y)的取值范围为[0,1],当其值越大,表示其匹配度越高就越可能是目标。

为使得定位目标收敛最大化,将当前帧运动目标中心位置x0进行收敛到下一帧的中心位置y0,以当前帧的中心位置进行领域搜索。对式(21)进行泰勒展开:

(22)

式(22)中:权值ωi计算公式为

(23)

式(22)中第一项为常量无需考虑,要想收敛最大,需要使第二项展开式最大即可。为使第二项泰勒展开式达到最大值,将当前帧目标位置yj移动到下一帧yj+1的迭代公式为

(24)

式(24)中:g(x)=-k′(x),k′(x)为下一帧推导出的轮廓函数,算法经过迭代计算,最终找到最优的质心。

将LBP纹理和颜色信息与上述Camshift算法进行结合,那么上述式(17)和式(19)将改为

(25)

(26)

2.2 Kalman滤波

如果在后续每一帧视频序列图像中都对目标进行全部内容搜索,会增加计算量。因此利用Kalman滤波预先估计下一帧的运动目标区域,就会减少计算量。

Kalman滤波用于目标跟踪可以分为3个阶段。

(1)滤波器初始化:初始化目标,把通过检测得到的目标信息(包括大小和位置)赋予x0。

(2)状态估计:通过前一帧的状态信息预测当前目标状态信息,然后以目标位置为中心进行区域搜索,匹配预测值。

(3)状态更新:通过状态估计得到的信息通过观测方程来对滤波器的参数和状态进行更新。

2.3 遮挡问题处理

定义一种残差值r的大小来判断是否有大尺度的遮挡,假设Kalman滤波通过上一帧的参数信息得到当前帧目标的位置信息,即运动目标的估计值x,得到估计值的坐标信息为x1和y1。通过观测的观测值为y,坐标信息为x2和y2。定义此残差值为运动目标的估计值与运动目标的观测值y之间的差为

(27)

目标被小尺度的遮挡,对Kalman滤波器的预测不会产生较大的影响。但当目标大尺度被遮挡时,此时的残差值会远大于给定的r值。通过设定一个阈值T来对残差进行判断,如果r>T,则停止对Kalman滤波器更新。然后通过前几帧获得运动目标的参数信息,来线性地对目标在当前帧可能的位置做出预测。

2.4 本文中的改进方法

通过2.1节和2.2节中介绍的基于纹理和颜色结合的Camshift算法,同时利用Kalman进行滤波处理。改进方法具体步骤流程如下。

(1)当选定感兴趣的运动目标区域后,计算该目标区域的LBP纹理和颜色的联合直方图,根据式(17)得到初始目标的概率密度模型q={qu}=1,2,3,…,m作为候选匹配模型,并根据初始化的窗框位置信息来对Kalman滤波器的各种参数进行初始化。

(2)从视频序列中读取下一帧时,通过前一帧的运动目标观测得到的信息,通过Kalman滤波器来预估当前帧的运动目标质心的位置y0。

(3)根据式(19)得到y0处的候选模型的概率模型p(y0)={pu(y0)}u=1,2,3,…,m。

(4)用式(23)计算均值漂移的权值{ωi}i=1,2,3,…,n′。

(5)用式(24)进行迭代计算得到运动目标的新位置y1。

(6)计算||y1-y0||的值d,如果d<ε,ε为常数,其取值[0,1],则代表此时的新位置y1就是目标当前帧的质心,迭代结束,返回步骤(2)继续下一帧的寻找;否则将调整目标位置y0,返回步骤(4),继续迭代。

(7)当步骤(6)中d值满足d<ε时,再进行残差r和阈值T之间的判断,即判断目标是否有较大尺度的遮挡,进而决定是否继续使用Kalman滤波来进行预测。如果残差r大于阈值T,则需要停止对Kalman滤波的更新,此时就需要利用前几帧的目标位置信息来线性预测下一帧的目标位置信息,在预测位置信息领域内需找当前帧的目标位置,求得残差r与ε进行比较,直到满足要求才继续使用Kalman滤波进行预测;如果残差r小于阈值T,则用y1对Kalman滤波器进行校正更新。

(8)继续读入下一帧视频序列信息,重复步骤(2)到步骤(7),直到视频帧结束。

3 实验仿真与分析

实验硬件平台为:Intel Xeon 4210 2.2 GHZ;16 G内存;NVIDIA RTX5 000 16 GB显卡;Windows10 64位专业版操作系统;软件平台为:VS2015和OpenCV4.1。实验中采集行人路口(视频帧640×480@25fps)、公路道口(视频帧640×480@25fps)及机场空侧区(视频帧1280×720@25fps)。利用多个实景监视场景对文献[9]方法(基于色度和饱和度的Camshift目标跟踪)与本文改进方法进行跟踪效果对比如表1所示。

表1 办公园区行人跟踪误差比较Table 1 The error comparison of pedestrian tracking in office park

首先,通过采集某办公园区路口的原始视频进行目标跟踪方法的测试,在原始视频序列初始化阶段手动点击选取从下往上变速行走的行人,进行文献[9]方法与本文改进方法的跟踪效果测试。图3(a)和图3(b)中,从左至右均截取第241帧、第267帧、第282帧和第296帧视频图像进行目标跟踪效果对比。图3(a)可以看出,行人在视频图像下方时由于目标较大,特征点明显,目标跟踪稳定,但是随着行人运动至视频图像上方时,由于目标较小,特征点少,因此出现目标丢失的现象。图3(b)由于采用了LBP纹理和颜色进行结合,运动目标在图像像素中心点不断更新和校正,同时利用Kalman滤波进行预测处理,最终实现运动行人的稳定、准确跟踪。如表1所示,通过对文献[9]方法和本文改进方法计算出的目标中心点像素误差的比较,中心点的位置是通过跟踪方法获得的矩形框中心点位置。可以看出,本文改进方法用于运动目标跟踪定位的误差精度明显优于文献[9]跟踪方法。

图3 办公园区行人跟踪效果对比图Fig.3 The comparison of pedestrian tracking in office park

图4中将办公园区原始视频序列从225~345帧进行截取,对比两种跟踪方法的精确度,更加直观统计与对比跟踪效果与实际目标跟踪轨迹的误差大小。由图4可知,本文改进方法在行人跟踪时,其计算的像素误差比文献[9]方法小,证明了本文改进方法在跟踪性能上优于文献[9]方法。

图4 办公园区行人跟踪误差精度对比图Fig.4 The comparison of pedestrian tracking accuracy in school crossing

接下来,在某公路道口采集原始视频进行两种跟踪方法的测试和对比,利用手动选定车辆进行初始化操作。如图5所示,第242帧、第263帧、第286帧及第303帧均为采用文献[9]方法和本文改进方法进行目标跟踪的测试效果图,其运动轨迹是快速直行-减速转弯-缓慢停车。图5(a)和图5(b)分别是采用文献[9]方法和本文改进方法进行车辆目标的跟踪效果。由图5跟踪结果可知,两种跟踪方法都对运动车辆进行稳定的跟踪,并不能明显得出两种跟踪方法跟踪效果的优劣。通过表2统计两种跟踪方法进行车辆跟踪时计算出的车辆目标中心点像素误差的结果,可以得出,本文改进方法在跟踪定位精度上优于文献[9]方法。

图5 公路道口车辆跟踪效果图Fig.5 The results of vehicle tracking in lane crossing

表2 公路道口车辆跟踪定位误差对比Table 2 The positioning error results of vehicle tracking in lane crossing

最后,为进一步验证本文改进方法在不同监视场景中跟踪的自适应性和稳定性,通过采集机场空侧区不同气候条件下本文改进方法跟踪航空器的效果测试。图6(a)是在机场空侧区晴朗场景中航空器在跑道上降落滑行的自动跟踪效果(视频序列自左向右是:221帧、256帧、302帧),图6(b)是在机场空侧区雾天场景中航空器在跑道上快速运动起飞的自动跟踪效果(视频序列自左向右是:210帧、242帧、267帧)。由图6可知,通过在机场空侧区不同监视场景中对航空器进行的跟踪测试,本文改进方法在晴朗场景和雾天场景中均实现对航空器目标进行稳定跟踪,可满足实际在机场空侧运行监控系统中对目标实时跟踪的需求。

图6 机场空侧区航空器跟踪效果图Fig.6 The results of aircraft tracking under in airport

4 结论

针对实际视频实景监视系统中场景光照、阴影及远距离小目标跟踪易丢失问题,提出了一种改进LBP算法与Camshift结合的目标跟踪方法。首先考虑了LBP算子纹理和颜色对阴影不敏感的特性,采用一种改进的LBP算子与高斯混合模型结合进行运动目标的检测和标记,以抑制阴影、光照的干扰;同时通过LBP算子的纹理和颜色与Camshift算法相结合,再利用Kalman滤波进行目标运动状态的预测,最终实现对监控场景中运动目标的可靠、稳定跟踪。实验中采集行人、车辆及航空器等不同类目标进行测试,本文改进方法不仅能够稳定、精确地跟踪运动目标,而且可适用于场景雾天低能见度条件下的目标跟踪。

在下一步的工作中,将围绕基于多种artificial intelligence(AI)算法结合,与其他监控系统数据融合等关键技术研究,以满足实际视频增强可视化显示系统的需要。

猜你喜欢

算子纹理颜色
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
Domestication or Foreignization:A Cultural Choice
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
QK空间上的叠加算子
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!
特殊颜色的水