袁霞,張金沙,羅天
(成都索貝數(shù)碼科技股份有限公司,成都 610065)
隨著計算機(jī)視覺技術(shù)、圖形圖像等基礎(chǔ)技術(shù)的迅猛發(fā)展,增強(qiáng)現(xiàn)實(shí)技術(shù)也隨之被推向了研究熱潮,《“十三五”國家信息化規(guī)劃》綱要中將增強(qiáng)現(xiàn)實(shí)作為戰(zhàn)略性布局的前沿創(chuàng)新領(lǐng)域。增強(qiáng)現(xiàn)實(shí)是指在現(xiàn)實(shí)場景中疊加虛擬信息(虛擬的三維物體、圖片、視頻等)使之達(dá)到視覺上一致的效果,同時可進(jìn)行實(shí)時人機(jī)交互。增強(qiáng)現(xiàn)實(shí)技術(shù)在廣播電影電視、游戲娛樂、軍事、醫(yī)療、建筑等領(lǐng)域有廣泛的應(yīng)用。
增強(qiáng)現(xiàn)實(shí)技術(shù)的三大核心技術(shù)問題包括:幾何一致性、光照一致性和合成一致性。其中光照一致是指將虛擬物體疊加到真實(shí)場景中時,虛擬物體和現(xiàn)實(shí)物體有一致的光照視覺效果、正確的明暗關(guān)系和陰影表達(dá)。這就要求由計算機(jī)繪制的虛擬場景中的虛擬物體與自然場景中的真實(shí)物體之間互反射和陰影投射在視覺上一致。因此,光照一致性是虛實(shí)無縫融合中真實(shí)感表現(xiàn)的關(guān)鍵和前提。估計真實(shí)場景光照,并使用該光照繪制用以進(jìn)行虛實(shí)融合的虛擬物體是解決增強(qiáng)現(xiàn)實(shí)中光照一致性問題的有效手段。目前,現(xiàn)有工作大多針對光照變化較小的場景展開研究,忽略了場景中光源亮度、顏色等屬性的變化,當(dāng)真實(shí)場景中光照發(fā)生變化時,這些方法將無法獲得正確的虛實(shí)融合效果。少量工作,如Xing等人[1]提出的基于視頻幀的室外場景光照參數(shù)計算方法可在線更新場景光照,但是該方法光照模型過于簡單,忽略了來自周圍環(huán)境的間接光照因素,虛實(shí)合成結(jié)果真實(shí)感有待提高。另外,目前很少有工作研究室內(nèi)場景動態(tài)光照估計方法,因此,有必要開展真實(shí)場景動態(tài)光照分布在線估計研究。
本文針對室內(nèi)場景,提出了一套實(shí)用的動態(tài)光照采集方法。首先,利用鏡面球和普通LDR相機(jī)設(shè)計并搭建了用于采集場景動態(tài)光照的設(shè)備,基于該設(shè)備提出動態(tài)光照采集方案,該方案包含離線初始化和在線處理兩部分,離線階段主要通過光照采集設(shè)備獲取場景在特定光照條件下的HDR環(huán)境貼圖,并利用采集的貼圖計算場景中光源的位置、形狀、顏色等信息,在線處理階段則主要通過捕獲的LDR圖像實(shí)時更新包含直接光照因素和間接光照因素的場景負(fù)責(zé)光照分布,從而實(shí)現(xiàn)對于場景高質(zhì)量動態(tài)光照的估計。與現(xiàn)有光照估計方法相比,本文的主要貢獻(xiàn)在于:①設(shè)計了一種用于獲取室內(nèi)場景動態(tài)光照的設(shè)備并提出了基于該設(shè)備的場景動態(tài)光照采集方案;②提出了基于LDR圖像更新場景光照分布的算法;③采集的光照包含直接光照和間接光照因素,可生成具有較高真實(shí)感的虛實(shí)合成畫面。實(shí)驗結(jié)果驗證了本文方法的有效性。
根據(jù)光照環(huán)境的不同,將光照估計的研究工作分為室內(nèi)光照估計和室外光照估計。一般來說,室外自然場景光照受環(huán)境、氣候、場景幾何信息等條件的影響而復(fù)雜多變,增加了其研究的難度和挑戰(zhàn)。室內(nèi)場景相較于室外場景而言,光源、光照強(qiáng)度、場景幾何結(jié)構(gòu)信息和物體表面的材質(zhì)屬性等特征易于恢復(fù),其研究的成本和難度相對小一些。受此先決條件的影響,國內(nèi)外大量的研究工作集中在室內(nèi)光照的估計及其在增強(qiáng)現(xiàn)實(shí)中的應(yīng)用上。主流的光照估計大致可以分為以下四類:基于特殊設(shè)備采集的光照測量方法、基于圖像序列分析的方法、基于深度學(xué)習(xí)的光照估計方法以及基于物理材質(zhì)信息的光照估計方法。
Debevec[2]在1998年提出的利用鏡面球采集環(huán)境光照的方法作為基于設(shè)備采集光照類方法的代表,后續(xù)諸多研究者在此基礎(chǔ)上進(jìn)行了改進(jìn)和優(yōu)化。此方法利用普通相機(jī)或者魚眼相機(jī)拍攝多張不同曝光度的照片,根據(jù)文獻(xiàn)[3]合成高動態(tài)范圍圖片作為環(huán)境映照圖來存儲光照信息。Greene等人[4]等最早提出將環(huán)境映照技術(shù)作為全局光照信息渲染虛擬物體,可較好模擬物體表面鏡面反射和漫反射效果。Stao等人[5]利用場景的全景圖立體匹配技術(shù)實(shí)現(xiàn)對場景幾何的重建,然后通過采集場景的HDR全景圖實(shí)現(xiàn)對光照數(shù)據(jù)的獲取。Stumpfel等人[6]采用魚眼鏡頭拍攝天空。將采集得到的照片再通過數(shù)值矯正以獲取真正的亮度作為光照數(shù)據(jù)。這類基于設(shè)備采集光照的方法可以較為準(zhǔn)確的記錄真實(shí)場景光照分布,但是在采集時要求場景完全靜止,同時采集速度難以達(dá)到實(shí)時,無法實(shí)現(xiàn)對于場景動態(tài)光照的采集。
一般利用圖像中的陰影、明暗等先驗線索來求解場景的幾何信息和光照參數(shù)。Haber等人[7]提出一種利用一組圖像序列來估計場景光照信息,結(jié)合多視覺幾何理論恢復(fù)場景幾何信息和反射系數(shù)。Lalonde等人[8]也采用了相似的技術(shù)手段來計算場景的光照和反射信息。但是上述方法用于估計光照的圖像均是在固定光照條件下采集。Karsch等人[10]通過用戶給予少量的離線交互信息對場景幾何信息重建,并求解物體的材質(zhì)系數(shù)及光源的亮度。這類方法需要已知場景幾何信息或重建場景幾何信息,且需要離線視頻圖像序列數(shù)據(jù)的采集,計算復(fù)雜,實(shí)時性難以滿足要求。
近年來,一些學(xué)者開始利用深度學(xué)習(xí)技術(shù)來研究光照計算,Hold-Geoffroy等人[10]通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)來預(yù)測輸入天空光全景圖的HDR環(huán)境映射圖,從而估計光照參數(shù)(天空光、太陽光)。Marc-Andre等人[12]提出了一種室內(nèi)光照估計算法,利用帶深度的環(huán)境映射圖作為訓(xùn)練數(shù)據(jù)訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)來預(yù)測單張圖像的光照的位置、面積、強(qiáng)度和顏色等參數(shù),并能根據(jù)空間變化的光照渲染更真實(shí)的三維物體到自然場景中。Leg?endre等人[13]提出了一種基于手機(jī)移動應(yīng)用的深度學(xué)習(xí)估計光照的方法。但是,當(dāng)前基于深度學(xué)習(xí)的方法均以單張圖像作為網(wǎng)絡(luò)的輸入,沒有考慮視頻幀間的聯(lián)系,用于恢復(fù)視頻序列中的動態(tài)光照時易產(chǎn)生較大誤差。
這類方法一般是利用物體表面材質(zhì)信息、幾何等信息來求解光照。Sato等人[14]提出了一種根據(jù)陰影估計光照和反射信息的方法。Nishino等人[15]則利用物體表面點(diǎn)的亮度變化來將三維幾何模型分解為漫反射組件和高光反射組件,然后通過Cook-Torrance反射模型求解光照分布和反射參數(shù)。這類方法需要獲取場景幾何信息,計算過程較為復(fù)雜,難以實(shí)現(xiàn)實(shí)時計算。
綜上所述,在實(shí)際的工程應(yīng)用中,現(xiàn)有場景光照估計技術(shù)存在一定的局限性,如需要用戶交互、計算效率低,沒有考慮場景光照變化等,難以將其應(yīng)用于室內(nèi)環(huán)境復(fù)雜、光照動態(tài)變化的增強(qiáng)現(xiàn)實(shí)相關(guān)的產(chǎn)品中。本文旨在探索一種能夠解決廣播電視電影制作領(lǐng)域的增強(qiáng)現(xiàn)實(shí)應(yīng)用產(chǎn)品中的光照計算問題。這里的光照包含來直接光照和環(huán)境間接光照。
HDR圖像相較于LDR圖像,其優(yōu)勢在于可以存儲更大范圍的亮度,因此常作為環(huán)境光照數(shù)據(jù)存儲的載體。但專業(yè)的HDR相機(jī)較為昂貴,難以在工程應(yīng)用中普及。受文獻(xiàn)[2]的啟發(fā),我們在場景中放置一個光照探頭用于捕獲場景的環(huán)境光照,利用普通相機(jī)對光照探頭拍攝不同曝光度的LDR圖片來生成HDR圖作為環(huán)境映照圖。由于僅從一個角度拍攝的鏡面球照片會丟失鏡面球正后方場景內(nèi)容,且在邊緣區(qū)域造成圖像畸變,本文從兩個不同角度拍攝鏡面球并生成HDR圖,從而捕獲更加精確的場景光照信息。基于此,我們設(shè)計了一套光照數(shù)據(jù)捕獲裝置圖,如圖1所示。
(1)場景中放置一個光照探頭,一般為光滑鏡面球。
(2)以光照探頭為中心,分別在水平和垂直兩個方向放置相機(jī)。鏡面球與相機(jī)之間通過橫桿/豎桿連接,如圖1所示。
(3)調(diào)節(jié)相機(jī)、鏡面球的高度、水平/垂直距離,使得鏡面球在相機(jī)視口下清晰可見。
(4)固定相機(jī)與鏡面球的相對位置,完成調(diào)節(jié)后保持不動。
在光照采集時,將設(shè)備固定在虛擬物體放置處,捕獲過程中,設(shè)備需保持靜止?fàn)顟B(tài)。

圖1 光照數(shù)據(jù)捕獲裝置圖
一般來說,室內(nèi)周圍環(huán)境相對靜態(tài)稱其為環(huán)境光,也稱為間接光照。直接照射的光源稱為直接光照,如燈、窗戶等。本文討論的室內(nèi)場景動態(tài)光照實(shí)時計算包含直接光照和間接光照的實(shí)時計算。需要說明的是本文方法重點(diǎn)研究對于光源顏色、亮度信息的更新方法,暫不考慮光源位置的變化。
本文提出了一種魯棒的室內(nèi)場景動態(tài)光照實(shí)時估計技術(shù)。場景動態(tài)光照的估計分為離線和在線兩個階段,離線階段利用LDR相機(jī)從正前方和側(cè)面兩個角度以不同曝光度在特定光照條件先拍攝鏡面球圖像序列,從而生成場景HDR圖,借助圖像分割技術(shù)通過HDR圖計算場景中主要光源的位置、形狀、顏色信息。在線運(yùn)行階段則基于實(shí)時拍攝的鏡面球LDR圖像更新場景直接和間接光照信息,進(jìn)而實(shí)現(xiàn)對于場景動態(tài)光照的采集。
(1)場景環(huán)境貼圖采集
離線處理階段首先使用光照采集設(shè)備按照Debev?ec等人[2]的方法,通過拍攝不同曝光度的鏡面球照片獲取場景中所有可控光源全部開至最亮和所有可控光源全部關(guān)閉情況下的場景HDR環(huán)境貼圖,方便起見將其分別記為和。同時,以較低的相機(jī)曝光度獲取一張同采集MH open時光照相同,但所有光源均無過渡曝光現(xiàn)象的場景LDR環(huán)境貼圖。
(2)直接光源恢復(fù)
考慮到部分實(shí)時繪制引擎,如Unreal Engine,無法使用HDR環(huán)境貼圖作為直接光源使用,本文利用捕獲的HDR環(huán)境貼圖首先自動檢測光源,根據(jù)檢測結(jié)果對光源位置、形狀、顏色等進(jìn)行初始化。
通過分割是從背景中提取目標(biāo)物體的關(guān)鍵技術(shù)手段之一。考慮到場景中光源打開時,其位置中心處的光照亮度最亮,亮度強(qiáng)度由中心向周圍位置逐漸減弱。據(jù)此特征,可利用亮度信息來分割場景中的光源,從而提取光源在中的位置及范圍。分割的目標(biāo)是從圖像中提取出。本文采用基于亮度優(yōu)先的自適應(yīng)閾值分割[16]方法。

如公式(1)所示,先將彩色圖像轉(zhuǎn)化為灰度圖G,G中的像素g(x,y)表示亮度信息,值越大,亮度越大。T為分割的閾值,當(dāng)g(x,y)>T表示光源,反之則不是光源。閾值T的求解是從場景中分割光源的關(guān)鍵,本文采用Otsu算法來自適應(yīng)求解T。該算法對于灰度圖可以取得較好的結(jié)果且算法效率高,其主要思路為:找到一個閾值T分割出目標(biāo)與非目標(biāo)兩類,使得兩類像素之間的方差最大。
為了消除噪聲的影響。對于分割后的二值圖像,先進(jìn)行濾波去噪操作,再尋找圖像中各區(qū)域Fi,(i=1,2,…,n)的輪廓,計算其對應(yīng)面積Si,當(dāng)Si≤t時認(rèn)為該區(qū)域不是光源;其中t為最小光源面積。當(dāng)Si>t則被認(rèn)為有效光源,負(fù)責(zé)忽略該區(qū)域。記最終保留的區(qū)域為Fi(i=1,2,…,m),F(xiàn)i對應(yīng)與光源Li
為計算光源信息,本文假設(shè)場景位于一個長方體盒子內(nèi),盒子的邊長可由用戶根據(jù)場景實(shí)際尺寸設(shè)定,光源則嵌在盒子各面上,光源采集設(shè)備則位于盒子底面中心處。對于Li,可計算其對應(yīng)光源區(qū)域Fi的質(zhì)心Pi,根據(jù)Pi在環(huán)境貼圖中的位置確定光源入射方向r,從盒子底面中心延r發(fā)射一條射線,其同盒子的交點(diǎn)即為Li的位置,光源朝向與其所在立方體表面方向相同,而形狀則為光源區(qū)域Fi的包圍盒對應(yīng)于立方體盒子上的區(qū)域,光源的初始顏色則為環(huán)境貼圖區(qū)域Fi中像素R、G、B通道的平均值。
對于光照的更新主要分為對直接光源的更新和對周圍間接環(huán)境光照的更新。
(1)直接光源更新
為了實(shí)時監(jiān)控光照的變化,在線運(yùn)行時,光照采集設(shè)備需要以同采集時相同的曝光度采集場景當(dāng)前LDR環(huán)境貼圖,由于曝光度較低,中一般也不存在過度曝光像素。通過比較兩張LDR圖中光源區(qū)域的信息,即可更新場景中的光源顏色,其計算公式如下:

其中為區(qū)域Fi中像素,‖F(xiàn)i‖表示區(qū)域Fi中像素個數(shù),λ對應(yīng)于R、G、B三個顏色通道,和分別對應(yīng)光源λ通道當(dāng)前和初始顏色值,和則表示像素pj在圖像和中λ通道的值。在捕獲時,為獲得較低的曝光度,會采用很快的快門速度,因此可實(shí)現(xiàn)對于場景光源的實(shí)時更新。
(2)間接環(huán)境光照更新
光源的顏色、亮度也會造成周圍環(huán)境發(fā)生變化,為了更新場景間接光照,一種較為準(zhǔn)確的方法是,在離線階段以正常曝光度采集一張光源全部調(diào)至最亮的LDR環(huán)境貼圖,在線運(yùn)行時,使用與光源更新類似的方法,通過比較同曝光度下在線拍攝LDR環(huán)境貼圖同離線采集貼圖即可實(shí)現(xiàn)對于周圍環(huán)境光照的更新。但是,拍攝正常曝光的LDR貼圖會使用較慢的快門,大大降低了光照更新的效率,難以滿足實(shí)時要求。為此,本文提出了一種高效的近似環(huán)境光更新策略,沿用3.2(2)小節(jié)中的符號,首先計算光源的平均變化系數(shù)ω(λ):

將ω(λ)作為組合系數(shù),通過線性組合和實(shí)現(xiàn)對于當(dāng)前間接光照的更新,具體公式為:

其中為當(dāng)前HDR光照環(huán)境貼圖,為環(huán)境貼圖中非光源區(qū)域的像素,λ對應(yīng)于R、G、B三個顏色通道。
為了驗證算法得正確性,本文搭建了一套基于演播室場景AR應(yīng)用,即在現(xiàn)實(shí)演播室場景中植入虛擬物體,并實(shí)時采集演播室的光照數(shù)據(jù),用于渲染虛擬物體,使得虛擬物體更加逼真地融入到演播室場景中。圖2展示本文使用的光照采集設(shè)備,其中圖2(a)為光照捕獲裝置,其中標(biāo)記為1、2的分別為水平/垂直兩個相機(jī),標(biāo)記為3的為光照探頭(光滑鏡面球),圖2(b)、2(c)分別兩個相機(jī)視角下的拍攝的光照探頭圖像。

圖2 場景光照采集裝置
圖3是通過光照捕獲裝置采集合成的環(huán)境映照圖,圖3(a)為場景中所有直接光源打開狀態(tài)下的環(huán)境映照圖,圖3(b)為場景中所有光源關(guān)閉狀態(tài)下的環(huán)境映照圖。

圖3 Tonemapping后的環(huán)境映照圖(經(jīng)緯圖)
一般情況下,由于直接光源光照的強(qiáng)度遠(yuǎn)遠(yuǎn)大于場景周圍物體,所以通過亮度自適應(yīng)閾值分割即可分割出直接光源,進(jìn)而識別出光源并給每個直接光源標(biāo)記編號。經(jīng)過多次實(shí)驗數(shù)據(jù)對比,與真實(shí)場景光源位置的平均誤差在1.5%范圍內(nèi)。圖4所示為識別出的直接光源和真值的對比。

圖4 識別的場景直接光源與真值對比
將計算的光照數(shù)據(jù)直接用于渲染虛擬物體,并與真實(shí)的背景進(jìn)行合成,從而驗證本算法計算的光照數(shù)據(jù)的顏色、強(qiáng)度的正確性。在普通PC上(Intel Xeon CPU e5-1603v4@2.8GHz,NVIDIA P2000),本文算法采集光照的效率可以達(dá)到實(shí)時(20ms/frame)。本文實(shí)驗過程中對于虛擬物體的渲染采用Unreal Engine4引擎,將實(shí)時計算場景的光照傳送給渲染引擎,渲染虛擬物體;最終渲染輸出4K幅面的AR合成視頻幀率可達(dá)50fps。
本文搭建的演播室場景中,包含了普通面光源,以及色彩可自動改變的彩色光源;設(shè)計的內(nèi)容為:虛擬汽車從大屏穿屏而出,演播室各光源的強(qiáng)度、色彩可以任意改變,虛擬汽車的光照效果隨著場景光照的變化而變化。圖5中僅紅色汽車為虛擬物體,其余部分為演播室實(shí)景。圖5.a和圖5.b分別為正常光照下虛擬汽車從大屏穿出后開到演播室的效果;圖5.c為場景光照變暗后,虛擬汽車的光照效果及其陰影也隨之變暗;圖5.d、圖5.e、圖5.f為場景光照任意改變顏色后,虛擬汽車材質(zhì)表面及其陰影的變化效果,均能實(shí)時反映場景中光照顏色的變化。通過本文算法實(shí)時采集演播室場景光照,并用于渲染虛擬汽車,再將虛擬汽車植入演播室場景,從而保證了虛擬物體與真實(shí)演播室場景具備一致的光照視覺效果。

圖5 虛擬物體植入演播室場景(實(shí)時改變場景光照)
本文提出了一種室內(nèi)場景動態(tài)光照在線采集方法。首先基于鏡面球和普通相機(jī)設(shè)計并搭建了一個光照采集設(shè)備,基于該設(shè)備在離線階段捕獲場景光源全開和全關(guān)條件下的場景HDR環(huán)境貼圖并估計場景中光源的位置、形狀、顏色信息,在線階段則通過設(shè)備獲取的當(dāng)前場景LDR環(huán)境貼圖更新場景中直接光源和間接環(huán)境光照信息,進(jìn)而實(shí)現(xiàn)對場景動態(tài)光照的采集。
但是,本文工作還存在不足之處,首先,本文工作無法處理光源位置發(fā)生變化時的動態(tài)光照采集;另外,算法對于環(huán)境光的更新存在一定誤差,還需要做進(jìn)一步改進(jìn)。