賈振堂,霍 濤
(上海電力學(xué)院通信工程系,上海200090)
由于裸眼3D在觀看時(shí)不需要佩戴眼睛,且可以采用多視點(diǎn)手段,讓用戶從不同的視角看到物體的不同側(cè)面,因此更加具有真實(shí)感。因此,裸眼3D正在被逐步應(yīng)用于很多領(lǐng)域。然而,目前也有很多制約裸眼3D發(fā)展的因素,其中片源是其中一個(gè)重要的方面。
對于大多數(shù)3D內(nèi)容,通常可以采用3DMAX等3D創(chuàng)作工具軟件來設(shè)計(jì)制作[1],通過多臺(tái)虛擬攝像機(jī)共同拍攝,從而很方便地得到多視點(diǎn)的視頻內(nèi)容。但是,對實(shí)際生活中的某些實(shí)際場景和對象,用戶如果需要看到真實(shí)3D效果,就很難用創(chuàng)作工具來建模制作,這就需要通過攝像機(jī)的真實(shí)拍攝和處理來得到。
然而,如何進(jìn)行拍攝和處理才可以達(dá)到預(yù)期的目的,使得特定的場景內(nèi)容重建在特定的深度位置上?本文分析了拍攝和顯示過程中可能遇到的問題,給出了具體的設(shè)計(jì)和計(jì)算方法,從而使得拍攝和顯示的效果可以預(yù)料和控制。
3D視覺效果,來自于左右眼的視差[2]。如圖1,OL和OR是同一物點(diǎn)O在左右兩個(gè)圖像中的像,O'是O的視覺重建。當(dāng)處于圖1a的情況時(shí),右眼看到的圖像在左邊、而左眼看到的圖像在右邊,兩個(gè)視線的交點(diǎn)就是在大腦中感覺到的重建像O'的虛擬3D位置,這時(shí)是凸出到屏幕前面,為負(fù)深度。類似地,圖1b中,OL和OR位于屏幕的同一位置,虛擬重建像點(diǎn)O'也與它們一樣位于同一位置,即在屏幕的表面上,為0深度。而圖1c中,O'則在屏幕的表面的背后,為正深度。
圖1 3D顯示原理
裸眼3D的原理是在不帶眼鏡的情況下,通過某種方法讓左右眼分別看到具有視差的兩幅圖像,從而在大腦中感覺到深度層次的存在(如圖1所示的原理)[3-4]。通常會(huì)將從不同視角拍攝的多幅圖像融合顯示在一個(gè)平面顯示器上,并采用狹縫光柵或者柱狀透鏡光柵的方法來將它們分別投射到左右眼中,即“分像”作用。
圖2中是3個(gè)視點(diǎn)的例子,人眼處于圖中的位置時(shí),左眼看到的全部是畫面2的像素,而右眼看到的全部是畫面3的像素,它們構(gòu)成一個(gè)圖像對,即圖像2-3。人眼左右移動(dòng),左右眼就可以分別看到圖像對2-3、3-1和1-2。因此只要相鄰畫面為具有一定視差的畫面,人們就可以看到立體視覺效果[5]。
圖2 狹縫光柵的多視點(diǎn)顯示原理
因此,在顯示的一幅平面圖像中,適當(dāng)?shù)匕才鸥鱾€(gè)圖像的像素排列,通過圖2的原理達(dá)到“分像”的效果;同時(shí),同一物點(diǎn)的像在各分圖中位于不同的坐標(biāo)位置,通過圖1的原理達(dá)到3D的視覺效果。
3D拍攝通常有兩種相機(jī)配置方法,即平行相機(jī)和匯聚攝像機(jī)[2]。由于匯聚攝像系統(tǒng)必然產(chǎn)生圖像內(nèi)容的梯形變化,需要更為復(fù)雜的后處理。這里選擇平行攝像機(jī)配置為例。
平行相機(jī)系統(tǒng)中,多個(gè)攝像機(jī)的光心位于一條直線上,光軸互相平行。各個(gè)相機(jī)拍攝的圖像將最終作為裸眼3D顯示的“分圖像”。由于3D重現(xiàn)時(shí),人眼在同一時(shí)刻只看到相鄰的兩幅圖像,因此下面取任意兩臺(tái)相鄰攝像機(jī)來研究,例如C0和C1(見圖3)。
圖3 空間點(diǎn)P在兩臺(tái)相鄰的攝像機(jī)中的像
設(shè)在世界坐標(biāo)系中的物點(diǎn)P(X,Y,Z),攝像機(jī)C0的光心位置為C0(0,0,0)。攝像機(jī)的圖像平面垂直于Z軸,在此平面中建立圖像平面坐標(biāo)系(x,y),x軸和y軸的方向分別與X,Y方向平行,坐標(biāo)原點(diǎn)位于圖像的中心。設(shè)點(diǎn)P(X,Y,Z)在C0像平面坐標(biāo)系中的像點(diǎn)坐標(biāo)為p0(x0,y),則有
式中:f為攝像機(jī)的焦距,即光心與像面的距離。
假設(shè)另一臺(tái)同樣規(guī)格的攝像機(jī)的位置為C1(B,0,0),B>0,與第一臺(tái)攝像機(jī)平行放置,間距為B。設(shè)同一物點(diǎn)P(X,Y,Z)在該攝像機(jī)的像平面坐標(biāo)系中的像點(diǎn)為p1(x1,y),其y坐標(biāo)與p0(x0,y)中的相同,x1坐標(biāo)為
把拍攝到的兩幅畫面重疊放置時(shí),p1和p0并不重合,而是有一定的相對位移dx=x1-x0,這就是視差。實(shí)際上,在3D重現(xiàn)時(shí),由于顯示器的尺寸可能隨時(shí)變化,因此引入顯示放大倍數(shù)k,即在顯示屏幕上的實(shí)際視差物理位移為
可見,當(dāng)k,B,f固定時(shí),dx'與Z成反比關(guān)系,因此視差dx記錄了深度Z信息。
在進(jìn)行裸眼3D顯示時(shí),全部N個(gè)相機(jī)拍攝的圖像將被重疊顯示在一個(gè)屏幕上(當(dāng)然觀看時(shí)要經(jīng)過光柵的分像處理,這里不詳細(xì)討論)。為論述方便,這里為重建系統(tǒng)建立坐標(biāo)系(X',Y',Z'),原點(diǎn)位于顯示器的屏幕中心,Z'軸指向屏幕背后,如圖4所示。設(shè)重建的虛擬物點(diǎn)為P'(X',Y',Z'),根據(jù)幾何關(guān)系,則無論視差為正還是為負(fù),都可以推導(dǎo)出如下關(guān)系
式中:D為觀看距離,即人眼到屏幕的距離(無符號(hào)數(shù));E為人的左右眼間距(無符號(hào)數(shù)),而Z'和dx'為有符號(hào)數(shù)。在某一觀看位置,人眼只被允許看到由相鄰分圖像組成的圖像對,比如I0和I1,I1和I2,I2和I等。然而,人眼對左右圖像的不同觀察次序?qū)?huì)導(dǎo)致不同的視覺效果。
圖4 同序觀看的情況
假設(shè)讓左邊的眼睛看到左邊相機(jī)拍攝的圖像(如I0),右眼看到右眼相機(jī)拍攝的圖像(如I1),即同序觀看,如圖4所示。
則重建的虛擬像點(diǎn)P'將位于屏幕和人眼之間,亦即具有負(fù)深度。式(3)即描述了這種關(guān)系,將式(3)代入(4),則
由于Z∈(f,∞),可知Z'∈(-,0),Z'全部為負(fù)深度,因此所有物體都被壓縮顯示于屏幕和人眼之間,并且深度次序是正確的。
反過來,讓左邊的眼睛看到右邊相機(jī)拍攝的圖像(如I1),右眼看到左邊相機(jī)拍攝的圖像(如I0),即反序觀看,則像點(diǎn)P'將位于屏幕之后,如圖5所示。
圖5 反序觀看的情況
這時(shí)有
從幾何關(guān)系上明顯看出:如果dx'≤E,則視線無法在眼睛前方匯聚。因此必須有dx'<E,將式(6)代入可得
由式(8)和(7)可知,Z'>0,即所有物體都被壓縮顯示于屏幕之后的一段距離內(nèi)。并且深度次序是逆轉(zhuǎn)的,即實(shí)際上遠(yuǎn)的物體看起來近,而近的卻看起來遠(yuǎn)。因此,這種模式不能得到正確的視覺效果。
根據(jù)上文的討論,應(yīng)該選擇同序觀看方式,以便得到正確的觀察結(jié)果。
然而,即使在這種方式下,所有重建對象都凸出在屏幕前方,會(huì)影響顯示效果。因?yàn)樵诂F(xiàn)有的多視點(diǎn)顯示技術(shù)中,虛擬位置偏離屏幕表面時(shí),都會(huì)帶來分圖像之間的交調(diào)現(xiàn)象,偏離屏幕越遠(yuǎn)交調(diào)現(xiàn)象越嚴(yán)重。這是實(shí)際顯示過程中難以避免的。因此,希望將重建對象的虛擬位置整體向屏幕后方移動(dòng),以便使最重要的重建內(nèi)容位于屏幕的表面,即顯示坐標(biāo)系中的0深度,而整體場景以屏幕表面為中心在深度上前后分布,從而得到最佳的視覺效果。如圖6所示。
假設(shè)世界坐標(biāo)中Z=Z0處的物體虛擬顯示在屏幕表面,則Z0的重建虛擬深度Z0'=0,或者對應(yīng)的視差為0。為此,將畫面左右相對平移Δx,使得Z0處的物點(diǎn)對應(yīng)的屏幕視差為0,即可達(dá)到目的。即令dx'Z=Z0+Δx=0,結(jié)合式(3)得
式中:K0=fk/Z0。例如對于圖像對I0和I1,需要將I0向左平移|Δx|,或者將I1向右平移|Δx|。裸眼3D的分圖像(即視點(diǎn))數(shù)通常采用5~9個(gè),則每一對相鄰視圖之間都要做相對平移。以5視點(diǎn)為例,即分圖像為I4,I3,I2,I1,I0??蛇x擇中間的圖像I2不作移動(dòng),而左邊攝像機(jī)的圖像 (I0,I1)都向左移動(dòng),即I1左移|Δx|,I0左移2|Δx|,右邊攝像機(jī)的圖像都向右移動(dòng),即I3右移|Δx|,I4右移2|Δx|。平移后,物體的重建虛擬深度Z'變?yōu)?/p>
由于f/Z0為拍攝時(shí)的縮小比例,k為顯示時(shí)的放大比例,因此K0為綜合的縮放比例,即:中心物面Z0處的物體真實(shí)尺寸與其屏幕顯示尺寸的變換比例。設(shè)空間物體的實(shí)際尺度為S,它在屏幕上顯示的物理尺度為S',則有
比如Z0處有一個(gè)直徑10 cm的球,其在屏幕上顯示的實(shí)際尺寸也是10 cm,則K0=1,如果在屏幕上顯示為5 cm,則K0=0.5。這提供了一種從宏觀角度估算平移像素?cái)?shù)量的方法,即首先測量S'和S,并計(jì)算K0,然后根據(jù)K0計(jì)算Δx。
擬拍攝的場景中包括坐在椅子上翹起腿的人物,人物后面的桌子以及桌子上的茶杯,桌子后面是白色的墻壁,如圖7所示。選擇5視點(diǎn)系統(tǒng),采用上海狼影通信技術(shù)有限公司出品的21.5 in(1 in=2.54 cm)狹縫光柵裸眼3D顯示器,點(diǎn)距離0.248 mm,顯示分辨率為1 920×1 080。
采用5臺(tái)攝像機(jī)同時(shí)拍攝,攝像機(jī)配置為B=60 mm。拍攝畫面如圖8所示。
圖7 拍攝場景布局
圖8 5臺(tái)攝像機(jī)的畫面
作為例子,選擇人物為核心對象,也就是顯示的時(shí)候希望把人物顯示在屏幕的表面,來估算像素平移的數(shù)目,處理步如下:
1)測量人物的實(shí)際高度。人物坐下來的實(shí)際高度為S0=1 250 mm。
2)測量人物在顯示器上的高度。把其中任意一個(gè)圖片顯示在屏幕上,并測量人物的高度,約為200 mm。
3)計(jì)算K0,K0=S'/S=0.16 。
4)計(jì)算畫面平移的物理距離為Δx=K0B=9.6 mm。
5)計(jì)算折合像素?cái)?shù)n=Δx/0.248=38.7像素。
據(jù)此,進(jìn)行圖像的平移與3D合成,合成的方法見參考文獻(xiàn)[5],這里不再詳述。合成后的效果如圖9c所示。
圖9a是原始圖像的直接合成,沒有做平移處理,這時(shí)的重建畫面都虛擬顯示在屏幕的前方,由于大部分內(nèi)容的視差較大,圖像交調(diào)現(xiàn)象明顯,視覺效果不好。圖9b是平移28像素的合成情況,杯子的視差為0,杯子顯示在屏幕表面,最為清晰,而人物的視覺效果依然不佳。圖9c為平移38像素的情況,人物縱向中心(例如右手)位置的視差為0,各個(gè)分圖像的這部分內(nèi)容完全重合在一起,人物中心虛擬重建在屏幕的表面,杯子和雙腳分布在屏幕的后面和前面,這時(shí)畫面的整體3D視覺效果比較好。
在實(shí)際的拍攝處理過程中,由于計(jì)算和測量的誤差,需要在合成軟件中為用戶提供中心物面的選擇機(jī)會(huì),并依據(jù)實(shí)際視覺效果進(jìn)行畫面平移量的微調(diào)。
本文分析了3D拍攝過程中可能遇到的技術(shù)問題,詳細(xì)討論了平行攝像機(jī)系統(tǒng)下,從拍攝到屏幕重現(xiàn)的原理、不同的顯示方法所帶來的不同效果,以及重建視覺深度的調(diào)節(jié)方法,給出了具體的計(jì)算關(guān)系。該方法不僅適合于靜態(tài)圖像的處理,也適合動(dòng)態(tài)場景的設(shè)計(jì),比如將舞臺(tái)中心作為中心物面,則舞臺(tái)上的人物活動(dòng)的整體視覺效果都會(huì)比較好。作為一個(gè)例子,總結(jié)了具體深度要求下的圖像平移像素?cái)?shù)目的估算步驟,實(shí)驗(yàn)顯示了計(jì)算的正確性,為裸眼3D的內(nèi)容拍攝者提供參考。
:
[1]杜江,劉文文.基于自由立體顯示的3DMAX立體顯示功能的實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2007(7):30-31.
[2]賈振堂,張俊峰,韓艷芳.Windows環(huán)境下的立體視頻測試平臺(tái)技術(shù)[J].電視技術(shù),2007,31(9):80-83.
[3]王瓊?cè)A.3D顯示技術(shù)與器件[M].北京:科學(xué)出版社,2011.
[4] JAVIDI B,MYUNGIIN C.3D imaging and visualization:an overview of recent advances[C]//Proc.12th Workshop on Digital Object Identifier.[S.l.]:IEEE Press,2013:1-3.
[5] JIA Zhentang,HAN Yanfang.3D mouse realization in autostereoscopic display[C]//Proc.Multimedia and signal Processing Seconds International Conference.Shanghai:[s.n.],2012:367-374.