文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)01-0112-04
對(duì)存在抖動(dòng)的視頻進(jìn)行高精度圖像拼接、運(yùn)動(dòng)目標(biāo)檢測(cè)和跟蹤時(shí),必需對(duì)視頻進(jìn)行穩(wěn)像處理。視頻的抖動(dòng)是由于在拍攝時(shí),手的抖動(dòng)或攝像平臺(tái)的不規(guī)則運(yùn)動(dòng)都會(huì)引起視頻圖像序列產(chǎn)生模糊和抖動(dòng),嚴(yán)重影響了圖像信息的有效利用。穩(wěn)像技術(shù)的目的就是要去除視頻中的抖動(dòng),使得視頻播放更連續(xù)、穩(wěn)定。
近年來(lái),國(guó)內(nèi)外學(xué)者在該領(lǐng)域做了大量的研究與努力,并取得了一定的成果。國(guó)外對(duì)電子穩(wěn)像技術(shù)的研究起步較早,許多發(fā)達(dá)國(guó)家對(duì)電子穩(wěn)像技術(shù)在軍事方面的應(yīng)用進(jìn)行了較為深入的研究,如美國(guó)、加拿大和俄羅斯等國(guó)家。美國(guó)馬里蘭大學(xué)(University of Maryland)主要在軍用穩(wěn)像技術(shù)方面進(jìn)行研究,開(kāi)發(fā)出了多種穩(wěn)像方法[1]。中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所趙紅穎[2]、鐘平[3]等人對(duì)電子穩(wěn)像技術(shù)的基本原理和應(yīng)用范圍進(jìn)行了初步研究,對(duì)船載和機(jī)載攝像系統(tǒng)所獲取的圖像序列也進(jìn)行了穩(wěn)定的實(shí)驗(yàn)研究,并取得了一定的效果。清華大學(xué)朱志剛、楊雨?yáng)|等人通過(guò)采用基于多分辨率金字塔匹配方法的光流法來(lái)計(jì)算幀間運(yùn)動(dòng)矢量,并進(jìn)行了電子穩(wěn)像的實(shí)驗(yàn)研究[4]。西安電子科技大學(xué)機(jī)電工程學(xué)院ICIE研究所朱娟娟、郭寶龍等人針對(duì)圖像序列的抖動(dòng),研究了攝像機(jī)的抖動(dòng)和正常掃描這兩種運(yùn)動(dòng)的特點(diǎn),提出了一種帶運(yùn)動(dòng)修正的投影穩(wěn)像算法[5]。
但是以上研究都是基于“攝像機(jī)—圖像采集卡—計(jì)算機(jī)”模式進(jìn)行,存在攜帶不方便的缺點(diǎn)。張博等人研究并設(shè)計(jì)了基于FPGA的電子穩(wěn)像專(zhuān)用平臺(tái)[6]。該穩(wěn)像系統(tǒng)是一個(gè)專(zhuān)用的穩(wěn)像系統(tǒng),難于與目前大多數(shù)移動(dòng)平臺(tái)整合在一起,不便推廣。本文根據(jù)實(shí)際應(yīng)用中對(duì)實(shí)時(shí)移動(dòng)電子穩(wěn)像系統(tǒng)的需求,在以三星公司ARM芯片為核心技術(shù)的平板電腦SMDKV210上,基于通用的Android移動(dòng)操作系統(tǒng),采用無(wú)人工干預(yù)的灰度投影算法實(shí)現(xiàn)了移動(dòng)電子穩(wěn)像系統(tǒng)。
1 電子穩(wěn)像系統(tǒng)的原理與算法
1.1電子穩(wěn)像的基本原理
電子穩(wěn)像穩(wěn)定是一個(gè)圖像序列,圖像序列的不穩(wěn)定是由于幀與幀之間圖的像變化,并在圖像顯視器上顯示出來(lái)?;谶@種分析,電子穩(wěn)像所要處理的就是通過(guò)求出視頻序列中各幀之間的變化,然后以運(yùn)動(dòng)補(bǔ)償?shù)姆椒ㄈコ@種變化,達(dá)到整個(gè)視頻序列穩(wěn)定的目的。其原理如圖1所示。
圖1(a)、圖1(b)分別表示當(dāng)圖像序列沒(méi)有抖動(dòng)時(shí),當(dāng)前幀B處圖像和參考幀A處圖像相匹配。但當(dāng)攝像機(jī)固定時(shí),由于攝像機(jī)載體的運(yùn)動(dòng),導(dǎo)致參考幀中位置A處的圖像移動(dòng)到了位置C處。在顯示器上觀(guān)察時(shí),就會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,影響觀(guān)測(cè)效果。而電子穩(wěn)像就是消除或減弱這種抖動(dòng)現(xiàn)象,通過(guò)一定的運(yùn)動(dòng)估計(jì)算法,估算出A處圖像塊到C處圖像塊的位移和旋轉(zhuǎn)等參數(shù),再通過(guò)運(yùn)動(dòng)補(bǔ)償算法,達(dá)到校正抖動(dòng)的目的。
1.2 電子穩(wěn)像系統(tǒng)的基本結(jié)構(gòu)
電子穩(wěn)像系統(tǒng)基本結(jié)構(gòu)如圖2 所示。系統(tǒng)的三個(gè)模塊中,圖像預(yù)處理模塊用于濾除圖像噪聲,提高整個(gè)系統(tǒng)對(duì)外界環(huán)境變化的穩(wěn)定性;運(yùn)動(dòng)估計(jì)模塊是整個(gè)系統(tǒng)的核心,可以得到由于攝像平臺(tái)抖動(dòng)而帶來(lái)的幀間全局運(yùn)動(dòng)矢量和目標(biāo)物體的運(yùn)動(dòng)矢量;運(yùn)動(dòng)補(bǔ)償模塊是在運(yùn)動(dòng)估計(jì)的基礎(chǔ)上,利用前一幀對(duì)當(dāng)前幀進(jìn)行補(bǔ)償,采用不同的補(bǔ)償方式對(duì)最終輸出的圖像序列會(huì)產(chǎn)生不同的影響。
1.3 灰度投影算法
傳統(tǒng)的塊匹配法[7]存在計(jì)算量大的問(wèn)題,而且需設(shè)定目標(biāo)的初始位置,增加了后續(xù)穩(wěn)像的不確定因素。盡管不斷提出對(duì)塊匹配算法的改進(jìn),但仍然很難滿(mǎn)足實(shí)時(shí)性的要求?;叶韧队八惴╗8](Projection Algorithm)充分利用了圖像總體灰度分布的變化規(guī)律,無(wú)需人工干預(yù),只需要對(duì)圖像行列的投影曲線(xiàn)做一次相關(guān)運(yùn)算,就能較準(zhǔn)確地獲取當(dāng)前幀相對(duì)于參考幀的運(yùn)動(dòng)矢量,大大降低了計(jì)算量,而且保證了較高的計(jì)算精度。灰度投影算法可分解成圖像灰度映射、投影濾波和相關(guān)計(jì)算三個(gè)主要的步驟。
1.3.1 圖像灰度映射[9]
輸入圖像序列中的每一幀圖像經(jīng)過(guò)預(yù)處理后,將初始的二維圖像信息映射成兩個(gè)獨(dú)立的一維信息。計(jì)算公式為:
2 基于Android移動(dòng)電子穩(wěn)像系統(tǒng)的實(shí)現(xiàn)
2.1 硬件平臺(tái)
系統(tǒng)的硬件平臺(tái)為SMDKV210平板電腦。處理器型號(hào)ARMv7 Processor rev2(v71),單核;集成370 MB內(nèi)存,2.5 GB SD卡;屏幕大小764×480像素;Android操作系統(tǒng)版本為4.0.3。上位機(jī)為L(zhǎng)enovo公司ThinkPad E40系列;Intel(R)酷睿i3處理器,主頻2.53 GHz;內(nèi)存容量2 GB。操作系統(tǒng)UBUNTU 11.04(natty)。
2.2 Android的系統(tǒng)架構(gòu)
Android平臺(tái)[10]自底向上由以下4個(gè)層次組成:Linux內(nèi)核層、Android運(yùn)行時(shí)庫(kù)和其他庫(kù)層、應(yīng)用框架層、應(yīng)用程序?qū)印?br/>
(1)Linux內(nèi)核層:Android系統(tǒng)基于Linux2.6內(nèi)核,其核心系統(tǒng)服務(wù)(安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)路協(xié)議以及驅(qū)動(dòng)模型)都依賴(lài)于Linux內(nèi)核。
(2)Android運(yùn)行時(shí)庫(kù)和其他庫(kù)層:Android運(yùn)行時(shí)庫(kù)包含一組核心庫(kù)(提供了Java語(yǔ)言核心庫(kù)內(nèi)的大部分功能)和Dalvik虛擬機(jī)。同時(shí)Android提供了其他豐富的庫(kù)類(lèi)支持。
(3)應(yīng)用框架層:Android系統(tǒng)開(kāi)發(fā)的基礎(chǔ),很多核心應(yīng)用程序通過(guò)這一層來(lái)實(shí)現(xiàn)其核心功能。
(4)應(yīng)用程序?qū)樱篈ndroid平臺(tái)不僅僅是操作系統(tǒng),也包含了許多應(yīng)用程序,如SMS短信客戶(hù)端程序、電話(huà)撥號(hào)程序、圖片瀏覽器及Web瀏覽器等。
通過(guò)使用 Android Eclipse 插件,可在Eclipse 環(huán)境中構(gòu)建 Android 應(yīng)用程序[11]。
依次安裝Sun JDK 7,版本號(hào):1.7.0_03;Eclipse IDE,版本號(hào):3.7.2(indigo);Android SDK,版本號(hào):r17;Android開(kāi)發(fā)插件(ADT);Android NDK,版本號(hào):android-ndk-r8。
2.3 移動(dòng)電子穩(wěn)像系統(tǒng)的軟件開(kāi)發(fā)
Android應(yīng)用工程目錄下主要包含了src、jni、libs、res 4個(gè)文件夾和AndroidManifest.xml全局配置文件,project.properties工程屬性文件等。
src文件夾下存放著Java應(yīng)用程序,其中必須包含至少一個(gè)activity活動(dòng)。本文中調(diào)用攝像頭捕捉幀視頻等工作都是在這里完成,工作流程圖如圖3所示。res文件夾是應(yīng)用的資源文件夾(如圖片、xml文件等);libs文件夾包含成功編譯后的本地庫(kù);jni文件夾內(nèi)包含了應(yīng)用中用到的C/C++穩(wěn)像源代碼和NDK的編譯腳本Android.mk、Application.mk。這兩個(gè)腳本文件是由Makefile語(yǔ)言所寫(xiě),寫(xiě)明了C++程序的編譯流程,在整個(gè)應(yīng)用中起著至關(guān)重要的作用。穩(wěn)像算法原理流程圖如圖4所示。
3 實(shí)驗(yàn)結(jié)果與分析
本文通過(guò)平板電腦上的攝像機(jī)采集視頻進(jìn)行穩(wěn)像處理。經(jīng)過(guò)測(cè)試,其處理圖像的穩(wěn)像速率達(dá)到了15.68 f/s,滿(mǎn)足了實(shí)時(shí)性的要求。
為了驗(yàn)證灰度投影算法在電子穩(wěn)像中的效果,對(duì)連續(xù)的多幀圖像進(jìn)行單子穩(wěn)像仿真實(shí)驗(yàn)。圖5、圖6分別反映的是穩(wěn)像前后連續(xù)6幀圖像的行投影值曲線(xiàn)從圖中可以清楚地看到穩(wěn)像前各幀圖像的行投影值曲線(xiàn)形狀接近,但位置在橫坐標(biāo)方向上有較大的波動(dòng)差異,而穩(wěn)像后的行投影值曲線(xiàn)形狀和位置基本一致。說(shuō)明本文的穩(wěn)像處理算法能夠準(zhǔn)確計(jì)算出每幀圖像的位移矢量,并根據(jù)位移矢量準(zhǔn)確穩(wěn)定圖像。
為了進(jìn)一步驗(yàn)證本文穩(wěn)像算法的準(zhǔn)確性,針對(duì)參考幀與當(dāng)前幀的殘差幀圖像的區(qū)別進(jìn)行了分析。對(duì)參考幀與當(dāng)前幀做差值運(yùn)算,結(jié)果如圖7(a)所示,圖中標(biāo)識(shí)1為參考幀圖像,標(biāo)識(shí)2為目標(biāo)公交車(chē)的輪廓,可以看出幀圖像的大致輪廓,這是由于車(chē)身的抖動(dòng),穩(wěn)像前當(dāng)前幀與參考幀之間存在位移的偏差。重合區(qū)域?yàn)楹谏珔^(qū)域代表差值像素為零。圖7(b)為穩(wěn)像后對(duì)應(yīng)兩幀的殘差圖像,圖中標(biāo)識(shí)3為目標(biāo)公交車(chē)的輪廓??梢?jiàn),經(jīng)過(guò)穩(wěn)像處理后,對(duì)應(yīng)兩幀重合區(qū)域大。說(shuō)明穩(wěn)像效果較好。
本文在研究各種電子穩(wěn)像技術(shù)算法的基礎(chǔ)上,基于Android操作系統(tǒng)的移動(dòng)硬件平臺(tái),實(shí)現(xiàn)了移動(dòng)電子穩(wěn)像系統(tǒng)。該系統(tǒng)無(wú)需人工干預(yù),采用灰度投影、運(yùn)動(dòng)補(bǔ)償算法進(jìn)行穩(wěn)像處理。穩(wěn)像后的行列投影和殘差圖像分析表明,該系統(tǒng)在移動(dòng)平臺(tái)上能夠進(jìn)行穩(wěn)像處理,其穩(wěn)像速率達(dá)到了15.68 F/s。而且該系統(tǒng)攜帶方便,易于推廣到各類(lèi)移動(dòng)終端設(shè)備,并為推動(dòng)穩(wěn)像技術(shù)的應(yīng)用和后續(xù)的視頻拼接,運(yùn)動(dòng)目標(biāo)的識(shí)別、跟蹤等提供幫助。
參考文獻(xiàn)
[1] BALAKIRSKY S B, CHELLAPPA R. Performance charac terization of image stabilization algorithms[J]. Real-Time Imaging,1996(2):297-313.
[2] 趙紅穎,金宏,熊經(jīng)武.電子穩(wěn)像技術(shù)概述[J].光學(xué)精密工程,2001,9(4):353-359.
[3] 鐘平.機(jī)載電子穩(wěn)像技術(shù)研究[D]. 長(zhǎng)春:中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,2004.
[4] 楊雨?yáng)|, 徐光祐, 朱志剛. 2.5維數(shù)字圖像序列穩(wěn)定方法[J].計(jì)算機(jī)學(xué)報(bào),1988,21(z1):277-284.
[5] 朱娟娟,郭寶龍,馮宗哲.一種基于灰度投影算法的電子穩(wěn)像方法[J].光子學(xué)報(bào),2005,34(8):1266-1269.
[6] 張博,吳芝路,張欣宇.基于FPGA的電子穩(wěn)像平臺(tái)的研究[J].電子技術(shù)應(yīng)用,2004,30(5):56-60.
[7] 張國(guó)棟, 王明泉, 郭棟.基于灰度投影算法的實(shí)時(shí)電子穩(wěn)像研究[J].微電子學(xué)與計(jì)算機(jī),2010,27(10):53-56.
[8] 張國(guó)棟.基于電子穩(wěn)像技術(shù)的視頻穩(wěn)像研究[D].太原:中北大學(xué),2010.
[9] 孫輝.快速灰度投影算法及其在電子穩(wěn)像中的應(yīng)用[J].光學(xué)精密工程,2007,15(3):412-416.
[10] 韓超, 梁泉. Android系統(tǒng)原理及開(kāi)發(fā)要點(diǎn)詳解[M]. 北京:電子工業(yè)出版社,2009.
[11] Installing the Eclipse Piugin[EB/OL].[2012-09-10]. http://developer.android.com/sdk/instal-ling/installing-adt.html.