楊 玲, 成 運
(1. 南京信息工程大學(xué)濱江學(xué)院,江蘇 南京 210044;2. 湖南人文科技學(xué)院通信與控制工程系,湖南 婁底 417000)
應(yīng)用經(jīng)緯映射的魚眼圖像校正設(shè)計方法
楊 玲1, 成 運2
(1. 南京信息工程大學(xué)濱江學(xué)院,江蘇 南京 210044;2. 湖南人文科技學(xué)院通信與控制工程系,湖南 婁底 417000)
為了消除魚眼鏡頭帶來的形變,該文提出了一種應(yīng)用經(jīng)緯映射的魚眼圖像校正設(shè)計方法,推導(dǎo)了消除變形的數(shù)學(xué)依據(jù),總結(jié)出一種不需要任何標定數(shù)據(jù),快速的糾正等角魚眼變形的算法。使用經(jīng)緯映射圖像的校正方法,可以把扭曲的半球魚眼圖像投射為普通照片的四方形狀,也即通過投射降低圖像的扭曲程度,在視覺上基本達到實用要求。
計算機圖形學(xué);經(jīng)緯映射圖;魚眼圖像;魚眼圖像校正
為了消除魚眼鏡頭圖片的變形,一種方法是使用高次多項式模擬近似的變形方程,通過計算標定多項式系數(shù)來得到從源圖(有變形)到目標圖的點到點的映射關(guān)系。另一種方法是用非線性的幾何投影模型,例如等角魚眼模型[1]、球狀鏡頭模型[2],來描述圖像的變形機制,但是這些方法只適用與彎曲程度不太大的情況,對于circular fisheye是不適用的[3]。
大多數(shù)的方法都需要準確的標定設(shè)備,針對特定的一個鏡頭,獲得變形的糾正公式,而且使用迭代優(yōu)化方法,計算量大。如果在對精度要求不高的商業(yè)系統(tǒng)中應(yīng)用,可能遇到的問題是:不同的照片來自不同的魚眼鏡頭;不具備對照相機參數(shù)進行標定的條件;需要較短的時間計算時間。所以本文將進一步推導(dǎo)更加簡單快速的魚眼鏡頭變形糾正方法。
經(jīng)緯映射圖像(latitude-longitude projection image)方法雖然在繪圖學(xué)很少應(yīng)用,但是在計算機圖形學(xué)中卻得到了廣泛的使用,因為在計算機上存儲單位球是很困難的,把球面分成小片非常復(fù)雜[4-5]。球面的經(jīng)緯映射圖像就是把單位球面上的點按經(jīng)緯度映射到一個矩形紋理圖像上的點,經(jīng)度映射成矩形的水平坐標,緯度映射成垂直坐標,矩形的長寬比為2:1,經(jīng)度從0到2π,緯度從 0到π。當然,經(jīng)緯映射圖的矩形大小是由源圖(魚眼照片)來定的,例如,當是整個單位球面映射的時候,經(jīng)緯映射圖長寬比為 2:1,經(jīng)度從0到2π,緯度從0到π,而本文中的源圖是半球面圖,所以選擇經(jīng)緯映射圖的長寬比為 1:1,經(jīng)度從0到π,緯度從0到π,其原理都是一樣的。球面極坐標可以直接使用矩形紋理圖像的水平垂直坐標。單位球魚眼圖像中扭曲的場景可以用圖1(a)中的經(jīng)緯度定位圖來表示,即每一條經(jīng)度上的不同像素在扭曲校正過的經(jīng)緯映射圖像中具有相同的列坐標值,如圖中h和p點在無扭曲的場景中具有相同的X坐標。經(jīng)度越大的經(jīng)線,其扭曲程度越大。對于圖片垂直方向上任意一點像素坐標yi,從球面的左邊界到右邊界的角度差都是相等的,且與之對應(yīng)的線段 d 在 X軸方向上均勻分割經(jīng)度,使得在同一經(jīng)度不同的yi上,X方向上的距離相等。同樣,對照圖1(b)紋理圖像比較可知,最明顯的變形就是水平方向的拉伸變形,在赤道上幾乎沒有拉伸變形,越接近南北極點,變形就越厲害,幾乎拉伸到圖像的整個寬度。圖1給出魚眼圖像的單位球面上的P點和在經(jīng)緯映射平面上的對應(yīng)點的關(guān)系。
利用上面所講的等角魚眼投影[6]和經(jīng)緯映射圖像原理,可以得到簡單的恢復(fù)算法。算法目標是推導(dǎo)目標圖(恢復(fù)后的經(jīng)緯映射圖)和源圖(魚眼照片)像素之間的映射關(guān)系。如果從變形的魚眼圖像出發(fā),計算每一點經(jīng)過變換后到目標圖的坐標,將該點的像素信息賦值給目標圖上的點,這是最直觀的方法。
圖1 魚眼圖的單位球經(jīng)緯度定位圖和經(jīng)緯映射平面圖
首先需要先求出魚眼圖片的中心和半徑,可以采用這種方法來求得。
根據(jù)魚眼圖像的特征, 對圖像進行二值化(即只有黑色和白色)(如圖2所示),二值化以后的魚眼圖像,其有效區(qū)域輪廓外形呈圓形,圓形輪廓以外全部呈現(xiàn)黑色,而輪廓以內(nèi)的部分通常亮度較高。
根據(jù)這一特點,對得到的二值圖像做輪廓跟蹤,即分別對該魚眼圖像的二值圖像從水平和垂直方向(即從上下左右)開始逐步掃描,檢測每行或每列上各點的亮度值變化情況。亮度情況可以分為3類(見圖3):
(1) 不穿過圓形輪廓的直線,由于其全部位于圓外的黑色部分,通常同一直線上的各點亮度均為0,因此該直線上的點的亮度變化次數(shù)為零,該直線予以舍棄;
(2) 圓形的割線,由于其穿入輪廓和穿出輪廓各一次,因此該直線上的點的亮度變化次數(shù)至少為2次,如果考慮到圓輪廓以內(nèi)的有效圖像的亮度變化,則該直線上的點的亮度變化次數(shù)更多,該直線予以舍棄;
(3) 圓形的切線,直線上的點的亮度變化次數(shù)剛好為一次,則記錄下該直線。
圖2 二值圖
圖3 輪廓跟蹤亮度情況
由于存在一定的干擾和計算的不精確,通過上述方法求出的一組單一的數(shù)值可能存在的誤差較大,通過求得多組切線,然后對它們?nèi)∷阈g(shù)平均,具體算法如下:對魚眼圖像的二值圖像順時針轉(zhuǎn)動一個固定的角度,設(shè)這個角度大小為θ ,每轉(zhuǎn)動一次求出一組關(guān)于半徑Ri和圓心坐標(xi, yi)的數(shù)值,設(shè)總共轉(zhuǎn)動了M次,最后對這M組數(shù)值進行算術(shù)平均
這時得到的數(shù)值就是所要求的該魚眼圖像的半徑R和圓心坐標(x, y)。
在對魚眼圖像求取中心點和進行形狀校正之后,使用經(jīng)緯映射圖像的方法,把扭曲的半球魚眼圖像投射為普通照片的四方形狀,也即通過投射降低圖像的扭曲程度。從圖1中可看出,若源魚眼圖像是單位球時,恢復(fù)后的經(jīng)緯映射圖比魚眼照片的尺寸要大不少,用一一映射的方法,會在目標圖上留下許多空隙點。所以采用從目標圖像出發(fā),反向計算源圖像上對應(yīng)點的坐標,使用多對一的映射關(guān)系取樣像素。流程圖如圖4所示。
圖4 經(jīng)緯映射校正算法流程圖
創(chuàng)建魚眼投影需要知道照相機到實景中(球面上)每一點的向量,再由經(jīng)緯映射圖像上的點對球面上相應(yīng)點進行紋理貼圖。這就需要推導(dǎo)魚眼投影平面到經(jīng)緯映射圖之間的關(guān)系。
假設(shè)魚眼圖像平面像素坐標(i, j)已經(jīng)轉(zhuǎn)換為范圍在-1到1之間的規(guī)格化坐標(u, v)(圖5(a))。從角魚眼投影示意圖可以看出,球面好像以一層一層同心圓的方式投影在魚眼圖像平面上。最后得到的在投影平面上的圖像是圓形。設(shè)投影平面上任一點P(u, v),計算P到原點的距離r和P與U軸的夾角φ(圖5(b))。
圖5 兩種坐標平面
在180°以上角魚眼投影時,只有r≤1的點是有效的。計算r和φ的公式如下
r可以映射成球坐標系的, θ φ直接用于從照相機到實景方向向量的球坐標的ф,圖6(a)中顯示了魚眼映射時的球坐標。θ角就是r乘以魚眼視角 α(本文中選用的魚眼圖默認視角為π)的一半。即
假設(shè)球面半徑為 1,從照相機(球原點)到實景中點的方向向量(x, y, z)為
由照相機到實景方向向量(x, y, z),就可以推導(dǎo)出在經(jīng)緯映射圖中對應(yīng)的θ′Φ′坐標。由于在球面到經(jīng)緯映射圖時的球坐標和魚眼映射時的極坐標不一樣,因此,要進行重新選。
取球坐標系,采用圖的球坐標系(θ′, Φ′),θ′是照相機到實景方向向量與y軸的夾角,Φ′是方向向量在XOZ平面上的投影與X負軸的夾角。圖6 (b)描述球坐標系重新的選取。
圖6 坐標系的重新選取
在新選取的球坐標系上,坐標(θ′,Φ′)公式如下
這樣對于目標圖像上每一點(i, j),通過一系列變換,可以映射到源圖上的點(θ′, Φ′),經(jīng)過目標圖上每一點到源圖的取樣,這樣魚眼圖像地校正算法就完成了。
角度模型是最基本的魚眼投影模型;結(jié)合經(jīng)緯映射圖得到最簡單的恢復(fù)算法。實驗結(jié)果如下所示,圖7、圖8、圖9展示了circular fisheye照片源圖和校正后的對照。本算法不采用任何標定設(shè)備,使用方便,運算時間在十幾秒之內(nèi)。經(jīng)緯映射圖的特性決定,在南北兩極的圖像被嚴重拉伸。從實驗結(jié)果看,由于沒有精確的計算魚眼鏡頭的視角大小,最終糾正的效果不是很令人滿意,有些彎曲的地方未能調(diào)整為直線。
[1]Ying X, Hu Z, Zha H. Fisheye lenses calibration using straight-line spherical perspective projection constraint [C]//ACCV, 2006, Proc. of 7th Asian Conf.on Computer Vision. India:Hyderabad, ACCV, 2006:591-600.
[2]Mundhenk T N, Rivett M J, Liao X A. Techniques for fisheye lens calibration using a minimal number of measurements [C]//SPIE, 2000, Proc. of Intelligent Robotics and Computer Vision Conference. Boston:SPIE, 2000:181-190.
[3]容觀澳. 計算機圖像處理[M]. 北京:清華大學(xué)出版社, 2002:206-207.
[4]英向華, 胡占義. 一種基于球面投影約束的魚眼鏡頭校正方法[J]. 計算機學(xué)報, 2003, 26(12):1702-1708.
[5]唐 俊, 趙為明, 谷 峰. 基于魚眼圖像的全景漫游模型[J]. 微機發(fā)展, 2003, 13(2):69-70.
[6]黃有度, 蘇化明. 一種魚眼圖像到透視投影圖像的變換模型[J]. 系統(tǒng)仿真學(xué)報, 2005, 17(1):29-32.
The Designing Methods of Fish-eye Distortion Correction Using Latitude-longitude Projection
YANG Ling1, CHENG Yun2
( 1. Binjiang College, Nanjing University of Information Science and Technology, Nanjing Jiangsu 210044, China;2. Department of Communication and Engineering, Hunan University of Humanities and Science and Technology, Loudi Hunan 417000, China )
For correcting the distortion caused by fish-eye lens, this paper proposes fish-eye distortion correction methods using Latitude-longitude projection image. The paper deduces the mathematic basis of eliminating distortion, summarizes and proposes a efficient fish-eye image distortion correction algorithm without any marking data. The use of Latitude-longitude image correction method can reduce the distortion of image in the way of projecting the distorted hemispheric fish-eye images into square shape as general photos, which greatly satisfies the practical requests.
computer graphics; latitude-longitude projection image; fish-eye image; fish-eye distortion correction
TP 391
A
1003-0158(2010)06-0019-04
2009-03-13
湖南省自然科學(xué)基金資助項目(07JJ6116);湖南省重點建設(shè)學(xué)科資助項目
楊 玲(1981-),女,湖南婁底人,講師,碩士,主要研究方向為圖形圖像,信號處理。