基于Camshift 算法的运动目标跟踪系统研究
2023-03-02赵海茹李玉秀李国瑞崔建红李银兵
赵海茹,李玉秀,李国瑞,崔建红,李银兵
(玉溪师范学院 物理与电子工程学院,云南 玉溪 653100)
随着智能电网的提出及快速发展,无人值守或少人值守变电站在一定程度上决定了电网的智能化发展,而变电站环境中的运动目标跟踪系统研究是实现变电站无人值守或少人值守的必要条件.
运动目标跟踪一直是国内外研究的热点问题,近年来的研究也取得了较好的效果.完成运动目标跟踪的算法很多,经典跟踪算法如均值偏移、粒子滤波和卡尔曼滤波等,基于统计学、基于检测和基于深度学习的目标跟踪算法等,每种算法都有其适用范围和优缺点.为了解决变电站场景内的移动目标容易出现人员跟丢、身份变换、目标被遮挡无法识别等问题,笔者在对运动目标跟踪算法进行分析和比较的基础上,选择Camshift 算法来实现运动目标跟踪.
本文的实验表明,Camshift 算法能够快速准确地检测出变电站内的运动目标并对其实现有效跟踪,解决了变电站内存在的安全隐患,提高了变电站的自动识别水平并实现实时预警,降低了监控人员的工作量,为电力系统安全提供了充分的保障.
1 Camshift 算法的原理
Camshift 算法是在Meanshift 算法的基础上,针对其存在的不足进行改进而提出的,其算法的基本思想是对视频图像的多帧进行Meanshift 运算,将上一帧结果作为下一帧的初始值,不断迭代.该算法采用不变矩对目标的尺寸进行估算,实现了连续自适应地调整跟踪窗口的大小和位置,并将其应用在对连续彩色图像序列中的运动目标的快速跟踪.以下对其原理进行说明.
1.1 计算色彩投影图(反向投影)
反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找测试图像中存在的该特征.反向投影过程按照以下三个步骤进行:
(1)RGB 颜色空间对光照亮度变化较为敏感,为了减少此变化对跟踪效果的影响,首先将图像从RGB 空间转换到HSV 空间;
(2)对其中的H分量(色调)作直方图,在直方图中代表了不同H分量值出现的概率或者像素个数,就是可以查找出H分量大小为h的概率或者像素个数,即得到了颜色概率查找表;
(3)将图像中每个像素的值用其颜色出现的概率对应替换,就得到了颜色概率分布图,这个过程就叫反向投影,颜色概率分布图是一个灰度图像.
1.2 Meanshift 算法
Meanshift 算法也叫做均值偏移,本质上是质心逐渐向样本点越来越密的地方进行偏移,最后算法收敛,质心就处在样本点最密的地方.这其实是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标.Meanshift 算法可以按照以下四个步骤进行:
(1)在颜色概率分布图中选取搜索窗W;
(2)按照公式(1)-(5)分别计算零阶距、一阶距和搜索窗的质心;
(3)调整搜索窗大小,其中,宽度的调整按照公式(6)计算,长度调整为1.2 s;
(4)移动搜索窗的中心到质心,如果移动距离大于预设的固定阈值,则重复步骤(2)-(4),直到搜索窗的中心与质心间的移动距离小于预设的固定阈值,或者循环运算的次数达到某一最大值,停止计算.
1.3 Camshift 算法
将Meanshift 算法扩展到连续图像序列,就是Camshift 算法.它将视频的所有帧做Meanshift 运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧Meanshift 算法搜索窗的初始值,如此迭代下去,就可以实现对目标的跟踪.
Camshift 算法的步骤如为:
(1)初始化搜索窗;
(2)计算搜索窗的颜色概率分布(反向投影);
(3)运行Meanshift 算法,获得搜索窗新的大小和位置;
(4)在下一帧视频图像中用(3)中的值重新初始化搜索窗的大小和位置,再跳转到(2)继续进行计算.
2 基于Camshift 算法的运动目标跟踪流程
本文使用Camshift 算法对变电站环境中的运动目标(人、动物或者车辆等)进行跟踪研究,算法的流程图如图1.
图1 基于Camshift 算法的运动目标跟踪流程图
上述算法的流程说明如下.
Step1:确定初始目标及其区域,计算出目标的色度分量的直方图.将输入图像转化为HSV 颜色空间的图像,对其中的H 分量(色调)作直方图,在直方图中代表了不同H 分量值出现的概率或者像素个数,目标区域为初始的搜索窗口范围,分离出色调H 分量做该区域的色调直方图计算.因为RGB 颜色空间对光线亮度变化较为敏感,要减小该因素对跟踪效果的影响,首先将图像从RGB 空间转换到HSV 空间,当然也可以用其它颜色空间计算.这样即得到目标模板的颜色直方图.
Step2:利用直方图计算输入图像的反向投影图.根据获得的颜色直方图将原始输入图像转化成颜色概率分布图像,该过程称为“反向投影”.反向投影利用了其原始图像(或目标区域)的直方图,将该直方图作为一张查找表来找对应像素点的像素值,即将目标图像像素点的值设置为原始图像(或目标区域)直方图上对应的bin 值.该bin 值代表了(目标区域)上该像素值出现的概率.从而得到一幅图像的概率值.从而我们可以通过这幅概率图可以得知在这幅图像中,目标出现可能出现的位置.
Step3:Meanshift 迭代过程.目的在于找到目标中心在当前帧中的位置.首先在颜色概率分布图中选择搜索窗口的大小和初始位置,然后计算搜索窗口的质心位置.设像素点(x,y)位于搜索窗口内,I(x,y)是颜色直方图的反向投影图中该像素点对应的值,定义搜索窗口的零阶矩和一阶矩,接着调整搜索窗口中心到质心.零阶矩反映了搜索窗口尺寸,依据它调整窗口大小,并将搜索窗口的中心移到质心,如果移动距离大于设定的阈值,则重新计算调整后的窗口质心,进行新一轮的窗口位置和尺寸调整.直到窗口中心与质心之间的移动距离小于阈值,或者迭代次数达到某一最大值,认为收敛条件满足,将搜索窗口位置和大小作为下一帧的目标位置输入,开始对下一帧图像进行新的目标搜索.
3 实验分析
为了验证Camshift 算法的可行性和有效性,本文从网络中获取了变电站环境中的视频资料,并对其中的运动目标进行跟踪实验.从图2 和图3 可以看出,当运动目标部分被遮挡的情况下,Camshift 算法也能够实现对运动目标的检测和跟踪;从图4 和图5 可以看出,即使在背景比较模糊、运动目标边缘不是很清晰的情况下,Camshift 算法依然能够实现对运动目标的准确跟踪.
图2 目标部分被遮挡时的跟踪(近)
图3 目标部分被遮挡时的跟踪(远)
图4 复杂环境下目标的捕捉(近)
图5 复杂环境下目标的捕捉(远)
从上述实验分析情况看,本文使用的Camshift 算法具有操作简单、算法效率高的优点,并且对于变电站场景中运动目标被遮挡、背景模糊、不易识别边缘等问题,也能够取得较好的跟踪效果,具有较高的可行性和实用性.
可以预见,如果将Camshift 算法应用在变电站的环境中,能在一定程度上促进智能电网的发展,降低变电站内的安全隐患,减少监控人员的工作量,保障电力系统的安全.