蔡广伟,兰 华
(江西省宜春市广播电视台,江西宜春,336000)
QT是一个跨平台的C++图形用户界面应用程序框架,它提供给应用程序开发者建立美观的图形用户界面所需的所用功能[1]。QT完全面向对象,容易扩展,并且允许真正地组件编程,它具有以下特点[1]:
(1)优良的跨平台特性QT支持MS/Windows-95、98、NT 4.0、ME、2000、XP 、Vista 和 Win7;U-nix/X11-Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它X11平台;Macintosh-Mac OS X;Embedded-有帧缓冲(framebuffer)支持的Linux平台,Windows CE。
(2)面向对象。QT的良好封装机制使得QT的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。QT提供了一种称为Signals/slots的安全类型机制,使得各个元件之间的协同工作变得十分简单。
(3)丰富的API。QT包括多达250个以上的C++类,还提供基于模板的Collections,Serialization,File,I/O device,Directory management,Date/time类。
(4)支持2D/3D图形渲染,支持OpenGL。
(5)大量的开发文档。
因此,基于QT编程环境,本文实现了视频中运动目标检测程序。该程序采用QT作为开发工具,利用背景差分算法和对称差分算法进行运动目标检测。实验结果表明,基于背景更新的背景差分算法对于光照的变化不敏感,在实时的运动目标检测中取得了较好的效果。而对称差分法能够快速对运动物体进行定位,该方法算法简单、计算量小,检测效果好,易于实现实时处理。
本文开发的程序主要由视频采集、图像数据处理和图形界面管理三部分组成。视频采集部分实现的是视频采集功能;数据处理部分实现了基于背景差分算法和对称差分算法的运动目标检测;图形界面管理部分负责处理操作、显示图像、管理视频采集、保存及处理。程序的主界面功能框图如图1所示。
图1 程序功能简介框图
在图像采集功能中,[开始]按键实现的是启动采集的功能,当[开始]按键被按下后按键会显示[Starting];[抓取]实现的是图片的抓取功能,当用户点击按键,按键显示为“snap_on”,说明已经开启了图片抓取的功能,当用户再次点击按键时,将关闭图片抓取功能,并显示为“snap_of”。本次设计采用的是Linux下API函数V4L2来实现视频的采集,采用的摄像头支持的是YUYV格式,具体的方法如图2所示。
在运动目标检测的实现中,本文采用对称差分、背景差分实现了运动目标的检测。运动目标检测时,参数的选择好坏决定了运动检测效果的好坏,这些参数包括二值化图像的阈值T、背景更新阈值T2及背景更新系数;在软件设计提供了阈值调整按钮,使用者可以根据其使用的环境来设置阈值,使用相邻两帧差分法对做差分的连续帧的选择时机要求较高,如果运动速度较快(选取的时间间隔过大),就会造成两帧之间无覆盖区域,从而无法分割出运动物体;而如果运动速度过慢(选取的时间过小),则造成过度覆盖,导致检测不到运动物体。本文采用对称差分法是对连续3帧图像中的相邻两帧分别做差分二值运算后再进行与运算得到二值图像,检测效果得到改进。
本文开发的图形界面如图3所示。
图3 视频采集与处理主界面
实验中应用背景差分算法和对称差分算法进行运动目标检测,并增加了一些图像处理方法。应用背景差分法检测目标的结果如图4所示。
图4中的(a)和(b)是初始背景帧图像和当前帧图像;(c)是没有经过高斯平滑处理得到的查分图像结果,(d)是经过高斯平滑处理后得到的结果,比较这两幅图像可以看出在预处理阶段使用高斯平滑处理图像可以去除图像中的一些噪声;图4中的(e)和(f)可以看出经过腐蚀的处理,二值图像中的孤立噪声点能被很好地抑制,有利于下一步的处理。经过膨胀算子的处理,运动目标能被很好地填充。但是经过处理后的运动目标轮廓有所变化,但是在一定精度下是可以容忍的,同时它使得运动目标完整充实地形成一个对象。
采用对称差分法检测目标的结果如图5所示。该方法是对连续3帧图像中的相邻两帧分别做差分二值运算后再进行与运算得到二值图像,检测效果得到改进。该实验中设置采集的时间为400 ms(较大),运动检测对象为快速运动的手臂。从实验检测结果看,对称差分法能够快速对运动物体进行定位,该方法算法简单、计算量小,检测效果好,易于实现实时处理。
图4 背景差分法目标检测结果
图5 对称差分法检测目标的结果
本文在基于QT编程环境下开发一种从视频中检测目标的应用程序,该程序主要由视频采集、图像数据处理和图形界面管理三部分组成。实验结果表明,基于背景更新的背景差分算法对于光照的变化不敏感,在实时的运动目标检测中取得了较好的效果。而对称差分法能够快速对运动物体进行定位,该方法算法简单、计算量小,检测效果好,易于实现实时处理。
[1] 布兰切特(Blanchette,J)(加),萨默菲尔德(Summerfield,M)(英)著;闫锋欣,曾泉人,张志强等译C++GUI Qt4编程(第二版)[M].电子工业出版社,2008.
[2] Wang L,Hu W,Tan T.Recent developments in human motion analysis[J].Pattern Recognition,2003,36(3):585-601.
[3] McKenna S,Jabri S,Duric Z,etal.Tracking groups of people[J].Computer Vision&Image Understanding,2000,80(1):42-56.
[4] Stauffer C,Grimson W.Adaptive background mixture models for realtime tracking[C].Proc of the IEEE CS Conference on Computer Vision and Pattern Recognition,Collins:IEEE Computer Society,1999:246-252.
[5] Liptona,Fujiyoshi H,Patilr.Moving target classification and tracking from real2time video[A].Proc.of the Workshop on Application of Computer Vision[C].IEEE,October,1998.8-14.
[6] 徐晓夏,陈泉林.智能交通监控系统中的自适应背景更新算法研究硼[J].上海大学学报(自然科学版),2003,9(5):420-422.
[7] 贾云得.机器视觉[M].北京:北京科学出版社,2000.
[8] 何斌,马天予,王运坚,等.Visual C++数字图像处理[M].北京:人民邮电出版社,2001.