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