李 根,費章君,楊仕友*
(1.浙江大學 電氣工程學院,浙江 杭州 310007;2.南自信息技術有限公司,江蘇 南京 210012)
由于魚眼鏡頭具有視場角廣(可達180 °)的優(yōu)點,特別適合于大場景視頻監(jiān)控應用,近年來在視頻監(jiān)控領域的應用日漸廣泛。由于魚眼鏡頭拍攝圖像帶有大量的桶形徑向畸變[1],故魚眼圖像不符合人類視覺習慣。為解決這個問題,國內外學者提出了多種方法以校正魚眼鏡頭圖像。應用最早的方法為基于多項式模型的校正算法[2-3],Basu 等[4]提出了基于對數運算的FET 變換方法(Fish-Eye Transform),以及基于拋物面成像模型的漫游及深度恢復算法[5-6],Kedzierski 等人[7]提出了一種基于微分幾何的精確校正算法,Wang 等人[8]提出了基于參數方程的魚眼鏡頭畸變數學模型,并將主光軸偏轉也包含在內。需要說明的是,這些現有算法不是從魚眼鏡頭的構造出發(fā),或者沒有區(qū)分不同類型的魚眼鏡頭,因此無法針對不同的鏡頭類型的圖像給出校正參數的解析解。
有鑒于此,本研究基于“非相似”成像理論,類比小孔成像模型構造不同魚眼鏡頭的幾何模型,提出一種魚眼鏡頭圖像校正算法;同時,為保證算法的實時性,還對算法的快速實現問題進行研究。
魚眼鏡頭是人們模仿魚眼工作原理而設計的鏡頭。其特點是視場角廣,可以達到180 °范圍,但所獲得的圖像具有徑向桶形畸變的特征。魚眼鏡頭攝像機在水平視場角180 °、垂直視場角160 °拍攝的圖像如圖1 所示。
圖1 魚眼鏡頭拍攝的圖像
根據相似成像原理,普通光學鏡頭遠距成像像高公式為:
式中:y0′—理想像高度,f—鏡頭物方焦距,ω—物方半視場角。
魚眼鏡頭遠距成像模型為非相似成像模型,針對不同鏡頭,有以下成像公式[9-10]:
式(2~5)都可提供相應的徑向桶形畸變,但是特點各不相同。其中式(3)稱為“等距投影”成像,是應用最為廣泛的魚眼鏡頭成像模式。
筆者以式(3)和式(5)為例,研究魚眼鏡頭的幾何模型。上述式(1)的幾何模型為“小孔成像”模型,如圖2 所示。
圖2 小孔成像模型
根據圖2,如果把像平面π替換為原點為O、半徑為 f 的半球面π2,則像高y′0 滿足式(5)。由此推廣,通過替換不同的曲面作為像面,可以做出不同魚眼鏡頭的幾何模型,幾何模型如圖3 所示。
圖3 魚眼鏡頭成像幾何模型
圖3 中,曲面 π2 為球面,曲面π1 即滿足式(3)的“等距成像”的像曲面。由式(3)以及魚眼鏡頭的對稱性,可知π1的解析式為:
平面校正,就是去掉魚眼鏡頭圖像的畸變,使輸出圖像符合人類視覺習慣的操作。具體來說,沒有畸變的圖像是由小孔成像原理得出的,也就是在平面π上的成像。因此,如果能根據曲面π1上的像計算出π 上的像,即可得到校正圖像。圖3 中的物點p 在平面π 和曲面π1上分別形成像點q 和q1,像高分別為和。由式(1)和式(3)可得:
通過左右移動平面π,也就是改變小孔成像的焦距,就可以改變校正后圖像的視場角,實現“拉近推遠”(zoom)的效果。設校正后圖像的成像焦距為 f′,原圖像焦距為 f,則有:
式(7)即為由幾何模型得到的等距影魚眼鏡頭圖像平面校正公式。
同理可得對于式(2,4,5)的魚眼鏡頭模型,其平面校正公式分別為:
計算機內部以像素為單位存儲圖像,所以必須將式(7)轉化為以像素為單位的圖像。為此,首先需要確定原圖像的光學中心,即主光軸通過的位置。由圖3 知,水平和豎直視場角都為180 °的魚眼鏡頭拍攝的圖像為圓形,其圓心就是光學中心,圖像的其他部分為空白(實際為黑色)。如果圖像的光學中心固定,可以事先獲取一幅圖像,魚眼鏡頭圖像如圖4 所示,本研究先使用形態(tài)學方法找到圖像的圓形邊緣,再使用Hough 變換計算圓心坐標,應用于后續(xù)圖像。光學中心示意圖如圖5 所示。
圖4 魚眼鏡頭圖像
圖5 光學中心示意圖
為實現實時確定上述圓心(光學中心),本研究提出了一種快速計算方法。
通過觀察圖4 可知,圓上最靠近圖像左邊緣的點和最靠近右邊緣的點連接起來就是一條直徑,而直徑的中點就是圓心。所以本研究可以通過掃描圖像找到這兩個距邊緣最近的灰度不為零的像素 p 和q,從而快速求取圓心坐標。實際圖像中由于采樣間隔,可能找不到相應的像素,同時由于邊緣找取的結果可能不光滑,從而影響算法的精確度。此時研究者可將與左、右邊緣距離最小的各3 個像素縱坐標分別取平均值,橫坐標不變,構造出p 和q 的坐標。具體實現時,圖像數據存儲為二維數組,像素坐標即數組下標。如果從第一行開始掃描,將當前距左、右邊緣距離最小的3 個像素坐標分別緩存在數組中,如果遇到距離更小的點就替換緩存中的數據。最終找到距左邊緣距離最小的3 個點 p1、p2、p3,距右邊緣距離最小的3 個點q1、q2、q3,則可得出圓心坐標(x,y)和半徑r 分別為:
另外,根據式(3)可知,攝像機焦距為:
式中:r—圓的半徑;f—焦距,單位為像素。
設校正后的圖像高為h,寬為w,其上有一點A(x,y),對應原圖像像點 A′(x′,y′)。假設校正后圖像的光學中心位于幾何中心,重合于O(w/2,h/2),則A′點像高和坐標為:
由式(11,12)可得校正后圖像的任意像點對應原圖像的像點位置,一般不為整數,筆者使用插值方法計算出像素顏色值。遍歷所有像素點得到的校正后的圖像如圖6 所示。
圖6 校正后圖像
在實際應用中,式(11,12)涉及到多次根號和三角函數運算,研究者可以采用映射表的方法提高算法效率。另外,具體實現中研究者可以根據需要,在滿足精度要求的前提下,選擇快速的插值算法以提高效率。
由于式(11,12)包含多次平方根和三角函數運算,如果逐點運算,復雜度太高,實際應用中可能達不到實時性要求。為了提高效率,研究者可以在參數確定的前提下提前算出所有結果,將其緩存為文件,程序啟動時將數據讀入內存。
由于式(11,12)的計算結果不為整數。為了減少計算量,可以直接緩存插值所需的參數。以雙線性差值為例,某一點p(x,y)的灰度值 f(x,y)計算公式為:
式中:Qij—p 左上、右上、左下、右下的4 個相鄰點,kij—雙線性插值參數。
如果攝像機的參數不變,那么Qij和kij 都不變,可以將它們緩存起來使用。數據結構可如下設計:
這樣的數據結構可以方便地存入磁盤或從磁盤中讀取。
采用緩存之后,由于系數kij不為整數,依然無法避免浮點數計算。在滿足精度要求的前提下,可以使用整形變量近似浮點數變量。當浮點數賦值給整形變量時,小數部分將被忽略,無法保證精度,所以需要額外的處理。
觀察式(13),如果將kij乘以一個相同的系數,等式左邊只要乘以同一個系數等式依然成立。所以可以使用“將kij乘以一個系數m”的方法,將kij 的小數部分中的一部分,移至整數部分。這樣將kij賦值給整形變量時,忽略的小數部分就可以按照研究者的要求增大或減小,改變m 的值就可以改變精度。計算出結果后,只要將 f(x,y)除以m,即可得到實際的結果。因為計算機中的移位操作比除法效率高,筆者建議m 的取值為2 的冪級數的形式,這樣便可以用移位操作代替除法操作。
為說明本研究優(yōu)化算法的計算效率,現以典型圖像處理為例,計算考察了不同算法的實時處理能力。兩種不同方法的性能比較結果如表1 所示。顯然,本研究算法的計算效率明顯高于原算法的計算效率。
表1 不同算法性能對比
本研究基于幾何成像模型研究了魚眼鏡頭圖像的校正算法和技術。這種方法基于鏡頭成像原理,可對不同鏡頭的圖像進行精確校正,并可通過參數調節(jié)實現校正后圖像的視場角變化。本研究以“等距投影”模型為例,給出了其實現方法。最后,為解決算法工程應用的實時性,本研究提出了基于緩存的優(yōu)化的快速計算方法和快速雙線性插值實現方法。經過實驗驗證,根據上述方法開發(fā)的圖像校正系統(tǒng)可以實現魚眼圖像實時精確校正。
因為魚眼鏡頭圖像畸變?yōu)榉蔷€性畸變,離光學中心越遠的點畸變越大,校正后的圖像較邊緣的區(qū)域存在模糊和鋸齒現象。如何減少鋸齒和模糊現象,將是下一步研究工作的重點。
(References):
[1]KANNALA J,BRANDT S S.A generic camera model and calibration method for conventional,wide-angle,and fisheye Lenses[J].IEEE Transactions Pattern Analysis and M achine Intelligence,2006,28(8):1335-1340.
[2]NOMURA Y,SAGARA M,NARUSE H,etal.Simple cali?bration algorithm for high-distortion lens camera[J].IEEE Transactions on Pattern Analysis and M achine Intelli?gence,1992,14(11):1095-1099.
[3]廖士中,高培煥,蘇 藝,等.一種光學鏡頭攝像機圖象幾何畸變的修正方法[J].中國圖象圖形學報,2000,5A(7):593-596.
[4]BASU A.Alternative models for fish-eye lenses[J].Pat?tern Recognition Letters,1995,16(4):433-441.
[5]汪嘉業(yè),楊興強,張彩明.基于魚眼鏡頭拍攝的圖像生成漫游模型[J].系統(tǒng)仿真學報,2001(13):66-68.
[6]張 誠,汪嘉業(yè).利用魚眼照片恢復景物的深度信息[J].工程圖學學報,2002(3):71-84.
[7]KEDZIERSKI M,FRYSKOWSKA A.Precise method of fisheye lens calibration[C]//The International Archives of the Photogrammetry,Remote Sensing and Spatial Informa?tion Sciences.China:[s.n.],2008:765-768.
[8]WANG J,SHIF,ZHANG J,etal.A new calibration model of camera lens distortion[J].Pattern Recognition,2008,41(2):607-615.
[9]陳晃明,陳向穎.魚眼鏡頭光學設計[J].北京理工大學學報,1989,9(12):35-42.
[10]王永仲,魚眼鏡頭光學[M].北京:科學出版社,2006.