基于OpenCV的视频运动目标跟踪应用研究

2018-05-14 16:31方匡钿俞浩平
宁波职业技术学院学报 2018年5期
关键词:目标跟踪

方匡钿 俞浩平

摘 要: 在分析运动目标跟踪过程中遇到难点问题基础上,提出利用OpenVC技术解决方案,并对运动目标跟踪进图像应用进行研究,力求提高系统运行速度和跟踪效果稳定性。

关键词: OpenCV; 目标跟踪; 视频运动

中图分类号: TP 39 文献标志码: A 文章编号: 1671-2153(2018)05-0094-03

0 引 言

计算机视觉(ComputerVision,CV)在人工智能领域已经得到广泛应用[1],如:运动跟踪、机器人视觉、人脸识别、自动驾驶等。这些技术长期被美日垄断,市场进入壁垒高。从市场规模来看,2009年国内的计算机视觉市场规模为22亿元,仅占全球份额8.3%。在中国制造2025的推动下,国内许多企业也在积极开拓产品线,将计算机视觉应用在智能制造和消费两大领域,中国计算机视觉市场增速预计将在20%左右,2020年国内市场规模预计为54.7亿元。后续发展潜力巨大。

OpenCV是一个基于开源的跨平台计算机视觉库[2],提供多种语言的接口,能实现图像处理和计算机视觉方面的很多通用算法,应用领域广泛,如人脸识别、动作识别、运动跟踪、机器人等。OpenCV提供标准的API接口,与其他函数库兼容,简化了计算机视觉程序和解决方案。系统编程可以用优化的C代码来编写,系统运行速度得到可观提升,并且能够支持由英特尔公司(Intel)资助开发的IPP高性能多媒体函数库,处理速度会得到大幅提升。

1 存在问题

视频运动目标跟踪技术是计算机视觉系统中重点研究课题之一,该技术将数字图像处理领域中通过对静态图像分析扩展到动态图像中,其研究成果对人们生活、工作有广泛应用前景。目前许多科研人员在运动目标模型选取上也进行探索,对视频运动目标跟踪各种算法进行研究,但也遇到许多难题,如:目标在运动过程中发生形状变化造成目标在图象上外观变化,这就加大了建模难度;杂乱变化环境很难将目标从图像背景中区分开来;遮挡物干扰造成跟踪算法要重新增加恢复机制;目标无规则运动增加了跟踪算法的计算量。这些问题都有可能影响研究代码运行速度和稳定性,还有可能依赖硬件的一些解决方案(比如视频监控、制造控制系统、智能设备)和耗费很高的商业化软(比如Halcon,MATLAB+Simulink)。这就大大增加了开发成本。

2 问题分析

目前诸多学者对运动目标跟踪算法的研究大都在学术层面,研究算法有:基于检测的差分算法、基于滤波算法、基于匹配算法[3],各个算法相对独立,如果运动目标碰到复杂环境,那么采用单一算法就无法解决因复杂问题对目标跟踪图像造成影响,解如问题关键是如何将3个算法有机融合,达到目标跟踪图像有较好效果,同时能减少计算复杂度,提高系统运行稳定性。

因此,目标跟踪图像的处理在算法上是否可调用,这是解决问题的关键。高斯滤波法将目标跟踪离散化多维窗口卷积成多个一维卷积。可以将图像处理复杂度从O(M×M×N×N)降到O(2×M×M×N),M和N分别是图像和滤波器的窗口大小,从而降低了计算复杂度,对图像起到平滑作用;滑动平均法能够消除周期变动和随机波动的影响,能够把控事件发展趋势;形态学滤波法对目标跟踪图像含噪信号进行处理,进一步去噪声,滤波效果衡量标准是信噪比(SNR)和滤波误差(E),提高目标跟踪图像效果。

3 运动目标跟踪应用

(1) 要解决上述问题,首先要架构opencv视频运动目标跟踪平台。打开视频文件:先判断文件路径是否为空,执行代码为:如果文件路径为空,则选择视频文件,这里调用了消息响应用MessageBOX(),OpenCV中的cvCaptureFromFile()用于从.avi文件中读取视频,并返回CvCapture结构指针,否则返回。基于OpenCV的视频运动目标跟踪平台的搭建基本架构如图1所示。

(2) 利用计算机视觉库中的cvNamedWindow()函数创建名为“视频图像、“背景图像”、“前景图像”窗口,调用cvMoveWindow()函数进行窗口移动,使三个窗口排列有序,完成窗口设置后,逐帧读取视频,如果是第一帧,需要申请内存,并初始化,存放处理过前景图像和背景图像并转换成矩阵格式。

目标跟踪图像针对复杂情况再处理,以便提高图像质量和稳定性。将背景图像(灰度)和前景图像(灰度)转化为单通道图像CvtColo(),进行高斯滤波调用cvSmooth(以平滑图像;背景差分调用cvAbsDiff()函数;二值化调用cvThreshold()函数;形态学滤波Dilate()及滑动平均法cvRunningAvg()函数,视频运动目标跟踪应用流程图如图2所示。

4 结束语

本文针对目前视频目标跟踪过程中存在的各种问题进行了分析,设计了视频运动目标跟踪工作流程,借助OpenCV开源计算机视觉库强大的函数库功能,在问题分析的基础上,进一步研究目标跟踪的3种算法,针对运动目标在复杂环境下对图像影响,调用了各种算法,编写了系统关键代码,并将各种算法有机融合,大大改善了目标跟踪图像的效果,从而提高了计算速度和目标跟踪图像稳定性。为今后在计算机视觉领域研究提供借鉴。

参与文献:

[1] ROBERT L. OpenCV计算机视觉编程攻略[M].北京:人民邮电出版社,2015:5-10.

[2] JOE M. OpenCV3.计算机视觉Python语言实现[M]. 北京:机械工业出版社,2016:25-28.

[3] RAFAEL C. Gonzalez/RichardE.Woods.数字图像处理[M]. 北京:电子工业出版社,2003:163-175.

[4] 叶韵. 深度学习与计算机视觉[M]. 北京:机械工业出版社,2017:16-18.

[5] 周志华. 机器学习[M]. 北京:清华大学出版社,2016:258-268.

Abstract: On the basis of analyzing the difficult problems in the process of moving target tracking, this paper puts forward the solution of using OpenVC technique and tracking the moving target. The application of image is studied in order to improve the speed of system operation and the stability of tracking effect.

Keywords: OpenCV; target tracking; video motion

(責任编辑:徐兴华)

猜你喜欢
目标跟踪
多视角目标检测与跟踪技术的研究与实现
基于改进连续自适应均值漂移的视频目标跟踪算法
基于重采样粒子滤波的目标跟踪算法研究
空管自动化系统中航迹滤波算法的应用与改进
智能视频技术在电力系统领域的应用
基于车牌识别的机混车道视频测速算法