王江濤,陳得寶,鄒 峰
(淮北師范大學 物理與電子信息學院,安徽 淮北 235000)
隨著數字信息和多媒體技術的迅速發展,視頻圖像處理系統正得到日益廣泛的應用,特別是基于攝像頭的實時視頻采集與處理系統在智能監控、智能人機交互、虛擬現實、計算機視覺等領域得到越來越多的關注[1-4],如何高效地對攝像頭進行視頻采集和壓縮保存對加快上述領域的發展有著重要的意義。筆者從Windows系統軟件環境的角度探討了當前通用的視頻采集與保存技術,分析了這些技術的優缺點,在此基礎上集成OpenCV,VFW和VCM三種軟件開發技術設計了一種快捷、穩健的實時視頻采集與處理方案。
OpenCV是Intel資助的開源計算機視覺庫。它由一系列C函數和少量C++函數構成,可以實現圖像處理和計算機視覺方面的很多通用算法。OpenCV擁有包括300多個C函數的跨平臺的中、高層API,不依賴于其他的外部庫,對非商業應用和商業應用都是免費的。它具有以下特點:1)開源的計算機視覺庫采用C/C++編寫;2)使用目的是開發實時應用程序;3)獨立于操作系統、硬件和圖形管理器;4)具有通用的圖像/視頻載入、保存和獲取模塊;5)具有底層和高層的應用開發包。由此可見,OpenCV擁有強大的圖像/視頻處理功能[1,3],同時開放源代碼非常方便程序員使用,在視頻處理系統中,其突出的優點是在計算機與攝像頭之間提供了一個方便的軟件接口,可以采用簡單的函數來實現對攝像頭的驅動和圖像采集,且由于其集成了DirectShow技術,視頻采集時可以達到很高的實時性能。然而,在對采集的視頻進行保存時,需要設計視頻壓縮格式的關鍵字,由于不同的操作系統中安裝的視頻壓縮驅動不同,在保存設置壓縮格式時往往不成功,這導致基于OpenCV的視頻處理系統穩定性下降。
VFW(Video For Windows)是微軟公司為開發Windows平臺下的視頻應用程序提供的軟件工具包,提供了一系列應用程序編程接口(API),可以很方便地實現視頻捕獲、視頻編輯及視頻播放等通用功能[2],還可利用回調函數開發更復雜的視頻應用程序。它的特點是播放視頻時不需要專用的硬件設備,而且應用靈活,可以滿足視頻應用程序開發的需要。Windows操作系統攜帶了VFW,安裝系統時,會自動安裝VFW的相關組件。VC++自4.0版本就支持VFW,大大簡化了視頻應用程序的開發。目前,PC機上多媒體應用程序的視頻部分,大都是利用VFW API開發的。
VFW的優點是提供了對視頻進行讀寫的接口,可以方便地將視頻流數據保存為AVI格式的視頻。其缺點是在連續抓取圖像時實時性能不足,另外,在保存視頻時,每次都需要彈出對話框來選擇當前的視頻壓縮格式,這也導致視頻處理系統的不方便。
由于視頻數據的巨大容量,在保存視頻文件時,采用一定的壓縮格式對視頻文件進行壓縮是必不可少的步驟。Windows中提供了視頻壓縮管理器(Video Compression Manager,VCM),通過該接口可以訪問Windows系統已經安裝了的壓縮器,從而獲取當前可用的壓縮格式信息。VCM提供了ICGetInfo函數來得到壓縮器或解碼器的信息,這個函數把解碼器和壓縮器的信息寫入一個ICINFO的數據結構中。ICINFO數據結構體中可以提供很多關于壓縮器或者解碼器性能的信息。由于在不同的系統中可能存在不同的壓縮器格式,引入VCM模塊就可以采用首先遍歷系統中存在的壓縮器格式,然后選取其中的一種進行壓縮的方法,避免了壓縮格式不存在而導致的壓縮不成功。
集合OpenCV,VFW和VCM的優點,筆者設計一種實時性能高、穩定性好的視頻處理系統。系統流程見圖1。

圖1 實時視頻處理系統流程
在該系統框架中計算機與攝像頭的驅動接口部分采用了OpenCV技術,該技術集成的DirectShow模塊可以方便地驅動攝像頭并實時抓拍圖像。在抓取圖像后系統進入圖像處理流程,在該流程后采用VFW技術建立視頻文件保存所抓取的圖像。為了克服VFW每次都需要彈出對話框選擇視頻壓縮格式的缺點,引入VCM接口自動選擇視頻壓縮格式,避免了OpenCV設置壓縮格式時導致的不穩定性。
下面給出實現所設計視頻處理系統關鍵步驟的部分代碼:


為了驗證上述視頻采集與保存構架的可靠性和實時性,筆者采用上述思路設計了基于視頻的動物迷宮行為分析軟件,圖2為該軟件的示意圖。該軟件用攝像頭以25 f/s(幀/秒)的速度采集圖像進行實時處理,得到圖像中動物的運動信息,同時自動選擇壓縮格式對視頻進行保存。實驗表明,軟件完全可以滿足實際應用的要求。

從提高視頻處理框架的實時性和穩健性出發,設計了一種視頻實時處理框架,該框架以OpenCV作為攝像機接口,在對視頻進行保存時采用了VFW與VCM相結合的功能結構,這為基于攝像頭的實時視頻處理任務提供了一套高效的解決方案。實驗表明該框架可以穩健地應用在實時環境中,采用該框架設計的視頻處理軟件已得到成功的應用。
:
[1]常丹華,楊冬冬,韓夏.OpenCV在智能監控方面的應用研究[J].電視技術,2009,33(9):101-103.
[2]許成亮,胡劍凌,徐盛.基于VFW的人臉監控系統實現[J].電視技術,2005,29(5):93-96.
[3]劉瑞禎,于仕琪.OpenCV教程——基礎篇[M].北京:北京航空航天大學出版社,2007.
[4]WANG Jiangtao,YANG Jingyu.Relative discriminative coefficient based multi-cue fusion for Robust object tracking[J].Frontiers of Electrical and Electronic Engineering in China,2008,3 (3):274-282.