孫博文 孫健 唐貝貝
摘?要:增強(qiáng)現(xiàn)實(shí)中的光照一致性是使虛擬物體獲得真實(shí)感的重要手段,它能使計(jì)算機(jī)生成的虛擬物體很好的融合到真實(shí)場(chǎng)景當(dāng)中。為了更好的實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)系統(tǒng)中的光照一致性,對(duì)現(xiàn)有的光源檢測(cè)算法進(jìn)行改進(jìn),提出一種基于單標(biāo)記的實(shí)時(shí)場(chǎng)景光源檢測(cè)算法。該方法通過采集識(shí)別標(biāo)記在各個(gè)方位的亮度信息確定出光源的方向;通過識(shí)別標(biāo)記和虛擬物體之間的亮度對(duì)比確定光源的亮度;通過獲取標(biāo)記物上未噴墨部分的顏色,確定光源的顏色。實(shí)驗(yàn)證明,在滿足增強(qiáng)現(xiàn)實(shí)應(yīng)用的實(shí)時(shí)性和穩(wěn)定性的同時(shí),使用本文的光源檢測(cè)算法所估計(jì)出的虛擬光源與真實(shí)光源方向之間的角度差值平均在4.3度,并可以使虛擬物體正確的產(chǎn)生陰影。
關(guān)鍵詞:光源檢測(cè);光照一致性;虛實(shí)融合;增強(qiáng)現(xiàn)實(shí)
DOI:10.15938/j.jhust.2018.06.024
中圖分類號(hào): TP316.2
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 1007-2683(2018)06-0133-05
Abstract:The illumination coherence in augmented reality is an important means that makes virtual objects get realistic. It can make the computer-generated virtual objects blend into the real scene.?In order to archieve the illumination coherence of augmented reality?this paper modifies the present algorithm and proposes a algorithm based on single tag.?This new method collects the brightness of the identification marking in any direction to make sure which direction the light source might be; it compares the brightness of the identification marking with the brightness of the virtual objects to ensure the brightness of the light source; it determines the color of the light source by getting the color of the marker portion of no inkjet.?Experiments show that in meet the real-time and stability at the same time,the average angle between the virtual light source which is estimated by using the algorithm in this paper and the true source is 4.3 degrees,and the virtual objects can correctly cast shadows.
Keywords:lighting detection; illumination coherence; combination of virtual and real objects; argument reality
0?引?言
增強(qiáng)現(xiàn)實(shí)[1]augmented reality,AR)是虛擬現(xiàn)實(shí)技術(shù)的拓展,通過把計(jì)算機(jī)生成的虛擬對(duì)象與真實(shí)環(huán)境融為一體的方式來增強(qiáng)用戶對(duì)真實(shí)環(huán)境的理解和體驗(yàn)[2]。目前,增強(qiáng)現(xiàn)實(shí)在醫(yī)療衛(wèi)生、軍事仿真、工業(yè)維修、教育娛樂等方向均具有廣泛的應(yīng)用前景。高度真實(shí)感的AR效果主要體現(xiàn)在幾何一致性、光照一致性和時(shí)間一致性等三個(gè)方面[3],其中幾何一致性是指真實(shí)場(chǎng)景和虛擬物體有正確的位置、透視和遮擋關(guān)系;光照一致性是指虛擬物體與真實(shí)場(chǎng)景之間有正確的陰影、明暗等光照匹配關(guān)系;時(shí)間一致性是指真實(shí)物體與虛擬物體的運(yùn)動(dòng)相互協(xié)調(diào)。隨著幾何一致和時(shí)間一致的越發(fā)完善[4-5],研發(fā)人員開始把注意力轉(zhuǎn)向增強(qiáng)現(xiàn)實(shí)場(chǎng)景的真實(shí)感上,而解決虛擬物體與真實(shí)場(chǎng)景之間的光照一致性問題是實(shí)現(xiàn)真實(shí)感的重要手段[6]。Tommy Jensen等人提出了一種基于無標(biāo)志物的增強(qiáng)現(xiàn)實(shí)虛實(shí)光照融合方法[7]。Claus B.MadSen等人提出了一種基于GPU虛實(shí)光照融合方法[8]。Jean-Fran-cois Lalonde等人提出了一種基于視頻圖像剪貼庫的虛實(shí)光照融合方法[9]。國內(nèi)在增強(qiáng)現(xiàn)實(shí)中的光照一致性方向的研究也有一定的成果,姚遠(yuǎn)等人提出了基于定位標(biāo)記的實(shí)時(shí)場(chǎng)景光源檢測(cè)算法[10]。譚茗等人提出了基于動(dòng)態(tài)light map的增強(qiáng)現(xiàn)實(shí)光照算法[11]。
但是以上算法中,Tomm Jensen所提出的方法只能處理單個(gè)真實(shí)光源且需要知道場(chǎng)景的粗略三維模型和HDRI(high dynamic range image)環(huán)境圖。Claus B.MadSen所提出的方法要求場(chǎng)景光照不變并且攝像機(jī)視角不能發(fā)生任何變化。Jean-Francois Lalonde所提出的方法只適用于處理靜態(tài)固定視角的視頻。姚遠(yuǎn)等人提出的方法需要在場(chǎng)景中放置多個(gè)標(biāo)記,確定光源的步驟比較繁瑣。譚茗等人提出的方法由于需要在光源位置發(fā)生變化時(shí)更新light map,故不具有較好的實(shí)時(shí)性。
綜合以上論述,已有的光照一致性研究方法中,都存在一定的不足。本文對(duì)姚遠(yuǎn)等人提出的基于定位標(biāo)記的實(shí)時(shí)場(chǎng)景光源檢測(cè)算法進(jìn)行改進(jìn)。研究一種基于單標(biāo)記光源位置檢測(cè)算法。在姚遠(yuǎn)等人提出的算法的基礎(chǔ)上將多標(biāo)記改為單標(biāo)記,從而簡(jiǎn)化了場(chǎng)景和操作,使場(chǎng)景更加美觀,操作更容易。本文所提算法根據(jù)識(shí)別標(biāo)記估計(jì)出光源的位置和顏色。然后利用陰影體方法繪制陰影。該方法不需要輔助硬件且具有較好的實(shí)時(shí)性。
1?基本問題定義
定義1(能量)用符號(hào)Q表示,單位焦耳(J),每個(gè)光子都具有一定的能量,且和頻率相關(guān),頻率越高,能量也越高。
輻照度和輻出度都可以稱為輻射通量密度。
定義4(立體角)立體角是以圓錐體的頂點(diǎn)為球心,半徑為r的球面被錐面所截面積A比上半徑的平方所得。用符號(hào)ω表示,定義為A/r2。
定義6(BRDF)BRDF定義公式為。其中f是BRDF,l是入射光方向,v是觀察方向,是表面反射到v方向的反射光的微分輻射率,是表面上來自入射光方向l的微分輻照度。
2?基于單標(biāo)記的光源檢測(cè)算法
2.1?光照模型
真實(shí)場(chǎng)景的光照情況非常復(fù)雜,大部分光線來自于各種物體表面的漫反射。經(jīng)測(cè)試發(fā)現(xiàn),由一個(gè)或多個(gè)光源產(chǎn)生的光照即可使得虛擬物體產(chǎn)生存在感。因此,本文忽略環(huán)境光的影響,只研究一個(gè)和兩個(gè)光源照射下的虛擬物體在真實(shí)空間下的光照一致性。
根據(jù)上述定義,物體表面上某個(gè)點(diǎn)的反射輻射率可以表示為[11]:
其中為物體表面的BRDF,l是光源的入射方向,v為觀察者方向,是來自方向l的入射光的輻射率,代表入射光與表面法線方向的夾角,是微分立體角。當(dāng)物體表面為漫反射表面時(shí),可以認(rèn)為是一個(gè)常數(shù)。
從上述公式可以看出,當(dāng)物體表面為漫反射表面時(shí),反射光的輻射率只與入射光的輻射率和入射光與表面法線方向的夾角有關(guān)。也就是說,當(dāng)光源強(qiáng)度一定時(shí),漫反射表面的反射輻射率成正比,與觀察角度無關(guān)。
另外,輻射率不會(huì)隨著距離變化而衰減,這是因?yàn)殡S著距離變大。我們看物體表面的某一區(qū)域時(shí)到達(dá)眼睛的通量密度在逐漸變小,但由于距離變遠(yuǎn),該區(qū)域在視網(wǎng)膜上的立體角也會(huì)變小,抵消了通量密度的變化。由此得出結(jié)論,物體表面的反射輻射率與觀察者離物體的距離無關(guān)。
綜上所述,漫反射表面的反射輻射率在光源一定時(shí),與觀察者的角度以及觀察者和被觀察物體之間的距離無關(guān),只與光源入射方向與識(shí)別標(biāo)記表面法向的夾角有關(guān)。
在光源檢測(cè)算法中,目標(biāo)是獲得光源的方向和強(qiáng)度,由此生成一個(gè)沿此方向照射的平行光。通過對(duì)比識(shí)別標(biāo)記表面與虛擬物體表面的亮度來調(diào)節(jié)光源的亮度。
2.2?單光源方向檢測(cè)
AR場(chǎng)景中單光源檢測(cè)的目標(biāo)是為了對(duì)場(chǎng)景中單一的日光、白熾燈和日光燈創(chuàng)建相應(yīng)的虛擬光源。在本文中,方向光源、聚光燈和點(diǎn)光源統(tǒng)一作平行光處理,檢測(cè)目標(biāo)是為了獲得光源的照射方向和強(qiáng)度兩個(gè)參數(shù)。本文所使用的識(shí)別圖為一張灰度圖。
在光源位置檢測(cè)過程中通過維護(hù)一個(gè)變量來記錄識(shí)別標(biāo)記在采集過的方位中最大的亮度。
單光源方向檢測(cè)算法步驟如下:
1)維護(hù)一個(gè)變量maxBri,初始化為0。該變量記錄識(shí)別標(biāo)記在采集過程中最大的亮度。
2)首先在每一幀中將相機(jī)所采集的圖像轉(zhuǎn)換成灰度圖像并提取出感興趣區(qū)域ROI。求該ROI的平均亮度值并記其為briA。如果briA大于maxBri,則認(rèn)為平行光此時(shí)沿著識(shí)別標(biāo)記表面法線進(jìn)行照射,對(duì)平行光的方向進(jìn)行調(diào)整并更改maxBri的值為briA。
3)在對(duì)識(shí)別標(biāo)記變換了幾個(gè)方位后,如果maxBri中的值不再變化,則認(rèn)為此時(shí)平行光的照射方向即為現(xiàn)實(shí)空間中光源的照射方向。如圖1所示,假設(shè)此時(shí)maxBri中記錄的是識(shí)別標(biāo)記在方位2時(shí)的亮度值,則認(rèn)為光源沿著識(shí)別標(biāo)記在方位2時(shí)的法線方向進(jìn)行照射。
2.3?多光源方向檢測(cè)
在AR應(yīng)用中,經(jīng)常會(huì)處在多個(gè)光源的照射下,對(duì)多個(gè)光源的檢測(cè)增加了算法的復(fù)雜度。本文使用多個(gè)虛擬光源來模擬真實(shí)光源,在交互應(yīng)用之前,首先需要對(duì)場(chǎng)景進(jìn)行預(yù)處理,這樣可以將大量的在線計(jì)算轉(zhuǎn)到預(yù)處理階段,在預(yù)處理階段,我們采集識(shí)別標(biāo)記在各個(gè)法線方向的亮度。在采集過程中,遵循這樣一個(gè)原則,首先設(shè)定一個(gè)閾值β,認(rèn)為在β范圍內(nèi)的光源可以合并成一個(gè)。
多光源方向檢測(cè)算法步驟如下:
1)維護(hù)兩個(gè)大容量的數(shù)組,數(shù)組記錄相機(jī)在預(yù)處理階段所采集的法線方向以及亮度。數(shù)組記錄可能存在光源的方向。設(shè)定閾值以及一個(gè)較大的亮度值作為臨界亮度。
2)遍歷整個(gè)數(shù)組,當(dāng)某個(gè)法線方向上的亮度值大于,則認(rèn)為該方向上可能存在一個(gè)光源。找出數(shù)組中所有可能的光源方向,存入數(shù)組。
3)在數(shù)組中找到最亮的一個(gè)法線方向并認(rèn)為在該方向上存在一個(gè)光源。然后在與該法線方向夾角大于的法線方向中尋找一個(gè)最亮的法線方向,認(rèn)為在該方向上存在一個(gè)光源。重復(fù)的進(jìn)行下去,直到其中待選的法線方向的范圍與已經(jīng)確定的光源的法線方向之間的夾角都要大于。到此,所有的光源方向都已確定出來。
2.4?光源的顏色估計(jì)
在光源方向生成光源以后,光源顏色可以通過
識(shí)別標(biāo)記表面的信息獲得。對(duì)識(shí)別標(biāo)記表面未噴墨部分進(jìn)行采樣,確定光線的R,G,B分量的比值。
2.5?光源的強(qiáng)度估計(jì)
在虛擬空間中放置一個(gè)虛擬的平面,由虛擬光源對(duì)其進(jìn)行照射,設(shè)定一個(gè)閾值t。光源強(qiáng)度估計(jì)的步驟如下:
1)提取出識(shí)別標(biāo)記表面未噴墨部分,求其平均亮度,記為。求虛擬平面表面的平均亮度記為。
2)求和差的絕對(duì)值,如式2所示,差值記為s。
如果且,則對(duì)虛擬光源的強(qiáng)度增大一個(gè)量并返回步驟1。如果且,則對(duì)虛擬光源的強(qiáng)度減小一個(gè)量并返回步驟1。其他情況不做處理。
2.6?陰影生成
本文采用的生成陰影的方法為平面陰影投射方法,首先將模型的頂點(diǎn)位置信息轉(zhuǎn)換到平面坐標(biāo)系中,轉(zhuǎn)換公式如下:
其中為頂點(diǎn)的從模型空間到世界空間的變換矩陣,為頂點(diǎn)從世界空間到陰影接受平面空間的變換矩陣,為模型空間中點(diǎn)的坐標(biāo),為變換后在陰影接受平面空間中點(diǎn)的坐標(biāo)。
頂點(diǎn)坐標(biāo)變換到陰影接受平面空間后,需要將光源方向從世界空間變換到接受平面空間,公式如下:
其中為陰影接受平面中光源的方向,為世界空間中光源的方向。
經(jīng)過上述步驟后,使用三角形相似計(jì)算沿光源方向投射后的頂點(diǎn)坐標(biāo)。至此得到模型在陰影接受平面上的陰影。
3?實(shí)驗(yàn)結(jié)果與分析
本文實(shí)驗(yàn)配置為桌面臺(tái)式電腦(Intel(R) Core(TM) i7-4790K 主頻4GHz,顯卡NVIDIA GeForce GTX 980)。采用普通攝像頭采集真實(shí)場(chǎng)景的信息。
實(shí)驗(yàn)過程中,單光源的方向檢測(cè)使用2.2節(jié)描述的方法計(jì)算光源照射方向,多光源的方向檢測(cè)使用2.3節(jié)描述的方法計(jì)算光源照射方向。在真實(shí)光源的方向基本確定后,虛擬光源沿該方向?qū)μ摂M物體進(jìn)行照射,并能正確估算出光源的強(qiáng)度和顏色以及正確的生成陰影。如圖2所示,其中圖2(a)中實(shí)驗(yàn)光源為白光,圖2(b)中實(shí)驗(yàn)光源為紅光,圖2(c)中實(shí)驗(yàn)光源為黃光,圖2(d)中實(shí)驗(yàn)光源為藍(lán)光。圖中的平面圖為識(shí)別標(biāo)記,球體為計(jì)算機(jī)中的虛擬物體,水杯為真實(shí)物體。圖3為場(chǎng)景中存在兩個(gè)光源的檢測(cè)結(jié)果,可正確生成兩個(gè)陰影。
本文分別使用5個(gè)不同面片數(shù)的(2000,5000,7000,11000,13000)的模型來進(jìn)行測(cè)試,并記錄在這三種情況下的幀率。如表1所示,算法的幀率達(dá)到實(shí)時(shí)交互所需的幀率。
表2表明在10次實(shí)驗(yàn)中,每次實(shí)驗(yàn)持續(xù)一分鐘,角度差值精確到小數(shù)點(diǎn)后一位,10次實(shí)驗(yàn)測(cè)量出虛擬光源與真實(shí)光源之間的角度差的平均值為4.3度,在可以接受的誤差范圍內(nèi)。
實(shí)驗(yàn)結(jié)果表明,本文算法幀率滿足實(shí)時(shí)交互的需求。并且可以較為準(zhǔn)確的估計(jì)出光源的方向、亮度和顏色信息,并能正確的生成陰影。
4?結(jié)?論
本文對(duì)AR場(chǎng)景中的光照一致性問題進(jìn)行了深入的研究,并對(duì)基于定位標(biāo)記的實(shí)時(shí)場(chǎng)景光源檢測(cè)算法進(jìn)行了改進(jìn),提出一種單標(biāo)記實(shí)時(shí)場(chǎng)景光源檢測(cè)算法。實(shí)驗(yàn)表明,本文所提的算法能在誤差允許范圍內(nèi)準(zhǔn)確的估算出場(chǎng)景中光源的方向和顏色,并在光源方向確定后可以有效的對(duì)光源的強(qiáng)度進(jìn)行調(diào)整。但本文的算法對(duì)多光源的方向檢測(cè)有諸多的條件限制,有待于進(jìn)一步改進(jìn),以減少限制條件,增加通用性。目前,本文所提算法可以有效的應(yīng)用于單光源的增強(qiáng)現(xiàn)實(shí)場(chǎng)景中。
參 考 文 獻(xiàn):
[1]?劉萬奎,劉越.用于增強(qiáng)現(xiàn)實(shí)的光照估計(jì)研究綜述[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2016,28(2):198-205.
[2]?王貞東,馬小虎.增強(qiáng)現(xiàn)實(shí)中虛實(shí)融合光照一致性研究[D].蘇州:蘇州大學(xué),2010.
[3]?SATO I,SATO Y,IKEUCHI K.Acqiring a Radiance Distribution to Suipermpose Virtual Objects Onto a Real Scene[J].IEEE Transactions on Visualization and Computer Graphics,1999,5(1):1-12.
[4]?AZUMA R T.A Survey of Augmented Reality[J].Presence Teleoperators & Virtul Environments,1997,6(4):355-385.
[5]?VAN Krevelen D W F,POELMAN R.A Survey of Augmented Reality Technologies?Applications and Limitations[J].International Journal of Virtual Reality,2010,9(2):1-20.
[6]?滕慧舉,陳一民,黃晨,等.增強(qiáng)現(xiàn)實(shí)中的光照一致性研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,12(31):252-255.
[7]?TOMMY Jensen Mikkel,SANDBERG Andersen,CLAUS,et al.?Real-time Image Based Lighting for Outdour Argmented Reality under Dynamically Changing Illumination Conditions[J].International Conference on Computer Graphics Theory and Applications,2006:364-371.
[8]?CLAUS B Madsen,RUNE Laursen.?A Scalable GPU-based Approach to Shading and Shadowing for Shotorealistic Real-time Augmented Reality[J]. International Conference on Graphics Theory and Applications,2007:252-261.
[9]?Jean-Francois Lalonde,Srinivasa G Narasimhan,Alexei AEfros.What do the Sun and Sky Tell us About the Camera[J].International Journal of Computer Vision,2010:24-51.
[10]姚遠(yuǎn),朱淼良.增強(qiáng)現(xiàn)實(shí)應(yīng)用技術(shù)研究[D].杭州:浙江大學(xué),2006.
[11]譚茗,陳浩,孫建華.基于動(dòng)態(tài)Light Map的增強(qiáng)現(xiàn)實(shí)光照算法[J].計(jì)算機(jī)工程,2009,35(21):261-263.
(編輯:關(guān)?毅)