• 新闻中心

  • 公司新闻 行业动态 领导关怀
  • 解决方案

  • 政府 金融 军工 能源 教育 旅游
  • 产品中心

  • 安全监管 能源领域 企业领域 金融领域 运维服务 智能制造
  • 党团建设

  • 党团建设 员工风采 期刊文摘
  • 社会责任

  • 扶贫捐助 慈善义举 参政议政
  • 加入我们

  • 人才理念 招聘流程 人才招聘
  • 行业动态

    当前位置:首页 / 新闻中心 / 行业动态

    视频中特定目标追踪系统


    作者:转自物联网技术   |   发布时间:2019-10-25   |   点击数:110

     

    21世纪以来,全球进入信息时代,而信息安全以及人身财产一直是大多数人关注的对象,行车记录仪、航拍无人机、手机等可以记录视频的科技产品已经融人我们的生活。这些视频信息主要用于安防和保障公民的人身财产安全。若单纯依靠视频信息无法快速、直接处理问题,但在一段监控视频中,追踪信息能够更加直观地将视频信息传递给人们。

    视频运动目标的追踪程序通过Mean Shift算法实现视频中运动目标的追踪[1]Mean Shift算法是迭代算法,每次迭代特征点的选取模板都会移动到概率密度大的方向,因此在概率密度图上使用Mean Shift算法。

    1  Mean Shift算法原理

    Mean Shift算法利用概率密度的梯度寻找局部最优的模板图像。Mean Shift算法输入图像范围,然后迭代,直到达到追踪目标的要求为止。

    运动目标的追踪就是观察者想从视频信息中追踪的目标,程序会锁定运动目标区域,实现目标追踪[2]。给定追踪运动目标的过程:在图像区域中设置一个ROI,将得到的ROI传送至程序,由程序在下一帧图像中寻找移动状态下的ROI。在计算机视觉中采用如下解决方法。

    (1)描述追踪目标区域转换为颜色HSV空间(HSV为格式图片各通道取值范围,HO360SO1V:OlH通道时保存的色调中每一个取值代表一个色调,但分布不均匀;S通道时,当S小于O.l可以算为灰度图像,大于0.65时亮度较高;V通道时,当V小于0.15,则在视觉上算黑色,大于0.9时,在视觉上算白色)。

    (2)得到H通道的分布直方图,通过该相似函数的运算发现,相似函数值越大,算法找到的运动目标区域和追踪目标区域越相似,所以对应最大相似值的区域就是我们要追踪的运动目标[3]。此时需要用Mean Shift算法通过迭代得到有最大相似值区域,向两个模型相比颜色变化最大的方向不断移动搜索窗口,直到最后两次的移动距离小于阈值(在自动控制系统中,能够产生一个可以校正动作的最小输入值),即找到需要追踪的运动目标的当前帧位置,并将这一帧的位置作为下一帧的起始搜索窗口中心,然后重复该过程就可以实现目标追踪。在这个重复的过程中,每两帧的间隔都会产生一个Mean Shift向量,但在整个过程中,所有的Mean Shift向量连起来就是需要追踪的目标运动路径[4]

    Mean Shift算法流程如图1所示。

    1.1基于Mean Shift算法视频中的运动目标追踪程序

    1.1.1  系统简介

    在一段正在运动的视频中,提取到处于运动状态中的目标轮廓,达到追踪被选中运动目标(车辆、行人、物品等)的要求,直到目标消失在视频中或者有较大的干扰导致追踪失败。

    1.1.2  系统的基本技术要求

    输入视频,对运动物体进行跟踪,步骤如下:

    (1)使用运动检测算法将处在运动状态下的物体与物体所处背景拆分;

    (2)提取出运动状态下目标物体的轮廓,并从视频帧数中获取运动图像的数据信息;

    (3)对运动目标所处的图像范围进行反向投影,获取此目标所处图像的反向投影图;

    (4)根据目标所处图像的反向投影图和运动目标的轮廓进行Mean Shift算法迭代,由于信息图像向重心移动,即向反向投影图中概率密度大的地方移动,所以会移动至运动目标的真实位置[5]

    (5)在得到下一帧信息图像时,用上一帧图像信息输出的窗口迭代即可。

    1.2 Mean Shift算法跟踪原理

    Mean Shift算法从本质上来说是一种核密度估计法,直方图法可以从一组采样数据中把信息数据的值域拆分成若干相等的区间,信息数据又可以按区间拆分成若干组,每组信息数据的个数与总信息数据的个数之比就是每个信息单元的概率值。核密度估计法的原理与直方图法的原理相似,唯一的区别在于核密度估计法多了一个可以用来平滑数据信息的核函数。在应用核函数估计法时,只要在采样信息数据足够充分的前提下,此方法就可以收敛于任一密度函数,即可对任意分布的信息数据进行分析运算,得到密度估计值[6]

    运用Mean Shift算法对运动目标进行追踪。首先要对被追踪的运动目标进行初始化,这一过程可以通过鼠标进行手工选取,然后计算得出搜索窗口的直方图,该搜索窗口为核函数加权下的搜索窗口,再用同样的方法计算出每一帧对应搜索窗口的直方图分布[7],需要注意的是:我们选择相似值最大的两个相邻帧数的模板来提高追踪目标的精确度。搜索窗口沿着概率密度函数密度增加最大的方向移动,最终得到下一帧运动目标所处的真实位置。

    Mean Shift算法的追踪步骤如下:

    (1)计算运动目标所处模板的概率密度函数;

    (2)运动目标通过估计方法得到核函数宽度窗口[8]

    (3)初始化当前帧运动目标所处的真实位置,计算候选目标所在模板;

    (4)根据公式计算当前窗口内各点的权重值[9]

    (5)计算目标的新位置。

    程序的实现

    2.1  软件的安装与配置

    下载安装包VS 2015后,选择安装路径并安装,启动进入其他配置界面,勾选C++开发设置,然后点击“确定”启动。

    下载好Open CV压缩包解压到自定义的安装路径下,安装完成后为Open CV配置环境变量:PATHD\File Program\Open CV\build\x64\vc11\bin。系统在VS 2015中配置Open CV的环境。

    (1)在文件选项中选择并打开项目。

    (2)VS 2015的主界面点击视图与属性管理器。

    (3)选择位于主界面左侧的Debug|Win32文件,并右击鼠标右键选择属性进行环境变量配置,如图2所示。

    (4)为程序添加包含目录,在点击进入的属性页中,点击“VC++目录”,输入Open CV build文件夹中的include文件路径与include中两个子文件夹的路径,如图3所示。 

    (5)在页面中的库目录中添加Open CVbuild文件下x86中包含的vc11内的lib文件路径,如图4所示。

    (6)进入链接库,点击“输入”,在输人中给附加依赖项添加环境变量。

    2.2  程序的实现

    从图5中可以看出程序的运行流程,通过手动方式截取需要追踪的目标区域,利用图像处理技术方便Mean Shift方法的计算,快速得到模板,之后重复计算方法,更新下一帧的模板位置。模板的更新随着视频帧数的走动而变化,最终达到目标追踪的效果[10]

    具体代码如下:

    (1)生成目标直方图

    double temp_max=0.0

    for(i=0i<4096i++)    ∕∕求直方图最大值,归一化

    {

    if( temp_max<hist2[i])

    {

    temp_max=hist2[i]

    }

    }

    (2)显示跟踪结果

    crRectangle(current,cvPoint(drawing_box.x,drawing_box.y),cvPoint(drawing_box.x+drawing_box.width,drawing_box.y+drawing_box.height),CV_RGB(255,0,0),2);

    cvShowImage “Meanshift”, current)

    cvReleaseImage (&pic_hist)

    }

    (3)目标初始化

    RGB颜色空间刨分采用16×16×16的直方图,通过sizeof(double)计算一个double类型数据占用的内存字节数。

    Malloc()动态随机分配内存空间,如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL

    指针hist1指向一个double类型的动态存储单元,单元大小为16×16×16

    hist1= (double*) malloc(sizeof (double)*16*16*16)

    使用运算符new动态分配一个double型存储区,将首地址赋给该指针变量。

    m_wei=(double*)malloc (sizeof (clouble) *drawing_box.height*drawing_box.

    width);

    系统使用说明及测试结果

    3.1  系统使用说明

    (1)将视频暂停。

    (2)采用手动选取的方式使用鼠标选定追踪目标区域。

    (3)运行视频。

    (4)观察目标区域的追踪结果。

    3.2  统测试结果

    系统针对跟踪人和跟踪车辆进行测试,测试结果如图6所示。

    结语

    系统使用Mean Shift算法满足追踪需求。算法的本质是迭代,因为追踪的模板在视频中一帧一帧走,所以需要重复计算,而为了更好地追踪,则对图片进行反向投影图和直方图处理,更利于算法计算,利用VS.NETOPEN CV搭建平台运行程序,在对特定人和车的跟踪测试中实现目标具有较高的准确度,可研究推广。

    参考文献

    [1]林杰.基于视频监控的实验室实时预警系统设计[J].自动化与仪器仪表,2019(3)70-74.

    [2]王公儒.视频监控系统工程实用技术[M].北京:中国铁道出版社,2018.

    [3]苏康友,陈家栋,王佳颖,等.基于S5P6818无线视频监控系统设计[J].物联网技术,20199 (3)25-26.

    [4]张若杨,贾克斌,刘鹏宇.视频监控中私自揽客违法行为检测[J].计算机应用与软件,2019 (3)168-173.

    [5]孙娴.基于视频监控的异常行为检测研究[D].南京:南京邮电大学,2018.

    [6]王爱丽,董宝田,孙远运,等.基于联合多特征直方图的Mean Shift行人跟踪方法研究[J].铁道学报,2016 (12)76-85.

    [7]朱浩楠,许明敏,沈瑛.基于Mean Shift的多视频车辆跟踪研究[J].计算机科学,201845 (6A)220-226.

    [8]CLÉMENT B, YANN B, BRUNO C, et al.Modelling camera viewing angle deviation to improve nearshore video monitoring Coastal Engineering[Z].201999-106.

    [9]余毅.一种基于物联网的改进型智能视频监控设备的设计[J].联网技术,20199 (2)60-61.

    [10]李颖,郑明杰.视频监控图像高速运动物体稳定特征识别仿真[J].计算机仿真,2018 (12)342-345.