師佳佳 薛賽飛 李小龍 張旭 韓芳
摘要:魚眼鏡頭作為一種超廣角鏡頭,具有魚眼鏡頭焦距小,視角開闊等特點,使得魚眼鏡頭在獲得大信息量圖像的同時,也帶來嚴(yán)重的畸變,需要經(jīng)過校正才能達(dá)到更好的視覺效果,因此研究魚眼圖像校正問題具有重要的現(xiàn)實意義。本文主要介紹了魚眼圖像的不同校正方法,并重點研究了基于等距投影模型的魚眼圖像校正算法,最后通過對比實驗,驗證了等距投影模型的校正算法在魚眼校正中的優(yōu)勢。
關(guān)鍵詞:魚眼圖像;等距投影;校正算法
中圖分類號:TP18 ? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2022)02-0076-03
魚眼相機由于具有超廣角鏡頭,視覺范圍廣闊,信息量大,對于近距離拍攝大范圍景物非常便捷,易于實現(xiàn)大范圍的180°全向無死角監(jiān)控,在虛擬現(xiàn)實、智能交通、安防監(jiān)控、智能機器人視覺導(dǎo)航等眾多領(lǐng)域得到廣泛的應(yīng)用。但是,由于魚眼鏡頭是采用多鏡組結(jié)構(gòu)設(shè)計,這些鏡組在獲得超大視場成像的同時,也帶來了嚴(yán)重的徑向畸變。為了達(dá)到更好的視覺效果,同時適應(yīng)特定的應(yīng)用場合,通常需要對魚眼圖像進行校正,校正方法通常包括兩個步驟[1,2]:坐標(biāo)變換和魚眼圖像插值,前者是建立失真圖像與校正圖像之間的坐標(biāo)變換關(guān)系,后者是對坐標(biāo)變換后產(chǎn)生的空像素進行插值填充。
基于魚眼相機的圖像校正算法有不同的分類方法,按照校正算法是否涉及點的空間信息,分為2D校正和3D校正算法[3,4,5],其中,2D校正算法不涉及點的空間信息,直接確定魚眼圖像與校正圖像之間的對應(yīng)點的坐標(biāo)變換關(guān)系,而3D校正算法是從3D空間的角度來考慮魚眼圖像的校正。按照是否借助外部設(shè)備進行標(biāo)定,分為基于投影變換的校正方法和基于標(biāo)定的校正方法[6],基于投影變換的校正算法是基于已有投影模型,采用多項式擬合優(yōu)化目標(biāo)函數(shù)的方法,估計模型參數(shù),導(dǎo)出校正圖像;基于標(biāo)定的校正算法,主要借助于標(biāo)定設(shè)備如標(biāo)定板對魚眼圖像內(nèi)外參數(shù)進行標(biāo)定等。對于圖像校正算法,目前已有很多相關(guān)的研究。鄭亮等[7]基于已有的九點非迭代優(yōu)化算法,提出一種自標(biāo)定算法,利用核密度估計方法選擇最優(yōu)參數(shù)代入畸變模型,實現(xiàn)魚眼自標(biāo)定和自動校正。何向東等[8]提出一種基于拼接算法的魚眼圖像畸變校正方法,楊晶晶等[9]根據(jù)投影的不變性原理,推導(dǎo)出畸變直線的斜率,提出一種基于幾何性質(zhì)的魚眼鏡頭成像的校正算法。本文研究基于投影變換模型的3D校正分析方法,并使用不同的校正算法對魚眼鏡頭圖像進行校正,對校正結(jié)果進行對比分析。
1 基于投影變換的魚眼圖像的3D校正方法
1.1 魚眼鏡頭的設(shè)計模型
根據(jù)投影函數(shù)的不同,魚眼相機的設(shè)計模型一般分為5種[6]:透視投影等積投影、等距投影、體視投影和正交投影。
魚眼鏡頭標(biāo)定中使用最多的是等距投影模型,其投影函數(shù)如公式(1)所示:
[r=fθ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
其中,r是像高(魚眼圖像上像點與鏡頭主軸之間的距離), f是鏡頭的焦距,[θ]是入射角(景物入射光線與主軸的夾角)。
由于實際的魚眼鏡頭并不會精確的符合定義的投影模型,在實際標(biāo)定中,一般會使用取 r關(guān)于θ泰勒展開式的前5項來近似魚眼鏡頭的實際投影函數(shù),如公式(2)所示:
[rθ=ikiθ2i+1≈i=04kiθ2i+1=k0θ+k1θ3+k2θ5+k3θ7+k4θ9] (2)
1.2 魚眼鏡頭的校正算法
魚眼鏡頭結(jié)構(gòu)復(fù)雜,在研究其成像過程時,通常將其簡化為單位球面。如圖1所示:
假定OcXcYcZc為相機坐標(biāo)系,OXY為成像面,其中OOc=f。
A為相機坐標(biāo)系中的一點,入射角為θ,若按針孔模型投影其像點為A0(a,b),不存在畸變。
令OA’=rd, OA0=r,根據(jù)圖中幾何關(guān)系可得式(3)。
[θ=atan (r/f)] ? ? ? ? ? ? ? ? ? ? ? (3)
由于魚眼鏡頭的畸變,實際的成像點將為[A']
由等距投影模型公式(1)得:
[rd=fθ] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
設(shè)校正后的圖像的寬度和高度分別為w和h,P[(x,y)]是其中的任一點,其對應(yīng)的魚眼圖像中的點為[P'x',y'],其中中心點分別為O, [O']。假設(shè)校正后的圖像的光學(xué)中心與圖像的幾何中心O重合。
[θ=arctanrdf] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(5)
下面分析P對應(yīng)像點的位置:
由于圖像的坐標(biāo)系統(tǒng)與實際讀取像素時的坐標(biāo)系統(tǒng)具有不同的原點,因此,首先需要平移坐標(biāo),并得到P與原點的距離如下:
[OP=x?w22+y??22] ? ? ? ? ? ? (6)
根據(jù)式(5),得到P點的入射角為:
[θ=arctanOPf=arctanx?w22+y??22f] ? ? (7)
由(4)可得:
[OP'=farctanx?w22+y??22f] ? ? ? ?(8)
根據(jù)極坐標(biāo)變換公式,可得[P']點對應(yīng)的坐標(biāo)值,由于相機坐標(biāo)系和圖像坐標(biāo)系具有不同的原點,這里也要進行坐標(biāo)的平移。式(8)中的f可表示為:f=2r/π
當(dāng)圖像是單位球時,變換后的圖像的尺寸要大于原始的魚眼圖像。在這里我們采用反向計算的方法,從校正好的目標(biāo)圖像出發(fā),對于目標(biāo)圖像每一點[P(x,y)],反向計算出魚眼圖像上對應(yīng)點的[P']的坐標(biāo),取出該坐標(biāo)對應(yīng)的像素值作為P點的像素值即可。
綜上,算法的流程如下所示:
設(shè)校正后的圖像的寬度和高度分別為w和h,取R=max(w,h)/2
對每一個像素A(x,y)執(zhí)行如下操作
Step1 坐標(biāo)平移 x=x-w/2, y=y-h/2
Step2 計算A到原點的距離:[r=x2+y2]
Step3 計算A點的入射角:[θ=arctanrf]
Step4 計算像點[A']到原點的距離:[r'=fθ]
Step5 計算像點[A']的坐標(biāo):[x'=x×r'r], [y'=y×r'r]
Step6坐標(biāo)平移[x'=x+w/2y'=y+?/2]
算法中,筆者直接使用了理想的等距投影模型對魚眼圖像的成像進行分析,沒有采用式(2),一方面會降低校正的精度,但另一方面減少了計算的復(fù)雜度。在后面的驗證實驗中發(fā)現(xiàn),僅使用理想的等距投影模型,校正結(jié)果還是比較滿意的。
2 魚眼圖像校正實驗
本文采用pycharm工具,基于python語言,在Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz處理器上完成算法的仿真實驗。實驗選用經(jīng)緯度映射法作為參照,實驗中不使用標(biāo)定設(shè)備。
實驗中首先對魚眼圖像進行預(yù)處理,提取有效圖像區(qū)域,如圖2所示(第一列為直接從魚眼相機讀取的圖像,第二列為提取的圖像有效區(qū)域)
對圖(2)中預(yù)處理后圖像分別執(zhí)行本文的算法和經(jīng)緯度映射校正算法,結(jié)果如圖3所示:
對比圖3中兩個算法的運行結(jié)果,不難發(fā)現(xiàn),在本文的校正算法中,校正后圖中的桌子各邊均為直線,標(biāo)定板各邊也為直線(標(biāo)定板在文中僅僅是為了對比二個校正算法的執(zhí)行結(jié)果),而執(zhí)行經(jīng)緯度校驗算法的執(zhí)行結(jié)果圖中桌子的兩邊、標(biāo)定板的四條邊仍然彎曲比較嚴(yán)重。顯然,文中的算法要明顯優(yōu)于經(jīng)緯度樣驗算法。
3 結(jié)論
本文主要研究采用等距投影模型的校正算法,該算法運用了圖像中點、線元素的空間變換的原理,可以更簡便、快速地得到校正圖像,從文中對算法的描述上看,該種算法計算量較小,校正過程簡單快速,相比于2D 校正在精度方面優(yōu)勢比較明顯,本文中我們直接采用了等距投影的理想模型,因此在校正精度上還有一定的提升空間,這也是作者下一步繼續(xù)研究的方向。
參考文獻:
[1] Ngo H T,Asari V K.A pipelined architecture for real-time correction of barrel distortion in wide-angle camera images[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15(3):436-444.
[2] 杭鵬程,余艷梅,陶青川.基于空間索引搜索的魚眼圖像校正方法[J].現(xiàn)代計算機,2020(32):38-42.
[3] 張偉.魚眼圖像校正算法研究[D].南京:南京郵電大學(xué), 2011.
[4] 趙紅旭.魚眼圖像校正算法的研究與實現(xiàn)[D].上海:上海交通大學(xué),2011.
[5] 劉鵬,肖斌,鄒丕振,等.魚眼圖像畸變的2D校正[J].魯東大學(xué)學(xué)報(自然科學(xué)版),2020,36(2):137-141.
[6] 劉金亮.基于魚眼相機實時全景拼接算法的研究[D].北京:中國人民公安大學(xué),2019.
[7] 鄭亮,陶乾.魚眼鏡頭自標(biāo)定和畸變校正的實現(xiàn)[J].計算機工程,2016,42(9):252-256.
[8] 何志東,張建偉,梁斌斌.一種基于拼接算法的魚眼圖像畸變校正方法[J].現(xiàn)代計算機,2020(3):57-62.
[9] 楊晶晶,陳更生,尹文波.一種基于幾何性質(zhì)的魚眼圖像校正算法[J].計算機工程,2012,38(3):203-205.
【通聯(lián)編輯:唐一東】
1561501705235