摘 要: 魚眼鏡頭攝像機具有大視場" title="視場">視場角的特點,但存在嚴重的圖像變形,常規(guī)的校正算法實時性" title="實時性">實時性較差。本文詳細介紹了采用紋理映射技術" title="紋理映射技術">紋理映射技術實現魚眼鏡頭校正的方法。實驗表明,該方法不但較好地完成了鏡頭的校正,而且大大提高了系統(tǒng)的實時性,解決了傳統(tǒng)方法中的幾個問題。
關鍵詞: 魚眼鏡頭 校正算法 紋理映射
在機器人導航[1]、虛擬現實、基于圖像的繪制以及視覺監(jiān)控等許多計算機視覺領域,需要使用具有較大視場的魚眼鏡頭[2]。魚眼鏡頭最大" title="最大">最大的特點就是視場大,一張照片包含的信息非常豐富。圖1就是視場為180°的魚眼照片,它不但包含了整個天空,而且還包括了四個方向的信息,如果使用普通鏡頭,至少需要拍攝4次;如果在機器人導航或者監(jiān)視偵察領域,就至少需要4個攝像頭。這不但增加了成本,而且每個鏡頭之間的銜接、圖像的拼接也非常麻煩。
從圖1可以看到,魚眼鏡頭雖然非常方便,但它拍攝的圖像具有非常嚴重的變形,必須先經過校正才能使用。傳統(tǒng)的校正主要采用平面透視投影約束,通過變形校正模型將空間直線的投影曲線映射為圖像平面上的直線[3~5]。2003年英向華[6~7]在平面透視約束的基礎上提出球面透視投影約束,即空間直線的球面透視投影為球面上的大圓。
紋理映射[8]是計算機圖形學中解決物體表面細節(jié)的一種顯示技術。把魚眼照片看作紋理圖片,按照紋理映射的思路映射到目標圖像上,可以實現魚眼鏡頭的校正。
本文重點不是提出新的校正算法,而是在傳統(tǒng)校正算法的基礎上,采用紋理映射技術,提高校正速度,采用的模型是英向華球面透視投影模型。由于視場為180°左右的魚眼鏡頭應用比較廣泛,本文僅討論該研究對象的快速校正。
1 采用紋理映射技術實現魚眼鏡頭校正的過程
1.1 映射函數的建立
根據整個空間的中心對稱性,180°的視場選擇以視點O為中心,半徑為R的一個半球作為還原模型,魚眼鏡頭的成像過程如圖2所示,這樣Z>0的部分就是整個視場。
如圖2所示,魚眼鏡頭的成像過程[6]可以分為三步:(1)每個空間點P0被映射為連結P0與投影中心O的射線OP0;(2)將射線OP0線性地映射到單位球面上,得到球面透視投影圖像P1;(3)將球面點P1非線性地投影到平面XOY上,得到魚眼照片上" title="片上">片上成像點P2。在圖2中,整個半球在XOY平面上的投影部分就是最后鏡頭生成的魚眼照片。
根據魚眼鏡頭的成像過程,為了提取整個魚眼照片中的立體信息,在半球上加一個與它外切的半立方體,它的前、后、左、右和上面分別模擬環(huán)境的前、后、左、右和上方。半正方體校正模型如圖3所示。
設半球的方程為:
1.2 映射過程的實現
對圖3中確定的目標圖像進行網格劃分,得到目標圖像的網格劃分如圖4所示。
?
根據公式(5)求解網格上的交叉點的UV坐標。確定每個子格內部所有點的UV坐標。
以下介紹如何根據子網格四個頂點的UV坐標確定網格內部任意點UV坐標的方法。該方法適合于任何形狀的四邊形。連接四邊形一條對角線,就把問題轉換為:根據三角形頂點的UV坐標,求解三角形邊上或內部任何一點UV坐標。確定三角形邊上或內部點UV坐標算法示意圖如圖5所示。
圖5中,設三角形P0P1P2三個頂點的UV坐標是可知的,求解其內部點P3的UV坐標。
1.3 存在的問題及改進
圖6就是采用紋理映射技術實現魚眼鏡頭校正的效果圖??梢钥吹?,圖6中表示4個方向的子圖中景物的分布密度與實際不符合,而且靠近方向銜接的地方存在圖像的扭曲(在最后的子圖中,最右邊的建筑嚴重扭曲)。圖7是半正方體模型的俯視圖,圖中很容易得到:是隨θ的變化而變化,它在[0,45°]是遞增的,當接近方向銜接(θ=45°)時,其值最大,因此,在那里圖像扭曲較嚴重。
在圓中,周長l,圓心角θ,是常數,這樣就不存在方向上圖像的扭曲,因此,將半球型外面的半正方體替換為外切圓柱,則圓柱型校正模型如圖8所示。改進后的效果如圖9所示。對比圖6會發(fā)現,圖9在4個方向上圖像分布均勻,扭曲也消失了。
?
2 新方法與傳統(tǒng)方法的對比
新方法比傳統(tǒng)方法校正速度快。這是新方法的最大優(yōu)點。無論是新方法還是傳統(tǒng)方法,都是在給目標圖像著色,因此也要建立一個目標圖像和魚眼照片上像素的映射函數,如公式(5)。不同的是,傳統(tǒng)方法會使用該映射函數對目標圖像上每個像素進行處理,而新方法只對網格上的點進行公式(5)處理,其他的點都使用公式(9)進行處理。公式(5)主要是乘除和開方運算,公式(9)主要是乘除運算,因此前者要比后者復雜,需要更多的運算時間。假如目標圖像是200×200像素規(guī)模的,目標圖像采用20×20的網格劃分(試驗證明采用這樣的網格劃分,校正效果已非常理想),傳統(tǒng)方法需要進行200×200次公式(5)運算,而新方法則采用20×20次公式(5)運算,200×200-20×20次公式(9)運算,新方法99%的像素都在進行簡單的運算。這就是新方法提高速度的原因。此外,本實驗建立的魚眼校正模型比較簡單,建立的映射函數也比較簡單,如果直接采用傳統(tǒng)的校正模型,它建立的映射函數要比公式(5)更加復雜,這時候新方法速度快的特點將更加突出。表1是新方法與傳統(tǒng)方法校正速度的實驗對比(采用圓柱模型而且圓柱頂和側面采取相同數量的網格,平臺:Windows2003+CPU1.8G+512MB內存)。
新方法比傳統(tǒng)方法靈活。新方法校正速度和校正結果都與網格劃分有關。網格劃分越多,目標圖像就越細膩,運算速度也就越慢。根據應用領域的不同,選擇合適的網格劃分,就可以兼顧細膩性和實時性。
新方法可以解決傳統(tǒng)方法存在的一些不足。傳統(tǒng)方法只強調優(yōu)化改進目標圖像與魚眼照片之間的映射關系,常常忽視目標圖像生成中出現的一些問題:(1)當目標圖像尺寸大于魚眼照片尺寸時,根據映射關系,目標圖像上多個像素就對應魚眼照片上同一個像素點,當目標圖像尺寸大于魚眼照片尺寸約4倍以上時,就存在明顯的馬賽克現象。(2)當目標圖像尺寸小于魚眼照片尺寸時,目標圖像上相鄰的像素就對應魚眼照片上距離比較大的兩點,那么當系統(tǒng)實時運轉時,就會出現目標圖像的閃爍。上述兩個問題在傳統(tǒng)方法中都沒有解決,而(在紋理映射技術中分別使用插值算法和Mip-Map技術[9]都可以很好地解決。
本文首次將紋理映射技術應用到魚眼鏡頭的校正過程中,不但取得良好的校正效果,而且大大提高了校正的速度,解決了傳統(tǒng)方法中的幾個問題。雖然本文只討論了視場為180°魚眼鏡頭的校正,實際上,本文的方法同樣可以用于其他廣角鏡頭的校正。
參考文獻
1 Shah S,Aggarwal J K.Mobile robot navigation and scene modeling using stereo fish-eye lens system.Machine Vision and Applications,1997;(10):159~173
2 Miyamoto K.Fish eye lens.Journal of Optical Society of America,1964;54(8):1060~1064
3 Devernay F,Faugeras O.Straight lines have to be straight: automatic calibration and removal of distortion from scenes of structured environments.Machine Vision and Applications,2001;13(1)14~24
4 Nomura Y,Sagara M,Naruse H et al.Ide,Simple calibration algorithm for high-distortion-lens camera.IEEE Transactions on PAMI,1992;14(11):1095~1100
5 邱志強,陸宏偉,于起峰.用射影不變性糾正魚眼鏡頭畸變.應用光學,2003;24(5):36~38
6 英向華,胡占義.一種基于球面透視投影約束的魚眼鏡頭校正方法.計算機學報,2003;26(12):1702~1708
7 Ying X H,Hu Z Y.Distortion correction of fisheye lenses using a non-parametric imaging model.In:Asian conference on computer vision(ACCV 2004),Jeju,Korea,2004
8 薛軍濤,賀懷清.典型紋理映射實現方法研究.計算機工程,2005;31(7):211~214
9 唐麗玉,彭國均,舒娛琴.Mip-map技術在三維實時仿真中的應用.福州大學學報,2004;32(1):23~26