基于OpenCv的运动目标追踪与检测

2021-02-07 07:53甘肃政法大学刘卫华刘勇杰
电子世界 2021年1期
关键词:直方图函数图像

甘肃政法大学 刘卫华 刘勇杰

随着信息科技的快速发展,视频监控等相关行业也逐渐成熟起来,作为一个独立的产业体系,视频资料不论种类还是数量都与日俱增。但不正当的操作手段也使得视频资料鱼龙混杂,那么,如何在海量的视频资料中提取到符合要求的数据信息,是目前亟待解决的重要问题,因此基于海量视频资料信号为基础的目标追踪与检测应运而生。本文主要基于OpenCV并利用mean shift算法来实现对视频中出现的多运动目标进行单目标追踪检测,实验表明该算法有较好的追踪效果。

科技革命以来,随着各类技术的不断更新发展,电子监控等相关领域也在越来越多的范围内使用。如何及时有效的在视频中寻找出有用信息便显得尤为重要,于是对有用的特定目标的检测与跟踪的相关研究也就应运而生,并且成为了视觉领域的一大热点。现在,一般的智能系统基本上都包括对特定有用目标的检测和跟踪,还有识别以及行为分析等功能。运动目标检测,其锁定的是我们需要注意的区域,更是后续其他处理的基础,跟踪与识别作为图像高级语义处理的环节为后面行为分析提供依据。

基于C++的视觉库OpenCv是可以在多系统进行操作的开源软件。它容纳了计算机视觉的领域众多函数,包括工业产品、医学图像、安全保卫领域、交互操作、相机校正、双目视觉以及机器人学。本文主要利用OpenCV库来实现对视频中出现的多运动目标进行单目标追踪。

运动目标检测是指在摄像头监控界限内有活动的目标时,采用图像分割,将背景图像中的目标的运动区域提取出来。视频分析的基础是移动目标的检测,因为与视频分析算法有关的图像处理都是以目标区域的像素点为基础来进行处理。目标检测的结果直接影响视觉监控系统的整体性能。科学技术突飞猛进,日新月异,运动目标的检测种类繁多,与日剧增。

运动目标的跟踪,简单说,就是在图像中对感兴趣的目标进行定位并且使用可视化的方式进行标记,一般来说,都是通过数学的方式,对目标的信息加以表示,然后整个图像中找到与建立的数学表达最为相似的待选区域在图像中具体位置的过程。移动目标的数学表达不仅局限于对移动目标进行数学建模,还包括图像边缘,图像轮廓、形状、区域等常用的目标特征表达元素。一般会通过使用多个特征来提高跟踪的可靠性,单个特征使用较少。常见的运动目标检测方法有:

1 相似性度量算法

对图像提取特征,然后将需要进行检测的图像与相似性检测算法匹配,实现目标跟踪。在对于目标的追踪中,常见的相似性度量包括欧氏,块,棋盘距离,Bart Charlie系数,Hausdorff距离等在内的五类方法。在它们当中属欧几里德距离使用最广泛和最简单。

2 搜索算法

搜索算法就是对目标进行直接计算,通过匹配计算得到值找到最佳位置不借用任何其他数据,该方法计算量过大,并且在跟踪时没这个必要,因此使用搜索算法来加快检测。常见的搜索方法是通过预测下一帧的可能位置,并在相关区域中最为合适的点。对比其他算法,卡尔曼滤波是现在比较成熟的预测算法之一。

相较于常见的传统算法,Mean shift算法近年来不断受到许多研究员以及学者青睐的主要原因是因为它的计算量不大,而且实时性较好,并且具有很高的稳定性。因此,也激发了研究人员对对Mean Shift目标跟踪算法改进的兴趣,使该算法适用范围也越来越广,尤其是在目前较火的人工智能领域。基于mean shift的目标跟踪算法的实质是一种在密集分布数据中寻找部分最佳值的算法,通过进行迭代的运算方式进行计算。在概率论和统计学中对数据统计进行预测的方法,通常是对获取的样本进行建模处理,而在该过程中的最为主要的任务,就是进行概率密度估计,估计一般分为参数、非参数两种方法。mean shift算法运行过程是基于第二者的。参数估计法通过预先了解概率密度及参数分布来进行后续工作。而非参数密度估计则任何的条件,就可以进行计算来为后续工作做准备,主要方式通过后期对样本数据的训练得到其收敛函数。在现实跟踪过程中,当目标出现遮挡等影响时,由于外层的像素值容易受遮挡或背景的影响,所以模型中心附近的像素比靠外的像素更有意义。因此,对于所有采样点,每个样本点的重要性应该是不同的,离中心点越远,其权值应该越小。故引入核函数和权重系数来提高跟踪算法的鲁棒性并增加搜索跟踪能力。

在图像处理方面,以核函数法、最近邻域估计法以及直方图法为最常用的非参密度估计方法。计算核函数是mean shift算法最重要的部分,核函数的选取直接决定着目标跟踪算法的时间复杂度以及精确程度,而选取不同核函数会使目标跟踪过程的结果存在很大差异。因此,核函数如何选取以及如何对它进行优化,不仅影响mean shift算法的性能,更是间接影响着视频信息中对感兴趣的目标的跟踪效果。

本文运用mean shift算法进行运动图像多目标中的单目标跟踪。mean shift目标跟踪算法来源之一是均值漂移法,后者的跟踪原理是:通过对正在实施跟踪的目标区域与目标即将移动到的区域进行它们之间像素值特征的分析,就会以数据模型的形式建立一个实时跟踪检测区域与待测区域的联系框架,接着利用初始帧值与当下帧值相似函数的数量特征,搭建帧与帧之间的数据模型,目标模型的向量是可以借助相似函数的数据模型关系计算得到,这个向量便就是目标正确的移动方向向量,均值漂移算法的快速收敛性导致目标模型的mean shift向量算法要想通过收敛计算得到目标的真实位置就要不断的使用迭代的方法来求取mean shift向量,达到跟踪的目的。

图1 mean shift算法追踪流程图

图2 实验结果图

首先对输入的视频目标跟踪进行初始化,在本文中同时设置了调节所选区域的按钮,可通过调节按钮对待检测目标进行适度调节,使之能够在追踪过程中拥有较好的准确度以及速度。在追踪目标时有通过检测方式获取目标区域的方式,也可以通过手工选取的方式。在本文中要实现的是出现多个目标时,对单一的特定目标进行追踪,所以使用手动选取的方式选定跟踪目标会比检测方式要实用许多,并且会提高追踪的效率。然后计算搜索窗口的直方图分布,该值是由核函数加权得到,可以用相同手段获取对应的第N帧窗口的直方图分布,其原则就是依靠两个目标模板涉及的最大限度内的相似程度,从而使得搜索图标或者搜索窗口从密度最为集中的方向移动进行判断和定位操作,从而可以知晓真实 的目标位置。图1所示为mean shift算法的追踪流程图。

图2所示是对某游戏视频中的特定运动游戏人物进行追踪的结果图。

实验结果图2中第四幅图是对实验结果图第一幅图中紫色人物使用鼠标进行圈定之后形成的灰度值加权直方图特征,用于后续追踪过程。从四幅图像中可以看到,该算法对于视频中出现的多目标进行特定单目标的追踪有较好的效果,一般来说不会受到周围环境因素的影响,使得被跟踪目标丢失的现象。

对于mean shift算法在追踪过程中也存在着部分的缺陷,首先,对于被追踪的目标,它的窗口大小从一开始就设定好了,所以当目标远离摄像头或者靠近时,目标大小会发生变化,由此会导致跟踪目标的丢失情况;第二在实验过程中我们发现,如果目标速度提升较快时,由于目标在视频帧与帧之间位置变化较大,会影响到追踪的实际效果;第三在对于直方图的统计也有部分缺点,比如,在颜色特征描述方面信息并不是全面的收集,会缺少选定区域空间的信息。为此,可以做以下的部分优化,例如加大匹配目标的特征,在算法中加入一些预算法的机制,来减少程序的计算量,加快检测、追踪的时间;另外对于目标大小发生变化,目标信息丢失导致追踪失败的问题,可以使用动态的选择框来进行解决。

猜你喜欢
直方图函数图像
改进的LapSRN遥感图像超分辨重建
符合差分隐私的流数据统计直方图发布
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
有趣的图像诗
用直方图控制画面影调
中考频数分布直方图题型展示
基于空间变换和直方图均衡的彩色图像增强方法