張海彬, 余 燁, 李 琳, 劉曉平
(合肥工業大學計算機與信息學院VCC研究室,安徽 合肥 230009)
魚眼鏡頭是指視角范圍超過140°的鏡頭,由于其觀察范圍廣泛,利用魚眼鏡頭可以對半球空間的場景進行無盲區的顯示,因而廣泛應用于視頻監控[1]、虛擬現實[2]、虛擬景觀、機器人導航、軍事觀察、攝影攝像、工程測量等領域。魚眼鏡頭是根據非相似成像原理設計的,因此在具有大視角的同時也會使成像發生畸變,導致對場景的觀看不直觀。此外,由于魚眼圖像分辨率受限,其對場景中具體細節部分的描述不夠充分。基于上述原因,本文以還原半球空間中的場景信息為目標,在對魚眼圖像進行校正的基礎上,進行半球空間的實時漫游。
本文首先對魚眼圖像校正算法進行了研究,在此方面國內外研究者已經進行了很多研究。Zorin和 Barr[3]提出利用軸對稱映射來對曲線和歪曲的區域進行校正的方法,校正后的圖像可以達到無失真的效果,但他們的方法局限于線性透視投影區域。傅丹等[4]提出一種基于直線的幾何不變性標定攝像機參數,先用直線的攝影不變性糾正了魚眼畸變,然后用直線的相似不變性糾正了透視變形,從而標定攝像機的內部參數,此方法速度快、精度高,但是對于某些包含直線較少的場景,則不能夠充分地運用直線的幾何不變性,最后得到的校正結果不能很好地滿足要求。Carroll等[5]提出一個基于網格的非線性優化技術來減少直線的畸變和保留局部的形狀,其校正效果明顯。但是其校正映射和圖像邊緣對圖像的內容和用戶指定的約束具有很強的依賴性,而且校正速度慢,不能滿足實時性的要求。
在高真實感的虛擬環境中進行實時漫游一直是圖形界關注的焦點,其問題的關鍵在于如何有效地表達場景,從而在漫游階段進行實時、高質量的繪制[6]。由于魚眼在視頻監控、軍事觀察等領域的廣泛應用,要求能夠對魚眼圖像中感興趣的區域進行瀏覽,這就需要對魚眼圖像進行漫游。崔漢國等[7]用掃描線逼近的輪廓提取算法提取魚眼圖像輪廓,通過對魚眼圖像進行重采樣來獲得實時漫游的效果。但是,在瀏覽過程中由于沒有進行校正導致不能直觀的瀏覽。汪嘉業等[8]提出先對魚眼圖像進行校正然后將所有校正后的圖像存放在一定的數據結構中,建立球面、柱面等數據結構中,實現不同的漫游方法。但由于其空間的復雜度較高,不能滿足在視頻監控等領域的應用需求。
本文通過建立魚眼鏡頭的球面映射模型,對以視點為中心的觀察區域進行實時校正。在對魚眼圖像校正的基礎上通過構建一個數據結構來提高漫游的速度,該數據結構中存儲的是魚眼圖像的參數信息。漫游過程的求解,即通過視點的連續移動找出對應視平面的球面坐標與數據結構中參數信息之間的一一對應關系。最后對視平面進行像素賦值,達到根據視點移動漫游的效果,實驗結果證明漫游的過程能夠滿足實時性的要求。
魚眼鏡頭常用的投影模型有四種:等距投影、等立體角投影、體視投影和正交投影[9],本文中所使用的魚眼鏡頭投影模型為等距投影,如圖1所示。

圖1 魚眼鏡頭投影模型
其中,f為魚眼鏡頭的焦距,則魚眼圖像上點C(imagex,imagey)與其對應的球面坐標如式(1)所示:

魚眼圖像包含半球空間的場景信息,按照透視變換原理,無法將魚眼圖像上的全部信息顯示在一張無畸變的透視圖像上。因此,本文提出一種基于視點糾正的魚眼圖像場景化漫游方法,即模擬人眼觀察的效果,以視點為中心進行可觀察區域圖像的校正。如圖2所示,假設觀察視點在魚眼圖像上的成像點為C,記以C為中心的可觀察區域校正后的圖像為T,T是以C點在球面上的投影點M為中心的平面。基于視點的魚眼圖像校正的目標為:給定視點C,計算校正后的圖像T。具體計算過程如下所述:
假設B點為平面T上需要進行計算的任一像素點,D點為B點在魚眼圖像上的投影,且位于以視點C為中心的可視區域內。則圖像校正的目標可表述為:針對任一點B,獲取B點的對應點D的圖像坐標(D點為B點在魚眼圖像上的投影點),并將D點的像素賦給B點。

圖2 魚眼圖像校正模型
如圖2所示為魚眼圖像的校正模型,在校正平面T上選取點A使得AB⊥AM,則A點在視平面的中心線上,由 A點、M 點→坐標可以得出AM的直線方程(其平行向量為n)。D、E、C分別為B、A、M點在魚眼圖像平面上的投影點,AB與底面平行,故由平行向量得T 與球面相切于 M 點,則有由AB⊥AM、OM ⊥AB,可得AB垂直于平面AOM,則AB⊥OA,可知由AB⊥OA、AB⊥AE得AB垂直于平面AOE,則DE垂直于平面AOE,得出DE⊥OE,可知∠ X OD = ∠ X OE + ∠ D OE。如圖3所示為底面投影示意圖,視平面的寬在底面的投影FH與球心構成等腰三角形OFH,FH的中心點為C點,則∠ X OE = ∠X OC + ∠C OE, 由,可推出B點對應的魚眼圖像上點D(x,y),如式(2)所示:


圖3 半球底面投影表示
通過式(2)獲得了校正后平面上任一點 B對應的點D,從而對整個校正后的平面像素進行賦值,實現指定區域的校正。圖4(a)為魚眼圖像,點 C為指定的視點,則其對應的校正平面如圖4(b)所示。可以看出校正的效果明顯,滿足直線特征[10],達到了普通透視圖的效果。

圖4 魚眼圖像校正效果圖
基于魚眼圖像的漫游實際上是通過視點的連續移動獲取不同的校正平面來達到漫游的效果,為了保證漫游的實時性,本文在對魚眼圖像校正的基礎上構建一個存儲魚眼圖像上像素點球面坐標的數據結構。通過視點的連續移動找出對應視平面的球面坐標與數據結構中參數信息的一一對應關系,最后對視平面進行像素賦值,達到視點移動過程中漫游的效果。
本文提出的基于視點糾正的魚眼圖像場景化漫游方法,通過建立視點的移動模型來確定視平面的位置。如圖5所示,令視點對應的視平面的方程為 A x+ B y+ C z+ D = 0,視平面在空間中的位置可以用九元組 (θ,φ ,ω,n1,n 2 ,n3 ,v1,v2 ,v3)來表示。其中,θ為視平面中心點入射角,φ為視平面中心點的方向角,ω為視平面的視場角(如圖6所示),(n1 ,n 2 ,n3 )為視平面的→平行向量 (v1,v2,v3)為視平面的垂直向量V。通過入射角和方向角可以得到視平面與球面相切處的坐標 O (Ox ,O y,Oz),如式(3)所示:


圖5 魚眼圖像漫游模型

圖6 視平面對應的視場角
令width為視平面的長,height為視平面的寬,可以根據視場角ω求得,|OO'|為半O′球的半徑,如式(4)所示:


得到視平面左上角第一點的坐標后,通過視平面的水平向量和垂直向量即可獲得視平面上任意一點的坐標。設 B點為視平面上的任意一點,其空間坐標(B x,B y,B z)由式(6)得出,如下所示:

其中,(i,j)為B點在視平面上的像素坐標,通過式(6)得到視平面任意一點的三維坐標,將三維坐標轉化為球面坐標。通過查找與數據結構中球面坐標的關系,得出視平面的像素信息并進行賦值,這就實現了通過視點的連續移動達到漫游的效果。
本文提出的一種基于視點糾正的魚眼圖像場景化漫游方法,可以實現對指定視點所在區域的校正。通過魚眼鏡頭拍攝的魚眼圖像寬度為1600,高度為1200,為了證明在魚眼圖像上不同視點的校正效果,本文進行了以下的實驗,如圖7所示為本文提出的基于視點的魚眼圖像漫游方法所開發的魚眼圖像校正和實時漫游軟件的界面,如圖8所示在初始的魚眼圖像中指定了A、B、C、D四個不同的視點。

圖7 軟件界面

圖8 指定視點的魚眼圖像
圖9(a~d)四幅圖對應于在A、B、C、D四個不同的視點校正的效果圖,可以看出校正效果明顯,滿足直線約束標準。校正的過程在內存為4 GB和3.4 GHz的4核PC機上運行,通過多線程加速技術校正一張圖像需要40.2 ms。
在視頻監控中采集的視頻幀率一般不低于25幀/秒,為了滿足實時漫游觀察效果,并保證漫游過程的順暢自然,本文采用了預處理和多線程技術來提高計算的速度,處理后漫游的速度可以達到26幀/秒。圖10為標注視點移動軌跡的魚眼圖像,A、B、C、D、E、F、G、H 為軌跡上的視點。

圖9 不同視點校正后的圖像

圖10 漫游軌跡
圖11展示了漫游過程中A、B、C、D、E、F、G、H八個視點處的圖像,可以看出本文漫游過程中圖像清晰,易于觀看,而且實驗可以證明我們在漫游過程中達到了視頻播放的效果,滿足實時性的要求。

圖11 魚眼圖像的漫游
本文提出了一種基于視點糾正的魚眼圖像場景化漫游方法,實現了對指定視點區域的魚眼圖像的校正和實時漫游。通過獲取不同的視點位置得到對應視平面的數據信息,得到不同視點區域校正后的圖像。與文獻[11]相比,本文的實驗結果中校正的效果能夠很好地滿足直線約束,利用視點的連續移動帶動對應視平面的移動。通過對魚眼圖像進行重采樣得到不同位置視平面的數據信息,實現場景化的實時漫游。實驗表明能夠滿足實時性的要求,并且漫游過程中能夠保持圖像的清晰、高質量。本文提出的方法能夠在視頻監控、虛擬現實、軍事觀察等領域得到很好的應用。
[1] Glatt T L. Video surveillance system: European Patent EP 0714081[P]. 2001-6-27.
[2] Xiong Yalin,Turkowski K. Creating image-based VR using a self-calibrating fisheye lens[C]//Computer Vision and Pattern Recognition,1997. Proceedings,1997 IEEE Computer Society Conference on,1997:237-243.
[3] Zorin D,Barr A H. Correction of geometric perceptual distortions in pictures[C]//Proceedings of the 22nd annual conference on Computer graphics and interactive techniques. ACM,1995: 257-264.
[4] 傅 丹,周 劍,邱志強,于起峰. 基于直線的幾何不變性標定攝像機參數[J]. 中國圖象圖形學報,2009,14(6): 1058-1063.
[5] Carroll R,Agrawal M,Agarwala A. Optimizing content-preserving projections for wide-angle images[C]//ACM Transactions on Graphics (TOG).ACM,2009,28(3): 43-51.
[6] 張嚴辭,劉學慧,吳恩華. 基于圖像的實時漫游[J].計算機輔助設計與圖形學學報,2003,13(1): 132-133.
[7] 崔漢國,陳 軍,王大宇. 基于魚眼圖像的虛擬漫游研究[J]. 系統仿真學報,2007,19(5): 1053-1056.
[8] 汪嘉業,楊興強,張彩明. 基于魚眼鏡頭拍攝的圖像生成漫游模型[J]. 系統仿真學報,2001,13: 66-68
[9] Kannala J,Brandt S. A generic camera calibration method for fish-eye lenses[C]//Pattern Recognition,2004. ICPR 2004. Proceedings of the 17th International Conference on,2004,1: 10-13.
[10] Wei Jin,Li Chenfeng,Hu Shimin,Ralph R M,Tai C L. Fisheye video correction [J]. Visualization and Computer Graphics,IEEE Transactions on,2012,18(10): 1771-1783.
[11] 黃有度,蘇化明. 大視角魚眼鏡頭圖像中的漫游[J].工程圖學學報,2006,27(5): 44-49.