李 旭,燕 斌,劉耀波,王 博,石 巖,王昊星(中煤科工集團(tuán)西安研究院有限公司,陜西西安,710077)
?
一種基于映射變換的全景圖快速展開算法
李 旭,燕 斌,劉耀波,王 博,石 巖,王昊星
(中煤科工集團(tuán)西安研究院有限公司,陜西西安,710077)
摘要:為提升全景圖展開速度,降低展開時CPU負(fù)載,解決展開時鏡頭旋轉(zhuǎn)導(dǎo)致的圖像錯位問題,提出一種基于映射變換的全景圖快速展開算法。首先對全景圖進(jìn)行角度預(yù)處理,然后將全景圖劃分成8個對稱的扇形區(qū)并計算其中一個區(qū)域的展開坐標(biāo),最后通過八區(qū)域映射關(guān)系直接得到其他區(qū)域的展開坐標(biāo)。實驗表明,相比于傳統(tǒng)的圖像展開算法,該算法能減少約60%的計算時間,對多幅圖像連續(xù)展開時CPU占用率降低約5%,更加適用于高清成像設(shè)備的連續(xù)圖像展開需求。
關(guān)鍵詞:全景圖;圖像展開;映射變換;沿軸向旋轉(zhuǎn);實時性
為了在一幅圖像中獲取更多的像素信息,工程上常用的方法有廣角攝像頭、魚眼攝像頭和基于反射鏡的全景攝像頭,其中基于反射鏡的全景成像技術(shù)由于其低廉的成本和優(yōu)質(zhì)的成像效果被廣泛認(rèn)可。
但是,由于反射鏡是將四周的光路投影到平面上形成一幅環(huán)狀圖,存在著不利于人眼直接觀測、不利于后期拼接處理等問題,在實際應(yīng)用中就需要將環(huán)狀圖展開成便于人眼觀測的帶狀圖。C. A. Glasbey、Heung-Yeung、趙啟文 等人提出了一系列的全景圖展開算法,但這些算法時間復(fù)雜度高,硬件資源消耗大,不適用于高分辨率成像設(shè)備的圖像實時展開需求。祝小蜜、張曉頔提出一種象限復(fù)用的圖像展開算法,根據(jù)四個象限的對稱關(guān)系降低展開時的重復(fù)計算開銷,但此方法沒有考慮到鏡頭沿軸向轉(zhuǎn)動時造成的展開圖錯位問題,在工程中無法應(yīng)用。本文提出一種基于映射變換的全景圖快速展開算法,角度預(yù)處理解決圖像旋轉(zhuǎn)時錯位問題,通過映射變換實現(xiàn)八區(qū)域像素復(fù)用,減少CPU的計算量,達(dá)到降低算法時間復(fù)雜度,減少硬件消耗的目的。
對全景圖像進(jìn)行展開處理時,要根據(jù)全景圖的坐標(biāo)反推帶狀平面展開圖的二維直角坐標(biāo),并將全景圖中該點的像素值賦給相應(yīng)的帶狀展開圖上的點,最終得到完整的全景圖像的帶狀平面展開圖。
2.1 傳統(tǒng)的全景圖展開算法
C. A. Glasbey、Heung-Yeung等人提出一種全景圖展開算法,首先建立平面直角坐標(biāo)系,并繪制一個空白的帶狀圖,其次計算全景圖上所有像素點在帶狀圖上的投影坐標(biāo),最后將全景圖中的像素按照投影坐標(biāo)信息拷貝至空白帶狀圖中。全景圖和帶狀展開圖的對應(yīng)關(guān)系如圖1,圖2所示。
圖1 全景圖
圖2 坐標(biāo)變換后的帶狀展開圖
設(shè)全景圖外圓半徑為R,內(nèi)圓半徑為r ,則帶狀展開圖的長為2π R,如果以為展開步長間隔,則帶狀展開圖上的相鄰橫坐標(biāo)點間的變化反應(yīng)到原始圖像上就是角度為的變化,因此全景圖像上對應(yīng)點的直角坐標(biāo)表示為:
其中θ0為全景圖展開起始角度與坐標(biāo)軸y 軸正方向的夾角,為全景圖的圓心坐標(biāo)。
圖像展開步驟如下:
3)在ρ不變的情況下增大θ的取值,帶入公式(1)中,將得到的像素點依次填入新坐標(biāo)系定義域;
4)增大ρ的取值,然后重復(fù)步驟3),直到ρ取遍整個定義域,此時就將一副全景圖展開為帶狀展開圖。的對應(yīng)行中,直到θ取遍整個
在上述展開過程中,步驟3)和步驟4)為核心展開過程,會對整個全景圖進(jìn)行遍歷,進(jìn)行像素拷貝操作,不僅運算速度慢,而且占用大量系統(tǒng)資源。
2.2 象限復(fù)用的圖像展開算法
祝小蜜、張曉頔提出一種象限復(fù)用的圖像展開算法。該方法的中心思想是利用對稱變換原理對已有的1/4的計算結(jié)果進(jìn)行復(fù)用,挖掘這些區(qū)域之間的對稱關(guān)系,從而達(dá)到全景圖快速展開的目的。展開示意圖如圖3所示。
圖3 象限復(fù)用的圖像展開算法展開示意
展開步驟如下:
第1)、2)步與2. 1所述展開算法相同;
3)在ρ不變的情況下增大θ的取值,帶入式(1)中,將得到的像素點依次填入新坐標(biāo)系O( x, y )的對應(yīng)行中,其中θ∈[0,90 ); 4)增大ρ的取值,然后重復(fù)步驟3),直到ρ取遍整個定義域;5)建立映射關(guān)系,復(fù)用第一象限已經(jīng)計算出來的點坐標(biāo),使之覆蓋整個全景圖范圍。映射關(guān)系如式(2)所示。
上述展開過程中,第二三四象限的點坐標(biāo)不需要計算,只需通過式(2)進(jìn)行簡單的坐標(biāo)變換就可得到,將展開一幅圖像的計算量降低為原來的四分之一。但上述算法存在一個問題,若全景圖像的起始展開位置不是0°或發(fā)生旋轉(zhuǎn),則象限復(fù)用后展開圖會發(fā)生錯位。
為進(jìn)一步提高圖像展開速度,并解決全景圖從任意位置展開的問題,本文提出一種基于映射變換的全景圖快速展開算法。該算法首先對全景圖進(jìn)行初始化,記錄全景圖的初始展開角度并進(jìn)行歸零化,之后使用八區(qū)域映射復(fù)用變換計算展開圖的點坐標(biāo),最后根據(jù)初始展開角度將展開圖像素循環(huán)偏移,最終實現(xiàn)從任意角度展開全景圖的功能。該算法的示意圖如圖4所示。
圖4 基于映射變換的全景圖展開算法示意圖
首先記錄全景圖的初始展開角度?,并計算展開圖的循環(huán)偏移量。將全景圖置于平面直角坐標(biāo)系中,環(huán)心位于坐標(biāo)原點,則全景圖被x 軸、y 軸、y= x 、y=? x四條線分割成8個扇形區(qū)域。通過分析成像特征可知,若θ∈[0,45)區(qū)域的點p1( x , y )已知,則圖像中其他區(qū)域的點均可通過映射變換計算。其變換關(guān)系如式(3)所示:
算法的流程圖如圖5:
圖5 基于映射變換的全景圖快速展開算法流程圖
算法展開過程如下:
5)取ρ=r, θ= 0,根據(jù)式(1)計算出該像素點在坐標(biāo)系O( x, y )的坐標(biāo),并將該點作為新直角坐標(biāo)系O′( x, y )的原點
6)在ρ不變的情況下增大θ的取值,帶入公式(1)中,將得到的像素點依次填入新坐標(biāo)系O′( x, y )的對應(yīng)行中,其中θ∈[0,45 );
7)增大ρ的取值,然后重復(fù)步驟6,直到ρ取遍整個定義域。
8)建立映射關(guān)系,復(fù)用θ∈[0,45 )部分計算出來的點坐標(biāo),使之覆蓋整個全景圖范圍。映射關(guān)系如式(3)所示。
9)根據(jù)步驟4計算出來的循環(huán)偏移量將展開圖進(jìn)行循環(huán)偏移變換。此時就將一副全景圖從任意角度展開為帶狀展開圖。
展開的偽代碼描述如下:
4.1 復(fù)雜度分析
完整的圖像展開算法包括原始圖像采集、展開圖像素坐標(biāo)計算和展開圖像素平移三個階段。其中原始圖采集和展開圖像素平移兩個階段無論傳統(tǒng)算法還是改進(jìn)算法所占用的CPU周期都是相同的,區(qū)別就在展開圖像素坐標(biāo)計算這一階段。假設(shè)原始圖片像素個數(shù)為n,那么像素平移這一步驟的時間復(fù)雜度為O( n ),因此,減少需要計算的像素個數(shù)會使整個算法性能有較大的提升。
傳統(tǒng)展開算法對全景圖中每個有效像素點進(jìn)行坐標(biāo)計算,并根據(jù)新坐標(biāo)重新排列像素,而本文提出的基于映射變換的全景圖快速展開算法充分挖掘像素間的位置變換關(guān)系,通過八區(qū)域映射變換,將坐標(biāo)計算工作大大簡化,在降低CPU工作量的同時有效減少計算時間,提高圖像展開效率。
4.2 算法性能仿真試驗
為了測試的準(zhǔn)度,本算法在仿真時設(shè)置了最高的程序的線程優(yōu)先級,并在低負(fù)載的情況下完成測試;采用統(tǒng)一的硬件環(huán)境:Intel(R) Core(TM) i5-3470 CPU @ 3.2GHz,4G 內(nèi)存。軟件環(huán)境采用Java JDK7.0,IDE使用NETBeans7.4。
為了測試新算法的加速比與穩(wěn)定性,在相同的上述環(huán)境中,對5組常見分辨率的全方圖進(jìn)行展開測試分析和比較。同樣取100組數(shù)據(jù)取平均值,傳統(tǒng)算法與本文提出的基于映射變換的展開算法比較如表 1 所示,象限復(fù)用算法與映射變換算法的比較如表2所示。
從上表中看出,本文提出的基于映射變換的全景圖展開算法在時間復(fù)雜度和CPU負(fù)載上有明顯的降低,且分辨率越高的全方位圖像展開時并行效率越明顯。
表1 傳統(tǒng)算法與映射變換算法在時間性能和CPU負(fù)載的比較
表2 象限復(fù)用算法與映射變換算法在時間性能和CPU負(fù)載的比較發(fā)
為了測試新算法的實時性,在上述硬件配置的基礎(chǔ)上掛載了大恒DH-CG410圖像采集卡,設(shè)置采集分辨率為800*600,采樣頻率為25幀,采集時間為5分鐘,單幀圖像展開時間穩(wěn)定在22ms~27ms之間,CPU負(fù)載穩(wěn)定在22.71%~24.18%之間,且展開圖視頻未出現(xiàn)卡頓現(xiàn)象。
為了滿足高清全景圖采集與實時展開的需求,本文提出一種基于映射變換的全景圖快速展開算法。通過深入挖掘全景圖各個像素點之間的位置關(guān)系,將現(xiàn)有算法中逐點像素變換過程改進(jìn)為“一份計算,七份復(fù)用”的像素映射過程,在保證展開圖質(zhì)量的同時大幅減少全景圖的展開耗時,降低CPU的計算負(fù)載,并通過角度預(yù)處理方法解決了攝像頭旋轉(zhuǎn)時圖像錯位問題。理論分析和仿真實驗表明,基于映射變換的全景圖快速展開算法更加適用于高分辨率全景圖的實時展開工作。
參考文獻(xiàn)
[1] Argyros A A,Bekris C,Orphanoudakis S C, et al. Robot hom-ing by exploiting panoramic vision[J]. Journal of
AutonomousRobots, 2005,19(1):7-25.
[2] Shum H T, He L W. Rendering with concentric mosaics[C]. In: Proc. of ACM SIGGRAPH, 1999: 299-306.
[3]Ma Jian-guang.Motion robot positioning and path planningbased on omni-directional vision[D]. Beijing Institute on Tech-nology, 2003.
[4] Gandhi T, Trivedi M M. Parametric ego-motion estimation forvehicle surround analysis using an omni-directional camera[J].Machine Vision and Applications,2005,16(2):82-95.
[5] Du Wei, Li Hua. A Novel Panoramic Representation for Dy-namic Scene[J]. Chinese Journal of Computers, 2002,25(9):1-8.
[6] Sun C, Peleg S. Fast panoramic stereo matching using cylindri-cal maximum surfaces[J]. IEEE Transactions on Systems, Part B, 2004,34(2):760-765.
[7] C. A. Glasbey.A Review of Image Warping Methods. Journal of Applied Mechanics . 1998
[8] Heung-Yeung Shum,Richard Szeliski. Systems and Experiment Paper: Construction of Panoramic Image Mosaics with Global and Local Alignment[J]. International Journal of Computer Vision . 2000 (2)
[9] 趙啟文. 基于圖像的全景圖實現(xiàn)技術(shù)的研究[J]. 遼寧交通科技. 2005(05)
[10] 祝小蜜 張曉頔. 一種全景圖像展開的新方法[J]. 科技資訊. 2014(02)
[11] 張昌勝. 基于序列圖像的全景圖研究[D]. 重慶:重慶大學(xué),2005
[12] 陳曈,楊東勇,石洗凡. 全方位圖像展開的并行優(yōu)化[J]. 計算機(jī)工程與設(shè)計. 2010,31(22), 4862-4865
A algorithm of panoramic picture fast expansion based on mapping transformation
Li Xu,Yan Bin,Liu Yaobo,Wang Bo,Shi Yan,Wang Haoxing
(CCTEG Xi’an Institut,SHAAN XI , XI’AN,710077)
Abstract:To improve the speed of unwrapping panoramic picture,reduce current of CPU during the unwrapping,and fixed image pixels offset staggered which caused by lens rotation,this paper presents a algorithm of panoramic picture fast expansion based on mapping transformation.Start with the angle pretreatment of panoramic picture,then divided the whole panoramic picture into eight symmetric sector areas and calculate the coordinates of one of the eight areas after unwrapping,finally the coordinates of other areas will be find through the mapping relationship of eight areas. The experiment results shows that this new algorithm can reduce the 60% calculation time and the CPU usage will be reduced 5% when multiple images continue unwrapping compare with the traditional image unwrapping algorithm,which more satisfied the requirement of continue image unwrapping in high definition imaging device.
Keywords:panoramic picture;image unwrapping;mapping transformation;longitudinal axis rotation;real-time.
中圖法分類號:TP39
文獻(xiàn)標(biāo)識碼:A