劉國華
(黑龍江大學(xué) 機(jī)電工程學(xué)院,哈爾濱 150080)
許多虛擬現(xiàn)實(shí)應(yīng)用系統(tǒng)中,為了增強(qiáng)虛擬環(huán)境的沉浸感,通常采用曲面顯示屏,如圓柱形、球形屏等。計(jì)算機(jī)產(chǎn)生的圖像都是針對(duì)平面顯示,當(dāng)投影到曲面上時(shí),會(huì)產(chǎn)生幾何失真。為使觀察者能夠看到正常圖像,需對(duì)計(jì)算機(jī)產(chǎn)生的圖像進(jìn)行預(yù)變形處理,以抵消曲面顯示屏造成的幾何失真。目前主要是通過在圖形工作站與投影設(shè)備間增加額外校正單元[1],或是專業(yè)投影設(shè)備本身內(nèi)部集成校正單元[2],這些方法成本高,且靈活性較差。
曲面顯示屏較常見的有球面、圓柱面等二次曲面形狀,本文針對(duì)此種類型顯示屏的投影顯示,利用計(jì)算機(jī)視覺研究中的相關(guān)內(nèi)容,推導(dǎo)了基于二次變換的圖像校正關(guān)系式,研究了其求解過程,并通過實(shí)例對(duì)變換效果進(jìn)行了驗(yàn)證。這種方法通過編程對(duì)投影圖像預(yù)處理,不需增加額外設(shè)備,具有方便、靈活的特點(diǎn)。
計(jì)算機(jī)視覺研究中通常利用相機(jī)模型來模擬人的視覺系統(tǒng),并通過相機(jī)獲取的物體的圖像信息,計(jì)算對(duì)應(yīng)三維物體的位置、形狀等幾何信息。線性相機(jī)模型是應(yīng)用最為廣泛的一種模型,表達(dá)了空間點(diǎn)與對(duì)應(yīng)圖像點(diǎn)之間的關(guān)系。
在投影系統(tǒng)中,投影儀將圖像點(diǎn)投影在空間顯示屏上,而該點(diǎn)在觀察者觀察系統(tǒng)所成的像即為觀察圖像點(diǎn),因此可以通過顯示屏曲面上的空間點(diǎn)求解投影儀圖像與觀察圖像之間的關(guān)系。若將一相機(jī)置于觀察者位置來代表觀察者視點(diǎn),且投影儀、相機(jī)均采用線性模型表示,則求解圖像校正關(guān)系式就轉(zhuǎn)化為求解顯示屏曲面上的空間點(diǎn)在不同模型視圖中的對(duì)應(yīng)投影點(diǎn)之間的參數(shù)關(guān)系[3]。由于相機(jī)、投影儀模型都采用線性相機(jī)模型表示,因此在以下說明及推導(dǎo)過程中,不再從名稱上區(qū)分二者,而以相機(jī)1、相機(jī)2進(jìn)行描述。
在計(jì)算機(jī)視覺研究中,三維重建主要研究在歐氏幾何意義下的重建,使用直角坐標(biāo)系,坐標(biāo)系之間變換為平移或正交變換。近年來研究表明,歐氏幾何意義下的重建要求條件過多。從上世紀(jì)80年代開始,許多學(xué)者開展了射影幾何意義下的三維重建研究,簡(jiǎn)稱射影重建。相對(duì)于歐氏變換,采用射影變換有很多好處,通常不需求出投影矩陣,而僅通過不同視圖間的圖像點(diǎn)得到識(shí)別物體的射影變換不變量,從而實(shí)現(xiàn)更一般意義的三維重建[4]。
在射影重建過程中,一定意義下的相機(jī)間的相對(duì)位置關(guān)系通過對(duì)極幾何關(guān)系和基本矩陣描述[5]。
由計(jì)算機(jī)視覺相關(guān)原理可知,從兩個(gè)不同視點(diǎn)獲得的同一場(chǎng)景兩幅圖像間存在著對(duì)極幾何關(guān)系。如圖1所示,空間點(diǎn)M在兩個(gè)投影圖像I1、I2的投影分別為m、m′;兩個(gè)相機(jī)光心分別為O、O′,連接光心O、O′的直線為基線,基線與左右圖像的交點(diǎn)e、e′為極點(diǎn)。根據(jù)成像幾何關(guān)系可知,m、m′、O、O′、M 在同一平面π上,并且m、m′分別位于π與兩個(gè)圖像I1、I2的交線l、l′上,則直線l=<e,m>為m′在I1圖像上的對(duì)應(yīng)極線,直線l′=<e′,m′>為m在I2圖像上的對(duì)應(yīng)極線,并且每幅圖像上的極線都交于該圖像上的極點(diǎn)。
圖1 對(duì)極幾何關(guān)系Fig.1 Epipolar geometry of two projections
對(duì)極幾何關(guān)系提供了極線約束條件,即:一幅圖像上的點(diǎn)在另一幅圖像上的匹配點(diǎn)位于該點(diǎn)在另一幅圖像的對(duì)應(yīng)極線上。對(duì)極幾何的約束關(guān)系在代數(shù)上可以通過一個(gè)3×3的基本矩陣F表示,基本矩陣F將一幅圖像上的點(diǎn)m映射到該點(diǎn)在另一幅圖像的極線l′上,即有以下關(guān)系:
式中m、m′為空間點(diǎn)在不同投影視圖上的對(duì)應(yīng)點(diǎn)。
基本矩陣F可以通過兩幅圖像中的一組匹配點(diǎn),由式(1)建立線性方程組求解獲得?;揪仃嚲哂邢率龌拘再|(zhì):
1)極點(diǎn)e滿足Fe=0,極點(diǎn)e′滿足FTe′=0;
2)F在相差一個(gè)非零常數(shù)因子下是唯一的;
3)若M1與M2分別為兩個(gè)相機(jī)的投影矩陣,F(xiàn)為其基本矩陣,則基本矩陣為F的相機(jī)的投影矩陣均可表達(dá)為M1H與M2H,其中H為任意滿秩4×4矩陣。這表明給定相機(jī)的基本矩陣后,投影矩陣并不唯一。
由以上內(nèi)容,可得射影重建的一個(gè)重要方法:即在射影重建中,首先通過不同圖像間的匹配點(diǎn)計(jì)算基本矩陣F;然后,對(duì)于兩幅圖像分解出兩個(gè)形式相對(duì)簡(jiǎn)單的投影矩陣M1、M2,進(jìn)而實(shí)現(xiàn)射影幾何意義下物體的三維重建[6]。
二次變換關(guān)系式表達(dá)了二次曲面投影圖像校正中的投影儀圖像與正常圖像之間的參數(shù)關(guān)系,其推導(dǎo)過程實(shí)質(zhì),即求解二次曲面上空間點(diǎn)在不同投影視圖上的投影點(diǎn)之間的參數(shù)關(guān)系式。
日常生活中常見的球面、圓柱面等,都可以采用三元二次代數(shù)方程表示,通常稱作空間二次曲面,可以表示為:
式中Q為二次曲面方程的系數(shù)矩陣,為4×4對(duì)稱矩陣;X為二次曲面上點(diǎn)的齊次坐標(biāo),X=(x,y,z,1)T。
當(dāng)二次曲面不過原點(diǎn)時(shí),有Q(4,4)≠0,即常數(shù)項(xiàng)不為0,此時(shí)可令Q(4,4)=1,Q寫成如下形式:
式中Q33為3×3對(duì)稱矩陣;q為3×1向量。
二次方程系數(shù)矩陣未知量為9個(gè),對(duì)應(yīng)空間二次曲面的自由度為9,研究證明二次曲面可以由它在兩幅投影視圖上的9對(duì)匹配點(diǎn)實(shí)現(xiàn)三維重建[7-8]。
對(duì)于已知基本矩陣F,對(duì)應(yīng)相機(jī)投影矩陣并不唯一,在射影重建研究中,通常取兩個(gè)較簡(jiǎn)單矩陣作為相機(jī)投影矩陣[9]:
式中M1、M2為相機(jī)投影矩陣;I為3×3單位矩陣;A為3×3矩陣,且A=e′×F;e′為極點(diǎn)。
如圖2所示,對(duì)于空間二次曲面Q上一點(diǎn)P,令其空間坐標(biāo)為XP;P點(diǎn)在兩個(gè)投影視圖ψ、ψ′上的投影點(diǎn)分別為p和p′,令其坐標(biāo)分別為(x,y,1)、(x′,y′,1),兩個(gè)視圖的投影矩陣 M1、M2分別由式(4)、式(5)給出。
根據(jù)線性相機(jī)模型關(guān)系式,則有:
其中?表示在相差一個(gè)非零常數(shù)因子意義下的相等。
由投影矩陣式(4)、相機(jī)模型式(6)可知,視圖ψ上的圖像點(diǎn)p對(duì)應(yīng)的空間點(diǎn)P可以表示為(x,y,1,k),記為(p,k),其中k為與空間位置相關(guān)的量。則P點(diǎn)在視圖ψ′上投影p′的坐標(biāo):
圖2 空間二次曲面成像幾何關(guān)系Fig.2 Projection of a point on quadric surface
式(8)即為二次曲面上的一點(diǎn)P在不同投影視圖上的投影點(diǎn)p和p′之間的參數(shù)關(guān)系式,式中的A、e′可以在求出基本矩陣以后得到,其求解關(guān)鍵在于求出k值,而k與二次曲面上的點(diǎn)位置相關(guān)。
由于P為空間二次曲面上一點(diǎn),將P點(diǎn)坐標(biāo)(p,k)代入二次曲面式(2)得:
式(12)即為二次曲面上一點(diǎn)在不同投影視圖的投影點(diǎn)之間的參數(shù)關(guān)系式,即所求的圖像校正二次變換關(guān)系式。由式(12)可見,二次變換關(guān)系式與投影視圖參數(shù)A、e′以及二次曲面Q相關(guān)。由于直線與二次曲面通常會(huì)有兩個(gè)交點(diǎn),所以出現(xiàn)±號(hào),可以通過一對(duì)匹配圖像點(diǎn)坐標(biāo)確定。
二次曲面的三維重建研究表明,空間二次曲面可以通過兩個(gè)投影視圖中的9對(duì)匹配點(diǎn)實(shí)現(xiàn)重建,而射影重建中的基本矩陣可以通過8對(duì)匹配點(diǎn)求出。因此,二次變換關(guān)系式可以通過兩個(gè)視圖中的9對(duì)匹配點(diǎn)進(jìn)行求解。
2.3.1 二次變換關(guān)系式求解算法
二次變換關(guān)系式的求解主要包括兩部分內(nèi)容:①求解基本矩陣F以獲取式中的A、e′;②求解二次曲面的方程Q。根據(jù)空間二次曲面三維重建的相關(guān)內(nèi)容,以上參數(shù)可以通過兩幅圖像中的9對(duì)匹配點(diǎn)求出,具體求解過程如下:
1)求解基本矩陣F和極點(diǎn)e、e′。這3個(gè)參數(shù)可以通過基本矩陣關(guān)系式(13)、極點(diǎn)方程式(14)和式(15),建立線性方程組進(jìn)行求解。首先,利用8對(duì)圖像匹配點(diǎn)通過式(13)建立線性方程組求解基本矩陣F;然后,將F 代入式(14)、式(15)建立線性方程組求解e、e′。
2)求解矩陣A。3×3矩陣A可以通過4對(duì)匹配圖像點(diǎn)求出,通常取上一步求出的一對(duì)極點(diǎn)e、e′和另外3對(duì)匹配點(diǎn),通過式(16)建立線性方程組進(jìn)行求解,即可得出矩陣A[10]:
3)求解其余匹配點(diǎn)對(duì)應(yīng)的kj(j=4,5,…,8)值。根據(jù)匹配點(diǎn)的坐標(biāo),利用上述所求得的A、e′,并通過式p′j?Apj+kje′即可以求解kj。通常采用最小二乘法,由式(17)求解kj值:
4)求解二次曲面方程Q。將9對(duì)匹配圖像點(diǎn)和對(duì)應(yīng)的kj值代入式(18),建立線性方程組,即可得到二次曲面方程Q的各項(xiàng)系數(shù):
通過以上步驟可以得出二次變換關(guān)系式(12)中所需的全部參數(shù)A、e′和Q,二次變換參數(shù)關(guān)系式即確定。
2.3.2 利用OpenCV求解二次變換關(guān)系式
為了求取二次變換關(guān)系式,需要對(duì)投影儀、相機(jī)圖像進(jìn)行處理(主要是特征點(diǎn)檢測(cè)),并通過匹配點(diǎn)計(jì)算基本矩陣F,這主要借助OpenCV完成。
OpenCV是由Intel公司推出的一套可免費(fèi)獲得的由C函數(shù)和C++類所組成的庫,主要用于實(shí)現(xiàn)一些常用的圖像處理及計(jì)算機(jī)視覺算法,如特征檢測(cè)與跟蹤、運(yùn)動(dòng)分析、目標(biāo)分割與識(shí)別以及三維重建等。OpenCV的源代碼完全開放,源代碼的編寫簡(jiǎn)潔、高效,并且大部分函數(shù)都已經(jīng)過匯編最優(yōu)化,因此代碼執(zhí)行效率較高,近年來在國內(nèi)外的圖像處理及相關(guān)領(lǐng)域得到廣泛應(yīng)用?;揪仃嘑在計(jì)算機(jī)視覺研究中占有重要地位,因此學(xué)者們也提出了多種求解算法。對(duì)于已知8對(duì)或以上匹配點(diǎn)的情況,經(jīng)常采用8點(diǎn)算法和改進(jìn)8點(diǎn)算法,它們都是易于實(shí)現(xiàn)的線性算法;另外還可以采用魯棒算法,如RANSAC法。OpenCV中提供了專門的函數(shù)cvFindFundamentalMat()求解基本矩陣。對(duì)于二次變換關(guān)系式求解過程中的其它數(shù)學(xué)運(yùn)算過程,主要借助Matlab所提供的函數(shù)庫實(shí)現(xiàn)。
二次變換圖像校正的實(shí)現(xiàn)主要包括二次變換預(yù)處理和實(shí)時(shí)校正兩個(gè)階段。
在預(yù)處理階段,首先通過投影儀投影特征圖片到顯示屏,并在觀察者所處位置利用相機(jī)拍攝投影圖片;利用OpenCV獲取兩幅圖片中對(duì)應(yīng)的特征圖像點(diǎn)坐標(biāo),并根據(jù)前述算法求解二次變換關(guān)系式的各項(xiàng)參數(shù)。在實(shí)時(shí)處理過程階段,計(jì)算機(jī)首先將圖像存儲(chǔ)到紋理緩存,然后利用二次變換關(guān)系式對(duì)紋理圖片進(jìn)行變換處理。在紋理緩存中的二次變換采用OpenGL編程實(shí)現(xiàn),首先將理想圖像作為紋理貼在由四邊形或三角形組成的網(wǎng)格上;然后利用求出的二次變換關(guān)系式,對(duì)貼圖網(wǎng)格的頂點(diǎn)進(jìn)行位置變換,從而實(shí)現(xiàn)對(duì)理想圖像的變形處理。
為了對(duì)二次變換圖像校正法進(jìn)行驗(yàn)證,采用圓柱面投影實(shí)驗(yàn)。特征點(diǎn)變換圖片見圖3,通過兩幅圖片中的對(duì)應(yīng)特征點(diǎn),即可求出二次變換關(guān)系式。根據(jù)獲得的二次變換關(guān)系式,圖4、圖5分別為校正前、后的結(jié)果,可以看出,經(jīng)過二次變換校正后的投影圖像可以獲得較好的顯示效果。
本文主要研究了曲面投影圖像的校正技術(shù),利用計(jì)算機(jī)視覺研究中射影重建的相關(guān)內(nèi)容,推導(dǎo)了用于二次曲面投影圖像校正的參數(shù)關(guān)系式——二次變換關(guān)系式,闡述了二次變換參數(shù)關(guān)系式的求解方法和過程。通過編程,探討了二次變換參數(shù)關(guān)系式用于二次曲面投影圖像校正的實(shí)現(xiàn)過程,并通過實(shí)際投影對(duì)校正效果進(jìn)行了驗(yàn)證。
[1]華利創(chuàng)通公司.華力公司推出全新SuperSonic視景仿真投 影 系 統(tǒng) [EB/OL].http://www.hwacreate.com. cn/chinese/product/jjfan/SuperSonic. html,2004-03-15/2006-08-12.
[2]巴克公司.巴可公司協(xié)助SIGGRAPH 3D協(xié)同可視化應(yīng)用大放異彩 [EB/OL].http://www.projectorwindow. com/projector/barco/barco-060809. htm,2006-08-09/2006-08-12.
[3]Rajeev J.Surati.Scalable self-calibrating technology for seamless large-scale displays [D].Ph.D.Thesis,Massachusetts Institute of Technology,1999:15-20.
[4]梅向明.高等幾何 [M].北京:高等教育出版社,1983:88-90.
[5]龍熙華,梁 棟,李占利.基于L-M算法的射影重建技術(shù)研究 [J].西安科技大學(xué)學(xué)報(bào),2005,25(1):81-84.
[6]馬頌德,張正友.計(jì)算機(jī)視覺——計(jì)算理論與算法基礎(chǔ)[M].北京:科學(xué)出版社,2003:90-92.
[7]汪令江.二次曲面的三維重建和輪廓線投影 [J].工程圖學(xué)學(xué)報(bào),1989,(11):38-52.
[8]A.Shashua,S.Toelg.The quadric reference surface:Applications in registering views of complex 3Dobjects[A].In Proc.European Conf.On Computer Vision[C].Stockholm.1994:569-581.
[9]R.Hartley.Projective reconstruction and invariants from multiple images[J].IEEE Trans.PAMI,1994,16(10):1036-1040.
[10]Amnmon Shashua.The quadric reference surface:Theory and applications [J].International Journal of Computer Vision,1997,23(2):185-198.