文獻(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)檢測和跟蹤時(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)定。
近年來,,國內(nèi)外學(xué)者在該領(lǐng)域做了大量的研究與努力,,并取得了一定的成果。國外對(duì)電子穩(wěn)像技術(shù)的研究起步較早,,許多發(fā)達(dá)國家對(duì)電子穩(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]等人對(duì)電子穩(wěn)像技術(shù)的基本原理和應(yīng)用范圍進(jìn)行了初步研究,,對(duì)船載和機(jī)載攝像系統(tǒng)所獲取的圖像序列也進(jìn)行了穩(wěn)定的實(shí)驗(yàn)研究,,并取得了一定的效果。清華大學(xué)朱志剛,、楊雨東等人通過采用基于多分辨率金字塔匹配方法的光流法來計(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)像專用平臺(tái)[6]。該穩(wěn)像系統(tǒng)是一個(gè)專用的穩(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),采用無人工干預(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)定是由于幀與幀之間圖的像變化,并在圖像顯視器上顯示出來,?;谶@種分析,電子穩(wěn)像所要處理的就是通過求出視頻序列中各幀之間的變化,,然后以運(yùn)動(dòng)補(bǔ)償?shù)姆椒ㄈコ@種變化,,達(dá)到整個(gè)視頻序列穩(wěn)定的目的。其原理如圖1所示,。
圖1(a),、圖1(b)分別表示當(dāng)圖像序列沒有抖動(dòng)時(shí),當(dāng)前幀B處圖像和參考幀A處圖像相匹配,。但當(dāng)攝像機(jī)固定時(shí),由于攝像機(jī)載體的運(yùn)動(dòng),,導(dǎo)致參考幀中位置A處的圖像移動(dòng)到了位置C處,。在顯示器上觀察時(shí),就會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,,影響觀測效果,。而電子穩(wěn)像就是消除或減弱這種抖動(dòng)現(xiàn)象,通過一定的運(yùn)動(dòng)估計(jì)算法,,估算出A處圖像塊到C處圖像塊的位移和旋轉(zhuǎn)等參數(shù),,再通過運(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)而帶來的幀間全局運(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ì)算量大的問題,,而且需設(shè)定目標(biāo)的初始位置,,增加了后續(xù)穩(wěn)像的不確定因素。盡管不斷提出對(duì)塊匹配算法的改進(jìn),,但仍然很難滿足實(shí)時(shí)性的要求,。灰度投影算法[8](Projection Algorithm)充分利用了圖像總體灰度分布的變化規(guī)律,,無需人工干預(yù),,只需要對(duì)圖像行列的投影曲線做一次相關(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)過預(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ī)為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平臺(tái)[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ū)動(dòng)模型)都依賴于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ái)不僅僅是操作系統(tǒng),也包含了許多應(yīng)用程序,,如SMS短信客戶端程序,、電話撥號(hào)程序、圖片瀏覽器及Web瀏覽器等,。
通過使用 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開發(fā)插件(ADT),;Android NDK,,版本號(hào):android-ndk-r8。
2.3 移動(dòng)電子穩(wěn)像系統(tǒng)的軟件開發(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文件夾包含成功編譯后的本地庫;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)像中的效果,,對(duì)連續(xù)的多幀圖像進(jìn)行單子穩(wěn)像仿真實(shí)驗(yàn),。圖5、圖6分別反映的是穩(wěn)像前后連續(xù)6幀圖像的行投影值曲線從圖中可以清楚地看到穩(wěn)像前各幀圖像的行投影值曲線形狀接近,,但位置在橫坐標(biāo)方向上有較大的波動(dòng)差異,,而穩(wěn)像后的行投影值曲線形狀和位置基本一致。說明本文的穩(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)公交車的輪廓,,可以看出幀圖像的大致輪廓,這是由于車身的抖動(dòng),,穩(wěn)像前當(dāng)前幀與參考幀之間存在位移的偏差,。重合區(qū)域?yàn)楹谏珔^(qū)域代表差值像素為零。圖7(b)為穩(wěn)像后對(duì)應(yīng)兩幀的殘差圖像,圖中標(biāo)識(shí)3為目標(biāo)公交車的輪廓,??梢姡?jīng)過穩(wěn)像處理后,,對(duì)應(yīng)兩幀重合區(qū)域大,。說明穩(wěn)像效果較好。
本文在研究各種電子穩(wěn)像技術(shù)算法的基礎(chǔ)上,,基于Android操作系統(tǒng)的移動(dòng)硬件平臺(tái),,實(shí)現(xiàn)了移動(dòng)電子穩(wěn)像系統(tǒng)。該系統(tǒng)無需人工干預(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)攜帶方便,易于推廣到各類移動(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]. 長春:中國科學(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)像平臺(tái)的研究[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.