彭先玲, 陈一民, 黄晨
(上海大学 计算机工程与科学学院,上海 200444)
基于光线传感器的光照一致性算法
彭先玲, 陈一民, 黄晨
(上海大学 计算机工程与科学学院,上海 200444)
为了实现虚实的无缝融合,光照一致性至关重要。解决光照一致性的关键是获取真实场景的光照信息以及有效的场景光源估计算法,准确的光照信息和有效的光源估计算法才能保证逼真的增强现实效果。提出了一种适用于移动端的实时场景光源估计算法。通过移动端光线传感器获取的数据来进行光强函数拟合,进而用合适的光强函数推算出真实点光源的光照信息,然后利用计算机图形学的光照算法计算真实场景光照对虚拟对象的影响,从而达到虚实融合的目的。实验结果表明,由算法推算出的光源位置与真实光源位置误差很小,算法效率高,适应性强。
增强现实; 光照一致性; 光源方向函数
增强现实(augmented reality, AR)技术是在虚拟现实(virtual reality, VR)技术基础上发展起来,是通过计算机系统提供的信息来增加用户对现实世界感知的技术。增强现实有巨大的应用潜力和发展前景,因此正越来越引起人们的关注。随着移动端性能的不断提高,基于移动端的增强现实应用也得到越来越多的重视。
增强现实的关键问题是解决虚拟物体在光照、几何、运动三个方面符合真实环境场景。光照一致性是指虚拟物体表面的光照效果的真实感,必须符合真实光源的情况,在虚拟物体上制作出明暗、阴影等光照效果,使其能和真实环境很好地融合;几何一致性是指虚拟物体与真实物体在空间位置上的一致性;运动一致性是指当虚拟环境中的实体模型产生运动时,如: 平动或旋转,虚拟环境中的实体模型的尺寸和视角都应与静止的图像建立的虚拟环境保持一致[1]。本文主要研究光照一致性中,光源的确定。传统的阴影绘制算法主要集中在PC端[2],常用的有Franklin C. Crow 提出的Shadow Volumes[3]和Lance Williams提出的Shadow Map[4]以及这些算法的变种,如Depth Shadow Maps[5],Perspective Shadow Maps[6]等。这些算法或因算法复杂度高,或因依赖专业设备,在移动终端都不能直接使用。
另外,由于在增强现实环境中进行真实感渲染时,都需要一些预先设定的场景和设备,计算比较复杂,对硬件资源的要求较高,故当绘制设备为移动终端时,表现力欠佳。对此,本文提出了基于注册标记和光线传感器的实时场景光线检测方法,直接利用移动端光线传感器对光线的强度建立光照模型,并利用该模型对真实环境光位置和光源方向进行求解。
光照一致性涉及阴影绘制,绘制阴影前,需要指定光源的方向及光强强弱,本文利用移动设备的光线传感器回传的样本数据帮助推定光源方向。
2.1 基于传感器的移动AR光照估计
(1)
2.2 基于传感器的移动AR光照估计改进
上述方法在确定光源方向时,把光源的方向设定为方向空间中光照强度最大的方向,也即假定移动终端的光线传感器在转动过程中,一定会转动到对准光源方向的位置。实际应用中,如若移动终端活动范围较小,导致移动终端并不会转动到与光源方向对准的位置上,这种情况下,运用上述算法估计光源位置,则会导致估计的光源位置与实时场景的光源位置存在很大偏差。改进后的算法,则会对光线传感器的位置与光源的位置建立模型关系。即使光源处于移动终端光线传感器转动范围之外,也能准确地推测出实时场景的光源位置。
2.3 基于移动端的光照一致性改进的算法
本系统是使用NyARToolkit 的基于标记顶的工具包进行开发的。当系统识别标志物后,即可以通过相机标定过程中,所取得的世界坐标与图像坐标的变换矩阵,获得移动端设备相对于标记坐标系的位置坐标,同时移动端设备移动时,该坐标会随着移动端设备的移动而更新,并且由于移动端设备移动时,设备上的光线传感器相对于光源的位置也在变化,光线照射到移动端设备的光线传感器上的角度同时也是变化的。获取到的光强值也随之变化。
因此,提出通过移动端坐标值与光强值建立关系来推测环境光源方向的算法。设定注册标记的坐标系为全局坐标系,坐标原点为注册标记中点,这也就意味着,移动端设备的位置的坐标与方向向量坐标的数值在表示上是相同的。移动端设备的位置我们可以通过AR三维注册过程中,相机标定过程的取得的旋转平移矩阵取得设备当前位置坐标,根据已知坐标可以计算出设备与远点的距离。在空间中移动中,假设移动端设备移动到了三个不同的位置,其坐标分别(x1,y1,z1)、(x2,y2,z2)和(x3,y3,z3),在这三个位置,光源照射到光线传感器上的强度不同,移动端设备所测量得到的光强值也是不同的,记这三个位置的光强分别为I(x1,y1,z1)、I(x2,y2,z2)和I(x3,y3,z3),随着移动端设备的移动及时间的推移,将可以采集到大量的移动端设备位置以及该位置上的光强的数据,本文将利用采集到的数据拟合出光强函数,求解出函数求光强取最大值时的位置作为真实环境中光源的位置。
由于实际使用时,移动端设备相对于标记物的位置可能存在较大的变化,从而采集到分散程度较大的数据点,如果用这些分散程度较大的数据拟合出一个单一的模型,则需要模型的非线性程度很高才能拟合出一个理想的光强函数,为了解决这个问题,我们将采集到的数据点,按其与标记物的距离分段,再分别利用每段中的数据拟合出该段对应的光强函数,即将一个大而全的模型拆分成多个小而精的模型,如图1所示。
图1a 空间运动图
图1b 算法模型图
当移动端设备处于某个模型中时,可以通过该位置对应的模型来推测光源方向,但如果单纯只用该位置对应的模型,会有可能因为该位置采集的数据不够而导致模型准确性较差,因此我们通过将该模型与邻近的两个模型综合预测来得到光源的方向。令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的权重。
由于实际使用时,移动端设备相对于标记物的位置可能存在较大的变化,从而采集到分散程度较大的数据点。本文中将计算光源位置的模型划分为多个小模型,假设为model1、model2、……、modeln,其中本文将距离原点等距r的位置光想传感器数据作为一个子模型的一组样本数据,主要用于在我们设定步长为3 cm,每隔3 cm建立一个模型,如若模型中数量少于一定个数,则放弃在该层子模型进行建模。由各个子模型,最后综合各个子模型结果推测出真实环境中光源的位置。算法流程如图2所示。
图2 算法流程图
2.3.1 光源方向函数拟合
随着移动端设备的移动,将可以收集到大量如下形式的坐标与光强对应的样本数据:
如果移动端设备恰好移动到了光源和坐标原点的连线上,则这些数据中光强最大值所对应的坐标就是移动端设备在光源和坐标原点的连线上的坐标,此时光源的方向也自然易于得到,但是绝大部分情况下不会恰好移动到了光源和坐标原点的连线上,也无法得知采集到的数据中光强最大时的坐标是否就是这种情形。本文将利用采集到的数据对移动端设备坐标和光强进行函数拟合,以得到坐标和光强的函数关系,令f(x,y,z)表示该设备处于坐标(x,y,z)时的光强值,下面将对f(x,y,z)进行拟合,首先要确定f(x,y,z)的形式,由于采集到的光强数据是四维数据,无法通过预测图像确定f(x,y,z)的恰当形式,但是由于点光源的特性,我们可以假定点光源是辐射函数是球状体的函数方程模型。本研究中选取了三种f(x,y,z)形式在实验部分进行对比。下面选取其中一种f(x,y,z)形式用于阐述本文所提的光源位置推定算法,选取f(x,y,z)形式如下:
拟合就是求解出参数αi(i=1,2,...,6),使得f(x,y,z)在采集到的数据中的误差最小,定义f(x,y,z)在采集到的数据中的总误差,为式(3)。
(3)
其中D是移动端采集得到的数据集,[f(x,y,z)-e]2是D中坐标是(x,y,z)时光强函数f(x,y,z)计算出的光强与采取到的光强e的误差,因为f(x,y,z)大于或者小于e均视为误差,因此采用平方的形式使误差在f(x,y,z)大于或者小于e时均为正值。
下面用梯度下降法(Gradient Descent)来求解参数αi(i=1,2,…,6),并将总误差对参数αi(i=1,2,…,6)求偏导得式(4)。
(4)
其中:
迭代更新规则如式(5)。
(5)
其中η是学习率(Learning Rate)。
经过迭代后,即求得参数αi(i=1,2,…,6)的值,将这些参数值代入光强函数f(x,y,z)中,可使得f(x,y,z)在采集到的数据中的误差最小,即拟合了光强函数f(x,y,z)。
2.3.2 光源位置推定
国务院于1994年颁布的《种畜禽管理条例》第15、16条规定,生产经营种畜禽的单位和个人,必须向县级以上人民政府畜牧兽医行政主管部门申领《种畜禽生产经营许可证》、申领《种畜禽生产经营许可证》必须具备符合良种繁育体系规划布局要求,所用种禽合格、优良,来源符合技术要求,并达到一定数量,要相应的畜牧兽医技术人员,有相应的防疫措施,有相应的育种资料和记录。因此各级畜牧业兽医行政管理部门只有严格按照《种畜禽管理条例》的规定加强管理,才能及时掌握和了解本地区种畜禽来源、品系情况。从而保证种畜禽品种质量,促进养殖业的健康发展。
在2.2.1中完成了光强函数f(x,y,z)的拟合,得到了坐标和光强的函数关系,有了函数关系,即可求光强最得最大值时的坐标(x,y,z),前面提到由于坐标相当于原点至移动端设备连线的向量,因此将该向量取反方向即得到推定的光源方向,设向量(x0,y0,z0)表示推定的光源方向,则有式(6)。
(6)
下面用梯度上升法求arg maxf(x,y,z),将f(x,y,z)对x、y和z分别求偏导得式(7)。
(7)
迭代更新规则如式(8)
(8)
其中η是学习率(Learning Rate)。
经过迭代后的x、y和z即是f(x,y,z)取最大值时的坐标(x,y,z),再取反方向即可得到推定的光源方向(x0,y0,z0)。
3.1 实验环境
实验是在Eclipse平台下进行开发的,其中使用NyARToolkit for Android工具包,由ARToolkit衍生而来的轻量级、可视增强现实类库。实验机器为华为Mate 7(MT7-TL00),其操作系统为Android4.4、后置摄像头像素为1300万。实验开始后,打开实现本文算法的应用,并将手机在空间中进行大范围内转动和移动。手机获取到的光强信息,通过本算法,会将阴影绘制在虚拟物体旁边的对应位置,实验效果如图3所示。
1)光源方向推定准确度
随着时间的推移,传感器采集到的数据越来越多,一般来说,有了更多数据,光照函数的拟合就能更加准确,本文用拟合出的光照函数所求解出的光源方向与真实光源方向的夹角作用误差,评估光照函数所求解出的光源方向的准确高,夹角越小即误差越小,也即准确度越高。但数据量过多会有时会造成过拟合,使得拟合出来的函数效果不佳,并且耗时也有所增加,因此本文实验中只保留最新采集到的100条样本数据用作拟合。本实验中共选取了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
实验结果示如图3—图6所示。
图3 实验效果图
图4 形式①推定的光源方向与实际光源方向夹角 误差随采集到数据总量变化趋势图
图5 形式②推定的光源方向与实际光源方向夹角误差 随采集到数据总量变化趋势图
图6 形式③推定的光源方向与实际光源方向夹角误差 随采集到数据总量变化趋势图
从图3—图6中可以看到,随着采集到的数据条数越来越多,拟合出来的光照函数所推定的光源方向也越来越准确,当数据量超过100条后,因为只保留最新采集到的100条数据用作拟合,因此用来拟合的数据总量不再变化,所以第100条数据之后的误差趋于稳定并保持在较低的误差,并且f(x,y,z)为形式①时的误差最低,效果最好,本文中选取形式①为f(x,y,z)的最终形式,后文实验均基于形式①。
2)拟合过程
本文采用梯度下降法对光照函数进行拟合,随着迭代过程的进行,每次迭代都会比上次的误差减少,并且减少地的程度越来越小,直至收敛,用100条数据作拟合时,100次迭代过程中光照函数在这些数据上的总误差变化情况,如图7所示。
图7 拟合误差随迭代次数变化趋势图
3) 算法性能实验
为了使阴影绘制能达到令人满意的效果,要保证阴影绘制的速度,而阴影的绘制又依赖于光源方向的计算,因此光源方向的计算耗时成为影响阴影绘制的一个关键因素,下面评估本文所提算法推定光源方向的耗时,耗时包括两部分,一部分是拟合光照函数的耗时,一部分是计算光源方向的耗时。本实验中,将拟合光照函数和计算光源方向的算法中的采集的样本数量均设置为200次来测量它们的耗时,为了尽量减少偶然因素对耗时测量带来的影响,本文对耗时进行10次测量然后取平均值。
本文所提算法推定光源方向的3.3.耗时如图8所示。
图8 推定光源方向的耗时随数据条数变化趋势图
从图8中可以看到,随着采取到的数据条数的增多,利用这些数据来进行光源方向推定的耗时也逐渐增加,同时也能看到,数据量达到200条时所耗时也仅仅为10多毫秒,这在实际应用时完全能够满足性能要求。
本文在推测真实世界光源的位置上提出了一种充分利用移动设备光线传感器数据推测光源的算法。实验表明,通过拟合出的光强函数来推测真实光源位置达到了较高的准确性,同时具有较好的时间性能,使得阴影绘制的实时性达到了实用的水平。该算法在光源位置估计过程中,也具有实时更新效果。不够,由于实验过程中去除了光源十分复杂以及光线遮挡不复杂的情况,只在相对简单的实用场景下进行相关实验,针对复杂的光照环境和应用场景还需做更为深入的研究。
[1] 李琳琳. 增强现实中光照一致性的研究[D]. 沈阳:沈阳航空航天大学, 2011.
[2] 李红波,吴亮亮,吴渝.自适应采样与融合的增强现实阴影生成算法[J]. 计算机应用,2012,32(7):1860-1863.
[3] Crow,Franklin 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-),上海大学,硕士研究生,研究方向:增强现实技术。 陈一民(1961-),上海大学,教授,研究方向:增强现实技术。 黄晨(1985-),博士研究生,研究方向:增强现实技术。
1007-757X(2017)04-0069-05
TG409
A
2016.11.14)