《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android的移動電子穩(wěn)像系統(tǒng)的研究與實(shí)現(xiàn)
基于Android的移動電子穩(wěn)像系統(tǒng)的研究與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第1期
丁 磊, 肖麗萍, 鄧杰航, 林小平
廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院, 廣東 廣州 510006
摘要: 利用基于Android操作系統(tǒng)的硬件平臺實(shí)現(xiàn)了移動電子穩(wěn)像系統(tǒng)。該系統(tǒng)采用無需人工干預(yù)的灰度投影算法,通過行列投影、投影濾波和相關(guān)計(jì)算獲得運(yùn)動補(bǔ)償量,根據(jù)補(bǔ)償量對視頻進(jìn)行全局校正。對穩(wěn)像前后幀的行、列投影及殘差圖像,分析表明,該系統(tǒng)穩(wěn)像效果良好,且具有攜帶方便的特點(diǎn),易于推廣到各類移動終端設(shè)備。
TP399
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)01-0112-04
Research and realization of mobile video stabilization system based on Android
Ding Lei,Xiao Liping,Deng Jiehang, Lin Xiaoping
School of Computers, Guangdong University of Technology, Guangzhou 510006, China
Abstract: A mobile electronic video stabilization system is implemented. It runs on a hardware platform based on Android. This system applies a projection algorithm, which contains three parts: an image gray projection, projection filtering and correlation calculation, to compute the motion offset. According to the offset the video is stabilized at last. In experiments, the comparison of row and column projections between the original frame and the stabilized one, and the analysis of residual images show that the system works well and is easy-carried. It is easy to be extended to other mobile terminals.
Key words : mobile video stabilization; Android; motion estimation; projection algorithm

    對存在抖動的視頻進(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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。