蔡廣偉,蘭 華
(江西省宜春市廣播電視臺,江西宜春,336000)
QT是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,它提供給應(yīng)用程序開發(fā)者建立美觀的圖形用戶界面所需的所用功能[1]。QT完全面向?qū)ο螅菀讛U(kuò)展,并且允許真正地組件編程,它具有以下特點(diǎn)[1]:
(1)優(yōu)良的跨平臺特性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)面向?qū)ο?。QT的良好封裝機(jī)制使得QT的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。QT提供了一種稱為Signals/slots的安全類型機(jī)制,使得各個元件之間的協(xié)同工作變得十分簡單。
(3)豐富的API。QT包括多達(dá)250個以上的C++類,還提供基于模板的Collections,Serialization,F(xiàn)ile,I/O device,Directory management,Date/time類。
(4)支持2D/3D圖形渲染,支持OpenGL。
(5)大量的開發(fā)文檔。
因此,基于QT編程環(huán)境,本文實(shí)現(xiàn)了視頻中運(yùn)動目標(biāo)檢測程序。該程序采用QT作為開發(fā)工具,利用背景差分算法和對稱差分算法進(jìn)行運(yùn)動目標(biāo)檢測。實(shí)驗(yàn)結(jié)果表明,基于背景更新的背景差分算法對于光照的變化不敏感,在實(shí)時的運(yùn)動目標(biāo)檢測中取得了較好的效果。而對稱差分法能夠快速對運(yùn)動物體進(jìn)行定位,該方法算法簡單、計(jì)算量小,檢測效果好,易于實(shí)現(xiàn)實(shí)時處理。
本文開發(fā)的程序主要由視頻采集、圖像數(shù)據(jù)處理和圖形界面管理三部分組成。視頻采集部分實(shí)現(xiàn)的是視頻采集功能;數(shù)據(jù)處理部分實(shí)現(xiàn)了基于背景差分算法和對稱差分算法的運(yùn)動目標(biāo)檢測;圖形界面管理部分負(fù)責(zé)處理操作、顯示圖像、管理視頻采集、保存及處理。程序的主界面功能框圖如圖1所示。
圖1 程序功能簡介框圖
在圖像采集功能中,[開始]按鍵實(shí)現(xiàn)的是啟動采集的功能,當(dāng)[開始]按鍵被按下后按鍵會顯示[Starting];[抓取]實(shí)現(xiàn)的是圖片的抓取功能,當(dāng)用戶點(diǎn)擊按鍵,按鍵顯示為“snap_on”,說明已經(jīng)開啟了圖片抓取的功能,當(dāng)用戶再次點(diǎn)擊按鍵時,將關(guān)閉圖片抓取功能,并顯示為“snap_of”。本次設(shè)計(jì)采用的是Linux下API函數(shù)V4L2來實(shí)現(xiàn)視頻的采集,采用的攝像頭支持的是YUYV格式,具體的方法如圖2所示。
在運(yùn)動目標(biāo)檢測的實(shí)現(xiàn)中,本文采用對稱差分、背景差分實(shí)現(xiàn)了運(yùn)動目標(biāo)的檢測。運(yùn)動目標(biāo)檢測時,參數(shù)的選擇好壞決定了運(yùn)動檢測效果的好壞,這些參數(shù)包括二值化圖像的閾值T、背景更新閾值T2及背景更新系數(shù);在軟件設(shè)計(jì)提供了閾值調(diào)整按鈕,使用者可以根據(jù)其使用的環(huán)境來設(shè)置閾值,使用相鄰兩幀差分法對做差分的連續(xù)幀的選擇時機(jī)要求較高,如果運(yùn)動速度較快(選取的時間間隔過大),就會造成兩幀之間無覆蓋區(qū)域,從而無法分割出運(yùn)動物體;而如果運(yùn)動速度過慢(選取的時間過小),則造成過度覆蓋,導(dǎo)致檢測不到運(yùn)動物體。本文采用對稱差分法是對連續(xù)3幀圖像中的相鄰兩幀分別做差分二值運(yùn)算后再進(jìn)行與運(yùn)算得到二值圖像,檢測效果得到改進(jìn)。
本文開發(fā)的圖形界面如圖3所示。
圖3 視頻采集與處理主界面
實(shí)驗(yàn)中應(yīng)用背景差分算法和對稱差分算法進(jìn)行運(yùn)動目標(biāo)檢測,并增加了一些圖像處理方法。應(yīng)用背景差分法檢測目標(biāo)的結(jié)果如圖4所示。
圖4中的(a)和(b)是初始背景幀圖像和當(dāng)前幀圖像;(c)是沒有經(jīng)過高斯平滑處理得到的查分圖像結(jié)果,(d)是經(jīng)過高斯平滑處理后得到的結(jié)果,比較這兩幅圖像可以看出在預(yù)處理階段使用高斯平滑處理圖像可以去除圖像中的一些噪聲;圖4中的(e)和(f)可以看出經(jīng)過腐蝕的處理,二值圖像中的孤立噪聲點(diǎn)能被很好地抑制,有利于下一步的處理。經(jīng)過膨脹算子的處理,運(yùn)動目標(biāo)能被很好地填充。但是經(jīng)過處理后的運(yùn)動目標(biāo)輪廓有所變化,但是在一定精度下是可以容忍的,同時它使得運(yùn)動目標(biāo)完整充實(shí)地形成一個對象。
采用對稱差分法檢測目標(biāo)的結(jié)果如圖5所示。該方法是對連續(xù)3幀圖像中的相鄰兩幀分別做差分二值運(yùn)算后再進(jìn)行與運(yùn)算得到二值圖像,檢測效果得到改進(jìn)。該實(shí)驗(yàn)中設(shè)置采集的時間為400 ms(較大),運(yùn)動檢測對象為快速運(yùn)動的手臂。從實(shí)驗(yàn)檢測結(jié)果看,對稱差分法能夠快速對運(yùn)動物體進(jìn)行定位,該方法算法簡單、計(jì)算量小,檢測效果好,易于實(shí)現(xiàn)實(shí)時處理。
圖4 背景差分法目標(biāo)檢測結(jié)果
圖5 對稱差分法檢測目標(biāo)的結(jié)果
本文在基于QT編程環(huán)境下開發(fā)一種從視頻中檢測目標(biāo)的應(yīng)用程序,該程序主要由視頻采集、圖像數(shù)據(jù)處理和圖形界面管理三部分組成。實(shí)驗(yàn)結(jié)果表明,基于背景更新的背景差分算法對于光照的變化不敏感,在實(shí)時的運(yùn)動目標(biāo)檢測中取得了較好的效果。而對稱差分法能夠快速對運(yùn)動物體進(jìn)行定位,該方法算法簡單、計(jì)算量小,檢測效果好,易于實(shí)現(xiàn)實(shí)時處理。
[1] 布蘭切特(Blanchette,J)(加),薩默菲爾德(Summerfield,M)(英)著;閆鋒欣,曾泉人,張志強(qiáng)等譯C++GUI Qt4編程(第二版)[M].電子工業(yè)出版社,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,F(xiàn)ujiyoshi 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] 徐曉夏,陳泉林.智能交通監(jiān)控系統(tǒng)中的自適應(yīng)背景更新算法研究硼[J].上海大學(xué)學(xué)報(自然科學(xué)版),2003,9(5):420-422.
[7] 賈云得.機(jī)器視覺[M].北京:北京科學(xué)出版社,2000.
[8] 何斌,馬天予,王運(yùn)堅(jiān),等.Visual C++數(shù)字圖像處理[M].北京:人民郵電出版社,2001.