彭先玲, 陳一民, 黃晨
(上海大學 計算機工程與科學學院,上海 200444)
基于光線傳感器的光照一致性算法
彭先玲, 陳一民, 黃晨
(上海大學 計算機工程與科學學院,上海 200444)
為了實現(xiàn)虛實的無縫融合,光照一致性至關重要。解決光照一致性的關鍵是獲取真實場景的光照信息以及有效的場景光源估計算法,準確的光照信息和有效的光源估計算法才能保證逼真的增強現(xiàn)實效果。提出了一種適用于移動端的實時場景光源估計算法。通過移動端光線傳感器獲取的數(shù)據(jù)來進行光強函數(shù)擬合,進而用合適的光強函數(shù)推算出真實點光源的光照信息,然后利用計算機圖形學的光照算法計算真實場景光照對虛擬對象的影響,從而達到虛實融合的目的。實驗結(jié)果表明,由算法推算出的光源位置與真實光源位置誤差很小,算法效率高,適應性強。
增強現(xiàn)實; 光照一致性; 光源方向函數(shù)
增強現(xiàn)實(augmented reality, AR)技術是在虛擬現(xiàn)實(virtual reality, VR)技術基礎上發(fā)展起來,是通過計算機系統(tǒng)提供的信息來增加用戶對現(xiàn)實世界感知的技術。增強現(xiàn)實有巨大的應用潛力和發(fā)展前景,因此正越來越引起人們的關注。隨著移動端性能的不斷提高,基于移動端的增強現(xiàn)實應用也得到越來越多的重視。
增強現(xiàn)實的關鍵問題是解決虛擬物體在光照、幾何、運動三個方面符合真實環(huán)境場景。光照一致性是指虛擬物體表面的光照效果的真實感,必須符合真實光源的情況,在虛擬物體上制作出明暗、陰影等光照效果,使其能和真實環(huán)境很好地融合;幾何一致性是指虛擬物體與真實物體在空間位置上的一致性;運動一致性是指當虛擬環(huán)境中的實體模型產(chǎn)生運動時,如: 平動或旋轉(zhuǎn),虛擬環(huán)境中的實體模型的尺寸和視角都應與靜止的圖像建立的虛擬環(huán)境保持一致[1]。本文主要研究光照一致性中,光源的確定。傳統(tǒng)的陰影繪制算法主要集中在PC端[2],常用的有Franklin C. Crow 提出的Shadow Volumes[3]和Lance Williams提出的Shadow Map[4]以及這些算法的變種,如Depth Shadow Maps[5],Perspective Shadow Maps[6]等。這些算法或因算法復雜度高,或因依賴專業(yè)設備,在移動終端都不能直接使用。
另外,由于在增強現(xiàn)實環(huán)境中進行真實感渲染時,都需要一些預先設定的場景和設備,計算比較復雜,對硬件資源的要求較高,故當繪制設備為移動終端時,表現(xiàn)力欠佳。對此,本文提出了基于注冊標記和光線傳感器的實時場景光線檢測方法,直接利用移動端光線傳感器對光線的強度建立光照模型,并利用該模型對真實環(huán)境光位置和光源方向進行求解。
光照一致性涉及陰影繪制,繪制陰影前,需要指定光源的方向及光強強弱,本文利用移動設備的光線傳感器回傳的樣本數(shù)據(jù)幫助推定光源方向。
2.1 基于傳感器的移動AR光照估計
(1)
2.2 基于傳感器的移動AR光照估計改進
上述方法在確定光源方向時,把光源的方向設定為方向空間中光照強度最大的方向,也即假定移動終端的光線傳感器在轉(zhuǎn)動過程中,一定會轉(zhuǎn)動到對準光源方向的位置。實際應用中,如若移動終端活動范圍較小,導致移動終端并不會轉(zhuǎn)動到與光源方向?qū)实奈恢蒙?,這種情況下,運用上述算法估計光源位置,則會導致估計的光源位置與實時場景的光源位置存在很大偏差。改進后的算法,則會對光線傳感器的位置與光源的位置建立模型關系。即使光源處于移動終端光線傳感器轉(zhuǎn)動范圍之外,也能準確地推測出實時場景的光源位置。
2.3 基于移動端的光照一致性改進的算法
本系統(tǒng)是使用NyARToolkit 的基于標記頂?shù)墓ぞ甙M行開發(fā)的。當系統(tǒng)識別標志物后,即可以通過相機標定過程中,所取得的世界坐標與圖像坐標的變換矩陣,獲得移動端設備相對于標記坐標系的位置坐標,同時移動端設備移動時,該坐標會隨著移動端設備的移動而更新,并且由于移動端設備移動時,設備上的光線傳感器相對于光源的位置也在變化,光線照射到移動端設備的光線傳感器上的角度同時也是變化的。獲取到的光強值也隨之變化。
因此,提出通過移動端坐標值與光強值建立關系來推測環(huán)境光源方向的算法。設定注冊標記的坐標系為全局坐標系,坐標原點為注冊標記中點,這也就意味著,移動端設備的位置的坐標與方向向量坐標的數(shù)值在表示上是相同的。移動端設備的位置我們可以通過AR三維注冊過程中,相機標定過程的取得的旋轉(zhuǎn)平移矩陣取得設備當前位置坐標,根據(jù)已知坐標可以計算出設備與遠點的距離。在空間中移動中,假設移動端設備移動到了三個不同的位置,其坐標分別(x1,y1,z1)、(x2,y2,z2)和(x3,y3,z3),在這三個位置,光源照射到光線傳感器上的強度不同,移動端設備所測量得到的光強值也是不同的,記這三個位置的光強分別為I(x1,y1,z1)、I(x2,y2,z2)和I(x3,y3,z3),隨著移動端設備的移動及時間的推移,將可以采集到大量的移動端設備位置以及該位置上的光強的數(shù)據(jù),本文將利用采集到的數(shù)據(jù)擬合出光強函數(shù),求解出函數(shù)求光強取最大值時的位置作為真實環(huán)境中光源的位置。
由于實際使用時,移動端設備相對于標記物的位置可能存在較大的變化,從而采集到分散程度較大的數(shù)據(jù)點,如果用這些分散程度較大的數(shù)據(jù)擬合出一個單一的模型,則需要模型的非線性程度很高才能擬合出一個理想的光強函數(shù),為了解決這個問題,我們將采集到的數(shù)據(jù)點,按其與標記物的距離分段,再分別利用每段中的數(shù)據(jù)擬合出該段對應的光強函數(shù),即將一個大而全的模型拆分成多個小而精的模型,如圖1所示。
圖1a 空間運動圖
圖1b 算法模型圖
當移動端設備處于某個模型中時,可以通過該位置對應的模型來推測光源方向,但如果單純只用該位置對應的模型,會有可能因為該位置采集的數(shù)據(jù)不夠而導致模型準確性較差,因此我們通過將該模型與鄰近的兩個模型綜合預測來得到光源的方向。令fm(i,x,y,z)表示當移動端設備位置坐標(x,y,z)時通過模型i所推測出的光源方向向量,則如圖2.2b所示,當該設備處于模型modeli中時,最終推測的光源方向向量為式(2)。
v=w1fm(i-1,x,y,z)+w2fm(i,x,y,z)+
w3fm(i+1,x,y,z)
(2)
其中w1、w2和w3分別表示模型i-1、模型i和模型i+1的權重。
由于實際使用時,移動端設備相對于標記物的位置可能存在較大的變化,從而采集到分散程度較大的數(shù)據(jù)點。本文中將計算光源位置的模型劃分為多個小模型,假設為model1、model2、……、modeln,其中本文將距離原點等距r的位置光想傳感器數(shù)據(jù)作為一個子模型的一組樣本數(shù)據(jù),主要用于在我們設定步長為3 cm,每隔3 cm建立一個模型,如若模型中數(shù)量少于一定個數(shù),則放棄在該層子模型進行建模。由各個子模型,最后綜合各個子模型結(jié)果推測出真實環(huán)境中光源的位置。算法流程如圖2所示。
圖2 算法流程圖
2.3.1 光源方向函數(shù)擬合
隨著移動端設備的移動,將可以收集到大量如下形式的坐標與光強對應的樣本數(shù)據(jù):
如果移動端設備恰好移動到了光源和坐標原點的連線上,則這些數(shù)據(jù)中光強最大值所對應的坐標就是移動端設備在光源和坐標原點的連線上的坐標,此時光源的方向也自然易于得到,但是絕大部分情況下不會恰好移動到了光源和坐標原點的連線上,也無法得知采集到的數(shù)據(jù)中光強最大時的坐標是否就是這種情形。本文將利用采集到的數(shù)據(jù)對移動端設備坐標和光強進行函數(shù)擬合,以得到坐標和光強的函數(shù)關系,令f(x,y,z)表示該設備處于坐標(x,y,z)時的光強值,下面將對f(x,y,z)進行擬合,首先要確定f(x,y,z)的形式,由于采集到的光強數(shù)據(jù)是四維數(shù)據(jù),無法通過預測圖像確定f(x,y,z)的恰當形式,但是由于點光源的特性,我們可以假定點光源是輻射函數(shù)是球狀體的函數(shù)方程模型。本研究中選取了三種f(x,y,z)形式在實驗部分進行對比。下面選取其中一種f(x,y,z)形式用于闡述本文所提的光源位置推定算法,選取f(x,y,z)形式如下:
擬合就是求解出參數(shù)αi(i=1,2,...,6),使得f(x,y,z)在采集到的數(shù)據(jù)中的誤差最小,定義f(x,y,z)在采集到的數(shù)據(jù)中的總誤差,為式(3)。
(3)
其中D是移動端采集得到的數(shù)據(jù)集,[f(x,y,z)-e]2是D中坐標是(x,y,z)時光強函數(shù)f(x,y,z)計算出的光強與采取到的光強e的誤差,因為f(x,y,z)大于或者小于e均視為誤差,因此采用平方的形式使誤差在f(x,y,z)大于或者小于e時均為正值。
下面用梯度下降法(Gradient Descent)來求解參數(shù)αi(i=1,2,…,6),并將總誤差對參數(shù)αi(i=1,2,…,6)求偏導得式(4)。
(4)
其中:
迭代更新規(guī)則如式(5)。
(5)
其中η是學習率(Learning Rate)。
經(jīng)過迭代后,即求得參數(shù)αi(i=1,2,…,6)的值,將這些參數(shù)值代入光強函數(shù)f(x,y,z)中,可使得f(x,y,z)在采集到的數(shù)據(jù)中的誤差最小,即擬合了光強函數(shù)f(x,y,z)。
2.3.2 光源位置推定
國務院于1994年頒布的《種畜禽管理條例》第15、16條規(guī)定,生產(chǎn)經(jīng)營種畜禽的單位和個人,必須向縣級以上人民政府畜牧獸醫(yī)行政主管部門申領《種畜禽生產(chǎn)經(jīng)營許可證》、申領《種畜禽生產(chǎn)經(jīng)營許可證》必須具備符合良種繁育體系規(guī)劃布局要求,所用種禽合格、優(yōu)良,來源符合技術要求,并達到一定數(shù)量,要相應的畜牧獸醫(yī)技術人員,有相應的防疫措施,有相應的育種資料和記錄。因此各級畜牧業(yè)獸醫(yī)行政管理部門只有嚴格按照《種畜禽管理條例》的規(guī)定加強管理,才能及時掌握和了解本地區(qū)種畜禽來源、品系情況。從而保證種畜禽品種質(zhì)量,促進養(yǎng)殖業(yè)的健康發(fā)展。
在2.2.1中完成了光強函數(shù)f(x,y,z)的擬合,得到了坐標和光強的函數(shù)關系,有了函數(shù)關系,即可求光強最得最大值時的坐標(x,y,z),前面提到由于坐標相當于原點至移動端設備連線的向量,因此將該向量取反方向即得到推定的光源方向,設向量(x0,y0,z0)表示推定的光源方向,則有式(6)。
(6)
下面用梯度上升法求arg maxf(x,y,z),將f(x,y,z)對x、y和z分別求偏導得式(7)。
(7)
迭代更新規(guī)則如式(8)
(8)
其中η是學習率(Learning Rate)。
經(jīng)過迭代后的x、y和z即是f(x,y,z)取最大值時的坐標(x,y,z),再取反方向即可得到推定的光源方向(x0,y0,z0)。
3.1 實驗環(huán)境
實驗是在Eclipse平臺下進行開發(fā)的,其中使用NyARToolkit for Android工具包,由ARToolkit衍生而來的輕量級、可視增強現(xiàn)實類庫。實驗機器為華為Mate 7(MT7-TL00),其操作系統(tǒng)為Android4.4、后置攝像頭像素為1300萬。實驗開始后,打開實現(xiàn)本文算法的應用,并將手機在空間中進行大范圍內(nèi)轉(zhuǎn)動和移動。手機獲取到的光強信息,通過本算法,會將陰影繪制在虛擬物體旁邊的對應位置,實驗效果如圖3所示。
1)光源方向推定準確度
隨著時間的推移,傳感器采集到的數(shù)據(jù)越來越多,一般來說,有了更多數(shù)據(jù),光照函數(shù)的擬合就能更加準確,本文用擬合出的光照函數(shù)所求解出的光源方向與真實光源方向的夾角作用誤差,評估光照函數(shù)所求解出的光源方向的準確高,夾角越小即誤差越小,也即準確度越高。但數(shù)據(jù)量過多會有時會造成過擬合,使得擬合出來的函數(shù)效果不佳,并且耗時也有所增加,因此本文實驗中只保留最新采集到的100條樣本數(shù)據(jù)用作擬合。本實驗中共選取了3種f(x,y,z)形式作對比:
f(x,y,z)=α1x2+α2y2+α3z2+α4xy+α5xz+α6yz
f(x,y,z)=α1x2+α2y2+α3z2
f(x,y,z)=α1xy+α2xz+α3yz
實驗結(jié)果示如圖3—圖6所示。
圖3 實驗效果圖
圖4 形式①推定的光源方向與實際光源方向夾角 誤差隨采集到數(shù)據(jù)總量變化趨勢圖
圖5 形式②推定的光源方向與實際光源方向夾角誤差 隨采集到數(shù)據(jù)總量變化趨勢圖
圖6 形式③推定的光源方向與實際光源方向夾角誤差 隨采集到數(shù)據(jù)總量變化趨勢圖
從圖3—圖6中可以看到,隨著采集到的數(shù)據(jù)條數(shù)越來越多,擬合出來的光照函數(shù)所推定的光源方向也越來越準確,當數(shù)據(jù)量超過100條后,因為只保留最新采集到的100條數(shù)據(jù)用作擬合,因此用來擬合的數(shù)據(jù)總量不再變化,所以第100條數(shù)據(jù)之后的誤差趨于穩(wěn)定并保持在較低的誤差,并且f(x,y,z)為形式①時的誤差最低,效果最好,本文中選取形式①為f(x,y,z)的最終形式,后文實驗均基于形式①。
2)擬合過程
本文采用梯度下降法對光照函數(shù)進行擬合,隨著迭代過程的進行,每次迭代都會比上次的誤差減少,并且減少地的程度越來越小,直至收斂,用100條數(shù)據(jù)作擬合時,100次迭代過程中光照函數(shù)在這些數(shù)據(jù)上的總誤差變化情況,如圖7所示。
圖7 擬合誤差隨迭代次數(shù)變化趨勢圖
3) 算法性能實驗
為了使陰影繪制能達到令人滿意的效果,要保證陰影繪制的速度,而陰影的繪制又依賴于光源方向的計算,因此光源方向的計算耗時成為影響陰影繪制的一個關鍵因素,下面評估本文所提算法推定光源方向的耗時,耗時包括兩部分,一部分是擬合光照函數(shù)的耗時,一部分是計算光源方向的耗時。本實驗中,將擬合光照函數(shù)和計算光源方向的算法中的采集的樣本數(shù)量均設置為200次來測量它們的耗時,為了盡量減少偶然因素對耗時測量帶來的影響,本文對耗時進行10次測量然后取平均值。
本文所提算法推定光源方向的3.3.耗時如圖8所示。
圖8 推定光源方向的耗時隨數(shù)據(jù)條數(shù)變化趨勢圖
從圖8中可以看到,隨著采取到的數(shù)據(jù)條數(shù)的增多,利用這些數(shù)據(jù)來進行光源方向推定的耗時也逐漸增加,同時也能看到,數(shù)據(jù)量達到200條時所耗時也僅僅為10多毫秒,這在實際應用時完全能夠滿足性能要求。
本文在推測真實世界光源的位置上提出了一種充分利用移動設備光線傳感器數(shù)據(jù)推測光源的算法。實驗表明,通過擬合出的光強函數(shù)來推測真實光源位置達到了較高的準確性,同時具有較好的時間性能,使得陰影繪制的實時性達到了實用的水平。該算法在光源位置估計過程中,也具有實時更新效果。不夠,由于實驗過程中去除了光源十分復雜以及光線遮擋不復雜的情況,只在相對簡單的實用場景下進行相關實驗,針對復雜的光照環(huán)境和應用場景還需做更為深入的研究。
[1] 李琳琳. 增強現(xiàn)實中光照一致性的研究[D]. 沈陽:沈陽航空航天大學, 2011.
[2] 李紅波,吳亮亮,吳渝.自適應采樣與融合的增強現(xiàn)實陰影生成算法[J]. 計算機應用,2012,32(7):1860-1863.
[3] Crow,F(xiàn)ranklin C.Shadow Algorithms for Computer Graphic[J].ACM Siggraph Computer Graphics,1977,11(2): 242-248.
[4] Williams, Lance.Casting Curved Shadows on Curved Surfaces[J].ACM Siggraph Computer Graphics,1978,12(3):270-274.
[5] Weiskopf D,Ertl T.Shadow Mapping Based on Dual Depth Layers[C].Proceedings of Eurographics,2003(3):53-60.
[6] Stamminger M,Drettakis G.Perspective shadow maps[J]. ACM Transactions on Graphics,2002,21(3): 557-562.
Light Consistency Algorithm Based on Light Sensor
Peng Xianling, Chen Yimin, Huang Chen
(School of Computer Engineering and Science, Shanghai University, Shanghai 200444, China)
In order to realize the seamless fusion of virtual information in real environment, the illumination consistency is very important. The key to solve the illumination consistency is to obtain the real scene illumination information, effective scene light source and estimation algorithm, which can ensure augmented reality(AR). This paper presents a real-time scene light source estimation algorithm for mobile terminals. The light intensity information of the real point light source is calculated by using the appropriate light intensity function. Then, the influence of the real scene light on the virtual object is calculated by using the computer graphics illumination algorithm so as to achieve the purpose of the actual situation of integration. The experimental results show that the proposed algorithm has a small error in the position of the light source and the real light source, and the algorithm has high efficiency and strong adaptability.
Augmented reality(AR); Light consistency; Light direction function
彭先玲(1991-),上海大學,碩士研究生,研究方向:增強現(xiàn)實技術。 陳一民(1961-),上海大學,教授,研究方向:增強現(xiàn)實技術。 黃晨(1985-),博士研究生,研究方向:增強現(xiàn)實技術。
1007-757X(2017)04-0069-05
TG409
A
2016.11.14)