江雷
(四川大學(xué)計算機學(xué)院,成都 610065)
三維電影是近年來興起的一種能夠增強觀賞效果的新型傳播媒體,它能給人更加真實的感覺與體驗。多視點視頻技術(shù)是三維電影的基礎(chǔ)上,通過某種算法獲得任意視點的圖像,從而讓我們可以全方位觀察我們想要看到的細(xì)節(jié),這種技術(shù)加強了人與機器之間的交互。
現(xiàn)有的虛擬視點生成技術(shù)可以大致分為兩類,首先是基于模型的繪制技術(shù)(Model Based Rendering,MBR),其次是基于圖像的繪制技術(shù)(Image Based Rendering,IBR)。我們知道基于模型的繪制技術(shù)需要對真實場景建立一個準(zhǔn)確的三維模型,一旦模型建立成功之后,我們可以很快得到任意視點的圖像。但是這種技術(shù)有一個很明顯的缺點就是,需要很深的計算機圖形學(xué)知識,并且要對現(xiàn)實場景建模不是一件容易的事情,計算量很大。因此我們有了基于圖像的繪制技術(shù),基于圖像的繪制技術(shù)可以在參考了多個視點的圖像之后,利用重投影,插值等技術(shù)直接生成虛擬視點處的圖像。該方法的繪制速度很快,生成的虛擬圖像很真實,因此基于圖像的繪制技術(shù)應(yīng)用更加廣泛。本文研究的目的,學(xué)習(xí)與研究多視點視頻技術(shù)的原理,提出一種有效的算法,幫助我們快速有效地生成虛擬視點處的圖像。
在計算機視覺領(lǐng)域,相機幾何模型解決了實際三維空間坐標(biāo)系到圖像二維空間坐標(biāo)系的映射。在相機模型中,小孔成像模型是一個最經(jīng)典的理想模型,它可以幫助我們快速有效地理解成像過程。但在實際應(yīng)用中還有很多缺點,所以現(xiàn)實中,常常使用的不是線性幾何模型。攝像機成像可以看做是把三維空間的物體轉(zhuǎn)換到二維空間去表示,我們知道降維的過程往往伴隨著信息的丟失。那么如何把三維空間坐標(biāo)系的物體轉(zhuǎn)到二維空間表示呢,最常用的方法是使用透視投影。經(jīng)過透視投影之后,信息肯定存在一定的丟失,如角度;但也有一些信息會原封不動的被繼承,如原空間中的直線,經(jīng)透視投影之后仍就是直線,不會變成曲線。
在攝像機模型中一般存在著三種坐標(biāo)系,世界坐標(biāo)系、攝像機坐標(biāo)系、圖像坐標(biāo)系。成像的過程實際上是把世界坐標(biāo)系中表示的物體,投影到圖像坐標(biāo)系表示的過程??梢院唵蔚挠孟聢D表示成像過程。
圖1 相機成像原理示意圖
可以用公式(1)表示其映射過程,期中f為焦距,R矩陣表示的試旋轉(zhuǎn)變換的過程,而t矩陣表示的是平移的過程,第一個矩陣表示是透視映射的過程。其中(U,V,W)代表物體在世界坐標(biāo)系下的坐標(biāo),而(x,y)代表物體在圖像坐標(biāo)系下的坐標(biāo)。
小孔成像模型屬于線性模型,如圖1所示。三維空間的任意一點P在圖像中的成像位置均可以用小孔成像模型近似表示,即任意三維空間點P在圖像中的投影位置p’,為光心O與P點的連線OP與圖像平面的交點。這種關(guān)系也被稱為中心射影。通過觀察上面的小孔成像模型,我們可以得到關(guān)系式如下:
(x,y)為p點的圖像坐標(biāo);(U,V,W)為三維空間點P在攝像機坐標(biāo)系下的坐標(biāo),f為XY平面與圖像平面的距離,也就是我們常說的焦距,上面的關(guān)系我們?nèi)匀豢梢杂靡粋€矩陣表示,也就成像公式如下(3)所示:
基于深度信息的虛擬視點生成需要經(jīng)歷三個步驟,原始數(shù)據(jù)預(yù)處理、反向投影,以及重投影三個過程??梢岳米笥乙晥D的紋理圖像以及深度圖像還有相機內(nèi)參等信息合成中間虛擬視點的圖像。
本文所需的數(shù)據(jù)有原始圖像,深度圖像,以及每個相機的內(nèi)參矩陣等。一般來說,其它數(shù)據(jù)我們都可以很容易得到,但是深度數(shù)據(jù)的獲取卻是一個難點問題。正常情況下,我們可以通過特有的深度相機獲取深度數(shù)據(jù),但是由于深度相機價格高昂,無法滿足一般用戶的需求。其次我們可以通過某些深度估計算法進(jìn)行數(shù)學(xué)計算獲得,這種方法不僅簡便且易用,因此成為當(dāng)前最流行的方法,而且是當(dāng)前研究的熱點之一。
不過用數(shù)學(xué)方法計算深度數(shù)據(jù)雖然簡便,卻存在一些問題,在圖像的特定區(qū)域上會存在錯誤的值,這是由于深度估計過程中的局部特性導(dǎo)致的。當(dāng)我們在實驗中使用了這些錯誤的數(shù)據(jù)之后可能會在虛擬圖像上產(chǎn)生各種視覺偽影。為了解決這個問題,我們想到了預(yù)處理深度數(shù)據(jù)。我們使用一個中值濾波器代替均值濾波器因為均值濾波的結(jié)果是產(chǎn)生一個新的像素值,產(chǎn)生的這個像素值在原始的深度圖像上是不存在的,所以會降低繪制質(zhì)量。
前面我們說過相機成像原理,可以看做三維坐標(biāo)向二維映射的過程。然而這時一個信息丟失的過程,我們成像的過程中會丟失一個維度。而所謂反向投影,則可以看做這個過程的逆過程。我們需要從二維的坐標(biāo)加上圖像的深度信息,反投影到三維空間,求出圖像在三維空間下的實際坐標(biāo)。對公式(3)我們可以記 R 為公式(4),A 為公式(5)。
所以成像過程可以簡化為(x y 1)T=P(U V W)T,所謂正向投影,是我們已知p和(U,V,W)從而得到(x,y)的過程。而反向投影則正好是反過來,現(xiàn)在我們已知(x,y)和p反向求出(U,V,W)。這可以看做一個數(shù)學(xué)求逆的過程,公式如下,其中d代表深度值。
經(jīng)過反向投影我們求出了物體在三維空間的坐標(biāo),這樣我們只要再次正向投影一次就可以得到物體在虛擬視點處的坐標(biāo)了。投影公式如下所示:
本文使用的數(shù)據(jù)集來源于微軟亞洲研究院公開數(shù)據(jù)集,該數(shù)據(jù)集由8臺相機從8個角度拍攝的兩組照片,每組照片中每個角度相機均拍攝了100張連續(xù)動作的照片,并且每張照片的深度信息也有。并且微軟研究院提供給了我們8臺相機的基礎(chǔ)矩陣與旋轉(zhuǎn)矩陣等信息。
首先因為得到的結(jié)果是圖像,我們可以肉眼觀察改進(jìn)后圖像與改進(jìn)前圖像以及實際圖像的優(yōu)劣,可以通過觀察空洞,偽影以及一些其他噪點的多少來判斷實際的實驗效果。
其次我們可以使用PSNR來(Peak Signal to Noise Ratio)峰值信噪比來作為圖像質(zhì)量的衡量指標(biāo)。
其中,MSE表示當(dāng)前圖像X和參考圖像Y的均方誤差(Mean Square Error),H、W分別為圖像的高度和寬度;n為每像素的比特數(shù),一般取8,即像素灰階數(shù)為256。PSNR的單位是dB,數(shù)值越大表示失真越小。
PSNR是一種基于誤差敏感的圖像質(zhì)量評價,能夠在一定程度上反映出圖像的質(zhì)量。但是其在使用過程中并未考慮到人眼的視覺特性,因此有可能出現(xiàn)人眼主觀感覺與PSNR評價結(jié)果不一致的情況。
最后SSIM(Structural Similarity)結(jié)構(gòu)相似性,也是一種有效的圖像質(zhì)量評價指標(biāo),它可以分別從結(jié)構(gòu)、對比度、亮度三方面比較圖像的相似度。
其中uX、uY分別代表圖像X與圖像Y的平均值,σX、σY分別代表圖像X和Y的方差,σXY代表圖像X和Y的協(xié)方差,即:
C1、C2、C3為常數(shù),為了避免分母為0的情況,通常取C1=(K1*L)^2,C2=(K2*L)^2,C3=C2/2,一般取K1=0.01、K2=0.03、L=255。SSIM取值范圍為[0,1],其值越大,表示圖像失真越小,越小表示圖像失真越大。
在實際應(yīng)用中,可以利用滑動窗將圖像分塊,令分塊總數(shù)為N,考慮到窗口形狀對分塊的影響,采用高斯加權(quán)計算每一窗口的均值,方差以及協(xié)方差,然后計算對應(yīng)塊的結(jié)構(gòu)相似度SSIM,最后將平均值作為兩圖像的結(jié)構(gòu)相似性度量,即平均結(jié)構(gòu)相似性MSSIM:
通過實驗我們可以得到我們使用本文中的算法得到的結(jié)果如圖4所示,以及原圖實際結(jié)果圖3所示,我們可以看到,從宏觀上來看兩者并無太大區(qū)別。然而我們各自放大它們,觀察它們的細(xì)節(jié)效果如圖5與圖6所示,可以看到我們虛擬出來的視點圖相比原始圖片確實存在一些空洞以及偽影的問題。
另外我們以原始圖像作為參考圖像,以我們使用算法得到的虛擬視點圖像作為目標(biāo)圖像,分別進(jìn)行PSNR與SSIM檢測得到的結(jié)果如圖7所示??梢钥闯雠c我們得到的圖像已經(jīng)接近實際圖像了,但還有一定的差距。
從上面的實驗結(jié)果可以看出,我們的算法很好地得到了虛擬視點出的圖像,宏觀上看虛擬視點處的圖像與實際圖像并無太大區(qū)別。說明利用深度信息很好地彌補了了在相機成像過程中,導(dǎo)致的信息丟失的問題。但深度信息只能幫助我們解決大部分信息丟失的問題,還有一部分信息需要我們通過其他方法來解決。
圖3 原圖
圖4 結(jié)果圖
圖5 部分原圖
圖6 部分結(jié)果圖
圖7 PSNR與SSIM檢測結(jié)果
本文利用深度信息很好地解決了從二維空間到三維空間的映射,虛擬點產(chǎn)生的效果較好,雖然還有一些細(xì)節(jié)問題,如存在空洞與偽影問題。但我們的算法基本上解決了虛擬視點產(chǎn)生,后期還需要其他方法幫助我們優(yōu)化此算法。
[1]許士芳.多視點視頻編碼及虛擬視點生成[D].浙江大學(xué),2009.
[2]劉丹.自由立體顯示中虛擬視點生成算法研究與實現(xiàn)[D].天津大學(xué),2010.
[3]吳祖成.虛擬視點生成算法研究[D].浙江大學(xué),2010.
[4]王莎.基于多視點的虛擬環(huán)境生成技術(shù)研究[D].解放軍信息工程大學(xué),2007.
[5]劉海旭.面向多視點視頻的新視點合成技術(shù)研究[D].北京郵電大學(xué),2014.
[6]陳佳僑.多視點立體視頻系統(tǒng)的研究與實現(xiàn)[D].北京交通大學(xué),2016.
[7]Remco M.Dijkman,Dick A.C.Quartel,Marten J.Van Sinderen.Consistency in Multi-Viewpoint Design of Enterprise Information Systems[J].Information and Software Technology,2007,50(7).