单标记实时场景光源检测算法
2018-02-13孙博文孙健唐贝贝
孙博文 孙健 唐贝贝
摘 要:增强现实中的光照一致性是使虚拟物体获得真实感的重要手段,它能使计算机生成的虚拟物体很好的融合到真实场景当中。为了更好的实现增强现实系统中的光照一致性,对现有的光源检测算法进行改进,提出一种基于单标记的实时场景光源检测算法。该方法通过采集识别标记在各个方位的亮度信息确定出光源的方向;通过识别标记和虚拟物体之间的亮度对比确定光源的亮度;通过获取标记物上未喷墨部分的颜色,确定光源的颜色。实验证明,在满足增强现实应用的实时性和稳定性的同时,使用本文的光源检测算法所估计出的虚拟光源与真实光源方向之间的角度差值平均在4.3度,并可以使虚拟物体正确的产生阴影。
关键词:光源检测;光照一致性;虚实融合;增强现实
DOI:10.15938/j.jhust.2018.06.024
中图分类号: TP316.2
文献标志码: A
文章编号: 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 引 言
增强现实[1]augmented reality,AR)是虚拟现实技术的拓展,通过把计算机生成的虚拟对象与真实环境融为一体的方式来增强用户对真实环境的理解和体验[2]。目前,增强现实在医疗卫生、军事仿真、工业维修、教育娱乐等方向均具有广泛的应用前景。高度真实感的AR效果主要体现在几何一致性、光照一致性和时间一致性等三个方面[3],其中几何一致性是指真实场景和虚拟物体有正确的位置、透视和遮挡关系;光照一致性是指虚拟物体与真实场景之间有正确的阴影、明暗等光照匹配关系;时间一致性是指真实物体与虚拟物体的运动相互协调。随着几何一致和时间一致的越发完善[4-5],研发人员开始把注意力转向增强现实场景的真实感上,而解决虚拟物体与真实场景之间的光照一致性问题是实现真实感的重要手段[6]。Tommy Jensen等人提出了一种基于无标志物的增强现实虚实光照融合方法[7]。Claus B.MadSen等人提出了一种基于GPU虚实光照融合方法[8]。Jean-Fran-cois Lalonde等人提出了一种基于视频图像剪贴库的虚实光照融合方法[9]。国内在增强现实中的光照一致性方向的研究也有一定的成果,姚远等人提出了基于定位标记的实时场景光源检测算法[10]。谭茗等人提出了基于动态light map的增强现实光照算法[11]。
但是以上算法中,Tomm Jensen所提出的方法只能处理单个真实光源且需要知道場景的粗略三维模型和HDRI(high dynamic range image)环境图。Claus B.MadSen所提出的方法要求场景光照不变并且摄像机视角不能发生任何变化。Jean-Francois Lalonde所提出的方法只适用于处理静态固定视角的视频。姚远等人提出的方法需要在场景中放置多个标记,确定光源的步骤比较繁琐。谭茗等人提出的方法由于需要在光源位置发生变化时更新light map,故不具有较好的实时性。
综合以上论述,已有的光照一致性研究方法中,都存在一定的不足。本文对姚远等人提出的基于定位标记的实时场景光源检测算法进行改进。研究一种基于单标记光源位置检测算法。在姚远等人提出的算法的基础上将多标记改为单标记,从而简化了场景和操作,使场景更加美观,操作更容易。本文所提算法根据识别标记估计出光源的位置和颜色。然后利用阴影体方法绘制阴影。该方法不需要辅助硬件且具有较好的实时性。
1 基本问题定义
定义1(能量)用符号Q表示,单位焦耳(J),每个光子都具有一定的能量,且和频率相关,频率越高,能量也越高。
辐照度和辐出度都可以称为辐射通量密度。
定义4(立体角)立体角是以圆锥体的顶点为球心,半径为r的球面被锥面所截面积A比上半径的平方所得。用符号ω表示,定义为A/r2。
定义6(BRDF)BRDF定义公式为。其中f是BRDF,l是入射光方向,v是观察方向,是表面反射到v方向的反射光的微分辐射率,是表面上来自入射光方向l的微分辐照度。
2 基于单标记的光源检测算法
2.1 光照模型
真实场景的光照情况非常复杂,大部分光线来自于各种物体表面的漫反射。经测试发现,由一个或多个光源产生的光照即可使得虚拟物体产生存在感。因此,本文忽略环境光的影响,只研究一个和两个光源照射下的虚拟物体在真实空间下的光照一致性。
根据上述定义,物体表面上某个点的反射辐射率可以表示为[11]:
其中为物体表面的BRDF,l是光源的入射方向,v为观察者方向,是来自方向l的入射光的辐射率,代表入射光与表面法线方向的夹角,是微分立体角。当物体表面为漫反射表面时,可以认为是一个常数。
从上述公式可以看出,当物体表面为漫反射表面时,反射光的辐射率只与入射光的辐射率和入射光与表面法线方向的夹角有关。也就是说,当光源强度一定时,漫反射表面的反射辐射率成正比,与观察角度无关。
另外,辐射率不会随着距离变化而衰减,这是因为随着距离变大。我们看物体表面的某一区域时到达眼睛的通量密度在逐渐变小,但由于距离变远,该区域在视网膜上的立体角也会变小,抵消了通量密度的变化。由此得出结论,物体表面的反射辐射率与观察者离物体的距离无关。
综上所述,漫反射表面的反射辐射率在光源一定时,与观察者的角度以及观察者和被观察物体之间的距离无关,只与光源入射方向与识别标记表面法向的夹角有关。
在光源检测算法中,目标是获得光源的方向和强度,由此生成一个沿此方向照射的平行光。通过对比识别标记表面与虚拟物体表面的亮度来调节光源的亮度。
2.2 单光源方向检测
AR场景中单光源检测的目标是为了对场景中单一的日光、白炽灯和日光灯创建相应的虚拟光源。在本文中,方向光源、聚光灯和点光源统一作平行光处理,检测目标是为了获得光源的照射方向和强度两个参数。本文所使用的识别图为一张灰度图。
在光源位置检测过程中通过维护一个变量来记录识别标记在采集过的方位中最大的亮度。
单光源方向检测算法步骤如下:
1)维护一个变量maxBri,初始化为0。该变量记录识别标记在采集过程中最大的亮度。
2)首先在每一帧中将相机所采集的图像转换成灰度图像并提取出感兴趣区域ROI。求该ROI的平均亮度值并记其为briA。如果briA大于maxBri,则认为平行光此时沿着识别标记表面法线进行照射,对平行光的方向进行调整并更改maxBri的值为briA。
3)在对识别标记变换了几个方位后,如果maxBri中的值不再变化,则认为此时平行光的照射方向即为现实空间中光源的照射方向。如图1所示,假设此时maxBri中记录的是识别标记在方位2时的亮度值,则认为光源沿着识别标记在方位2时的法线方向进行照射。
2.3 多光源方向检测
在AR应用中,经常会处在多个光源的照射下,对多个光源的检测增加了算法的复杂度。本文使用多个虚拟光源来模拟真实光源,在交互应用之前,首先需要对场景进行预处理,这样可以将大量的在线计算转到预处理阶段,在预处理阶段,我们采集识别标记在各个法线方向的亮度。在采集过程中,遵循这样一个原则,首先设定一个阈值β,认为在β范围内的光源可以合并成一个。
多光源方向检测算法步骤如下:
1)维护两个大容量的数组,数组记录相机在预处理阶段所采集的法线方向以及亮度。数组记录可能存在光源的方向。设定阈值以及一个较大的亮度值作为临界亮度。
2)遍历整个数组,当某个法线方向上的亮度值大于,则认为该方向上可能存在一个光源。找出数组中所有可能的光源方向,存入数组。
3)在数组中找到最亮的一个法线方向并认为在该方向上存在一个光源。然后在与该法线方向夹角大于的法线方向中寻找一个最亮的法线方向,认为在该方向上存在一个光源。重复的进行下去,直到其中待选的法线方向的范围与已经确定的光源的法线方向之间的夹角都要大于。到此,所有的光源方向都已确定出来。
2.4 光源的颜色估计
在光源方向生成光源以后,光源颜色可以通过
识别标记表面的信息获得。对识别标记表面未喷墨部分进行采样,确定光线的R,G,B分量的比值。
2.5 光源的強度估计
在虚拟空间中放置一个虚拟的平面,由虚拟光源对其进行照射,设定一个阈值t。光源强度估计的步骤如下:
1)提取出识别标记表面未喷墨部分,求其平均亮度,记为。求虚拟平面表面的平均亮度记为。
2)求和差的绝对值,如式2所示,差值记为s。
如果且,则对虚拟光源的强度增大一个量并返回步骤1。如果且,则对虚拟光源的强度减小一个量并返回步骤1。其他情况不做处理。
2.6 阴影生成
本文采用的生成阴影的方法为平面阴影投射方法,首先将模型的顶点位置信息转换到平面坐标系中,转换公式如下:
其中为顶点的从模型空间到世界空间的变换矩阵,为顶点从世界空间到阴影接受平面空间的变换矩阵,为模型空间中点的坐标,为变换后在阴影接受平面空间中点的坐标。
顶点坐标变换到阴影接受平面空间后,需要将光源方向从世界空间变换到接受平面空间,公式如下:
其中为阴影接受平面中光源的方向,为世界空间中光源的方向。
经过上述步骤后,使用三角形相似计算沿光源方向投射后的顶点坐标。至此得到模型在阴影接受平面上的阴影。
3 实验结果与分析
本文实验配置为桌面台式电脑(Intel(R) Core(TM) i7-4790K 主频4GHz,显卡NVIDIA GeForce GTX 980)。采用普通摄像头采集真实场景的信息。
实验过程中,单光源的方向检测使用2.2节描述的方法计算光源照射方向,多光源的方向检测使用2.3节描述的方法计算光源照射方向。在真实光源的方向基本确定后,虚拟光源沿该方向对虚拟物体进行照射,并能正确估算出光源的强度和颜色以及正确的生成阴影。如图2所示,其中图2(a)中实验光源为白光,图2(b)中实验光源为红光,图2(c)中实验光源为黄光,图2(d)中实验光源为蓝光。图中的平面图为识别标记,球体为计算机中的虚拟物体,水杯为真实物体。图3为场景中存在两个光源的检测结果,可正确生成两个阴影。
本文分别使用5个不同面片数的(2000,5000,7000,11000,13000)的模型来进行测试,并记录在这三种情况下的帧率。如表1所示,算法的帧率达到实时交互所需的帧率。
表2表明在10次实验中,每次实验持续一分钟,角度差值精确到小数点后一位,10次实验测量出虚拟光源与真实光源之间的角度差的平均值为4.3度,在可以接受的误差范围内。
实验结果表明,本文算法帧率满足实时交互的需求。并且可以较为准确的估计出光源的方向、亮度和颜色信息,并能正确的生成阴影。
4 结 论
本文对AR场景中的光照一致性问题进行了深入的研究,并对基于定位标记的实时场景光源检测算法进行了改进,提出一种单标记实时场景光源检测算法。实验表明,本文所提的算法能在误差允许范围内准确的估算出场景中光源的方向和颜色,并在光源方向确定后可以有效的对光源的强度进行调整。但本文的算法对多光源的方向检测有诸多的条件限制,有待于进一步改进,以减少限制条件,增加通用性。目前,本文所提算法可以有效的应用于单光源的增强现实场景中。
参 考 文 献:
[1] 刘万奎,刘越.用于增强现实的光照估计研究综述[J].计算机辅助设计与图形学学报,2016,28(2):198-205.
[2] 王贞东,马小虎.增强现实中虚实融合光照一致性研究[D].苏州:苏州大学,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] 滕慧舉,陈一民,黄晨,等.增强现实中的光照一致性研究[J].计算机应用与软件,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]姚远,朱淼良.增强现实应用技术研究[D].杭州:浙江大学,2006.
[11]谭茗,陈浩,孙建华.基于动态Light Map的增强现实光照算法[J].计算机工程,2009,35(21):261-263.
(编辑:关 毅)