DIBR的核心就是首先利用深度信息將參考圖像投影到三維歐式空間,然後再將三維空間點投影到虛擬攝像機的成像平面上。在計算機圖形學中被稱為3D Image Warping技術。
1.1像素坐標系和圖像坐標系如圖一所示,三維空間點在成像平面上的位置可以通過像素坐標系和圖像坐標系來表示。
在直角整數像素坐標系u-v中,每個像素的坐標(u,v)T分別代表該像素在二維圖像陣列中的列數和行數。由於此坐標系並未用物理單位表示出像素點在圖像中的實際位置,因此需要建立以物理單位表示的圖像坐標系x-y。該坐標系以圖形內某一點m為原點,x和y軸分別於u,v平行。若m在u,v坐標系中的坐標為(mu,mv),每個像素在x和y軸方向上的物理尺寸為dx,dy。則圖像中任意一個像素在兩個坐標系下的坐標有如下關係:
(1)
用齊次坐標表示為:
(2)
1.2 針孔相機模型我們考慮空間點到某一平面上的中心投影。令投影中心位於一個歐式坐標系的原點,而平面Z = f被稱為圖像平面或聚焦平面。在針孔攝像機模型下,空間坐標為X = (X, Y, Z)T的點X被映射到圖像平面上的一點,該點是連接點X與投影中心的直線與圖像平面的交點。圖3–7對此作了說明,根據相似三角形,可以很快地算出點(X, Y, Z)T被映射到圖像平面上點(fX/Z, fY /Z, f )T。因此,從世界坐標到圖像坐標的中心投影是:
(3)
這是從三維歐式空間到兩維歐式空間的一個映射。投影中心稱為攝像機中心,也稱為光心。攝像機中心到圖像平面的垂線稱為攝像機的主軸或主射線。而主軸與圖像平面的交點稱為主點,過攝像機中心平行於圖像平面的平面稱為攝像機的主平面。如果用其次矢量表示世界和圖像點,那麼中心投影可以非常簡單地表示成齊次坐標之間的線性映射。
圖2 針孔相機模型示意圖
式子3可以寫成如下矩陣形式:
(4)
該表達式中的矩陣可以寫成diag(f, f, 1)[I|0],其中 diag(f, f, 1) 是對角矩陣,而 [I|0] 表示矩陣分塊成一個 3 × 3 的恆等矩陣加上一個零列矢量。
我們現在引入如下記號:世界點X用 4 維齊次矢量 (X,Y,Z,1)T表示;圖像點x被表示成 3 維齊次矢量的形式;P 表示 3 × 4 齊次攝像機投影矩陣,這樣式4可以記為:
(5)
它定義了中心投影的針孔模型的攝像機矩陣為:
(6)
圖三顯示了攝像機坐標系和圖像坐標系。
圖3 攝像機坐標系和圖像坐標系
式 3 假定圖像平面的坐標原點在主點上,實際情況可能不是這樣,如圖3所示。此時中心投影的映射可以表示為:
(7)
其中(px, py)T是主點的坐標,該方程用齊次坐標可以表示成:
(8)
若記
(9)
則式7有一個簡潔的形式:
(10)
矩陣K稱為攝像機標定矩陣,在式(3–10)中我們記 (X,Y,Z,1)T為Xcam是為了強調攝像機被設定在一個歐式坐標系的原點且主軸沿著Z軸的指向,而點Xcam按此坐標系表示,這樣的坐標系可以稱為相機坐標系。
但有時某些 CCD 攝像機的像素可能不是正方形的。如果圖像坐標以像素來測量,那麼需要在每個方向上引入非等量尺度因子。具體地說,如果在x和y方向上圖像坐標單位距離的像素數分別是mx和my,那麼由世界坐標到像素坐標的變化由式(3–9)左乘一個附加的因子 diag(mx, my, 1)而得到。因此此類攝像機標定矩陣的一般形式是:
(11)
其中ax= fmx和ay= fmy分別把攝像機的焦距換算成x和y方向的像素量綱。同理 x 0= (u0, v0)T是用像素量綱表示的主點,它的坐標是u0= mxpx和v0= mypy。
通常空間點採用不同的歐式坐標系表示,稱為世界坐標系。世界坐標系和攝像機坐標系之間通過旋轉和平移相聯繫,參看圖4.
圖4 世界和攝像機坐標系之間的歐式表換示意圖
齊次矢量,表示世界坐標系中的某一點的坐標,而Xcam是以攝像機坐標系來表示的同一點,那麼我們可以記Xcam= R(X-C),其中 C 表示攝像機中心在世界坐標系中的坐標,R是一個3 × 3 的旋轉矩陣,表示攝像機坐標系的方位。這個方程在齊次坐標下可以寫成:
(13)
把它與式10結合起來形成公式:
(14)
為了方便起見,通常攝像機中心不明顯標出,而把世界坐標繫到圖像坐標系的變換表示成Xcam= RX + t。在該表示方式下攝像機矩陣簡化成:
(15)
根據式14不難看出,t = RC。
如圖5所示,設世界坐標系中某一空間的齊次矢量表示為 Pw=(Xw, Yw, Zw, 1)T,該點投影在參考視點圖像平面和虛擬視點圖像平面上的像素坐標分別為p1= (u1, v1, 1)T和p2= (u2, v2, 1)T。對於參考視點圖像和虛擬視點圖像的攝像機坐標系,其旋轉矩陣和平移矩陣分別記為R1,R2和t1= R1C1,t2= R2C2。
(16)
(17)
圖5 基於3D Image Warping方程的虛擬視點繪製
其中,K1,K2分別代表參考攝像機和虛擬攝像機的內參參數矩陣,而λ1,λ2則分別對應於攝像機的齊次比例縮放因子。由式16可得,空間點 Pw在三維歐式空間中坐標可以被表示為:
(18)
最終,將式18代入式17中,我們可以得到點 Pw在虛擬視點圖像上的像素坐標p2:
(19)
是攝像機縮放係數,一般取值為深度值。
2 部分代碼rows = 768 ;
cols = 1024;
numf = 1;
Color = 'Color.yuv';
Depth = 'Depth.yuv';
%Stereoscopic view generation
[L R] = cd2lr(Color,Depth,rows, cols, numf);
figure, imshow(yuv2rgb(L{1}.luma,L{1}.chroma1,L{1}.chroma2));
figure, imshow(yuv2rgb(R{1}.luma,R{1}.chroma1,R{1}.chroma2));
%Stereoscopic view generation only luma components
[L R] = cd2lrluma(Color,Depth,rows, cols, numf);
figure, imshow(uint8(L{1}.luma));
figure, imshow(uint8(R{1}.luma));3 參考文獻
4 參考文獻《自由視點立體電視系統的虛擬視點合成技術研究》