一种基于深度计算的图像增强现实系统实现
2020-04-01翟丽杰
翟丽杰
(渭南师范学院物理与电气工程学院,陕西渭南 714099)
增强现实(Augmented Reality,AR),是一种将虚拟世界信息附加在真实世界环境中,通过使用者视觉观察来获得全新真实体验的新技术. 该技术不仅展现真实世界的信息,而且能够同时展现计算机产生的虚拟信息,两种信息互相补充、叠加为一个画面,无缝集成在一个空间[1-3]. 增强现实技术在许多应用领域都有建树,诸如汽车导航、飞行器的研制与开发、数据模型的可视化、虚拟操作演练. 在医疗领域中,医生可以通过增强现实技术,将虚拟的X光投影在病人身上以展示病人相应的内脏器官. 在文物考古等领域中,通过增强现实技术,可以在残缺的古迹上虚拟重构出原始文物的样貌,同时也能提供给参观者实时的古文物信息,方便用户了解所需内容[4-6].
一般来说,增强现实技术涉及许多新的前沿技术,包括计算机模式识别、人机交互、计算机图像处理、计算机视觉和显示技术. 为了使场景更加真实,需要准确地获取虚拟物体与真实物体之间的深度关系. 在增强现实系统中,虚实物体的深度一致性一直是研究的热点,这个深度一致性与虚实物体的遮挡密切相关[7-10].针对增强现实中的遮挡问题,提出了两种解决方案. 一种是基于模型的虚拟真实遮挡方案,另一种是基于深度信息的虚拟真实遮挡方案[11-12]. 随着计算机图形学和图像技术的飞速发展,一些学者提出了单眼图像的虚拟真实遮挡方法. 该方法不需要预先估计真实场景中的目标结构和深度信息,它只需要利用图像处理技术实时获取场景的每一帧,实时跟踪每一帧中的对象,确定对象之间的遮挡关系. 为了实现遮挡关系,需要去除提取的场景部分,针对现有方法存在的实时性差、深度信息获取不准确、真实感弱、应用领域有限等缺点,本文以计算机立体视觉、图像处理等技术为基础,研究了基于空间颜色和深度一致性的实时图像增强技术,并设计了一个基于深度计算的图像增强现实系统.
1 空间保色的图像增强方法
低照度图像本质上是由于场景的低照度造成的. 事实上,在大多数低照度图像中,光的不均匀分布会导致图像中出现较亮和较暗的区域,这就给图像的增强带来了困难. 为了恢复低照度图像,我们希望放大较暗区域的像素值并保留较亮区域的像素值[13-14]. 获得准确的光强分布是恢复低照度图像的关键,本文采用暗通道先验方法获得图像的光强分布.
在自然场景中,图像可以描述为:
其中:I 为观察图像;J 为期望场景的真实辐射值;A 为光强分布图;t 为光线通过媒体传输到相机时未散射的部分. 低照度图像增强的目的是从I 中恢复J、A和t,为了得到图像的照度图像,必须先提取图像的暗通道图像. 暗通道的先验值是在正常光照下观察室外图像得到的,也就是说在户外无雾图像中(非天空区域)的大部分局部区域,存在一些像素点(暗像素)在至少一个颜色通道中具有非常低的值,趋近于0. 三个通道每个像素RGB的最小值定义为Imin:
相应的暗通道图像B是:
其中:Q( i,j )是以I( i,j )为中心,大小为以N×N 像素的图像块,并且( x,y )是Q( i,j )中的任何像素点.
根据公式(2)和(3),可以得到低照度图像I的暗通道图像B. 根据公式(1):
本文不讨论雨雾的影响. 对于景深相同的场景,如室内和街道,t可以看作是一个常数. 因此,可以获得低照度图像的部分光强图A,即:
可见,对于图像I,光强分布A 与固定系数为1-t的暗通道图像B之间存在一定的比例关系,如何得到准确的暗通道图像B将是准确估计图像光强分布的关键. 由于t将在随后的计算中减少,因此不必估计它.
为了满足图像平滑的要求,对于图像I上的每个点,以其中心和M×M的大小的窗口中的所有像素由以下公式线性近似:
其中:D为图像I中以每个点为中心的M×M的大小的窗口的所有像素实际值;E为图像I中以每个点为中心的M×M的大小的窗口的所有像素线性近似值. 在确定M值之后,由近似参数ak和bk确定线性近似的结果,当ak和bk的值变化时,线性近似的结果E也将改变. E和D之间的差异由以下公式给出:
其中:ε 是一个非常小的常数,以防止ak过大. 通过求R( ak,bk)的最小值,确定了线性近似参数ak、bk.
采用线性回归方法,R( ak,bk)的最小值为:
在获得所有窗口Wk的线性近似解ak和bk之后,由于像素可能同时存在于多个窗口中,当获得最终平滑结果时,包括这一点的所有窗口Wk的ak和bk的平均值计算出来,也就是说:
在获得所需的光强度后,根据像素的光强度与所需的光强度之比,将低照度图像I中每个像素的RGB通道的灰度值放大成不同的大小,得到增强图像,具体的低照度图像增强公式为:
其中:J 为增强的低照度图像;Id为图像I中每个像素的RGB通道的灰度值;P为图像增强的比例系数,当原始场景中的平均光强较低时,需要用较大的系数放大图像通道,则P应为较大的值. 当原始场景中的平均光强度较高时,需要放大系数较小的图像通道. 此时,P应该是一个较小的值,即P×Bmeangray是一个常量值.
由以上理论,本文提出的低照度图像增强方法包括以下步骤:
1)输入图像,转换成RGB颜色空间,得到RGB三通道图像;
2)计算RGB通道中每个像素的最小值,得到输入图像的暗通道图像;
3)为解决暗通道先验原理不适用于白色区域的问题,确定图像中的白色区域,修改白色区域像素的暗通道值,得到初始光强分布图;
4)为了消除暗通道先验原理引起的块效应,对暗通道的修正图像进行线性平滑处理,得到平滑后的光强分布;
5)根据平滑后图像像素的灰度与期望光强的比值,对图像中不同像素的三个RGB通道进行增强,完成图像增强.
2 基于深度计算的增强现实系统设计
本文在前人理论研究的基础上,设计了一个基于深度计算增强现实系统,解决了虚拟物体和真实物体之间的深度一致性问题[15]. 该系统主要涉及双目立体视觉技术、双目摄像机标定和一些开放式GL三维绘制技术,主要包括四个模块:双目摄像机标定模块、视差采集模块、三维点云重建模块和虚拟真实深度一致性处理模块. 系统架构如图1所示.
该系统首先对摄像机进行初始化:选择摄像机的分辨率和摄像机的设备序列号,然后启动系统进入双目立体摄像机的校准模块. 主要有两部分:摄像机标定和双目标定. 双目摄像机标定有两种方式:一种是直接从摄像机采集标定板图像;另一种是就地读取标定板图像. 为了使系统具有实时性,本文重点研究了第一种获取标定板图像的形式. 标定后的视频图像在进入立体匹配模块前需要进行校正和裁剪. 其目的是使左右视频画面的投影中心原点一致,左右投影平面共面且与极线垂直对齐,从而减少对后续获取双目视差的影响. 本文采用布格极坐标立体校正算法对图像进行校正. 在深度信息获取过程中,首先采用半局部匹配方法(SGBM)实时获取密集视差图;然后根据双目立体标定结果和双目视差,利用三角法获得真实场景中物体的三维信息,解决了虚拟物体和真实物体的深度一致性问题.
图1 有遮挡物的增强现实处理系统Fig.1 Augmented reality processing system with occlusion
2.1 摄像机校准和校准模块
该系统首先利用早期足够多的双目立体摄像系统捕捉真实场景中物体的原始图像帧,然后对采集到的图像进行去噪等操作. 本文采用张正友的黑白棋盘标定方法对双目立体摄像机进行标定,得到摄像机的内外参数[16]. 最后,对双目图像对进行校正,为后续的立体匹配和视差图像采集做好准备. 该系统利用早期的双目立体摄像机从不同方向采集模板图像,识别图像中的特征点. 在特征点识别过程中,采用Harris角点提取方法. 如果识别成功,则使用不同的颜色连接成功提取的特征点. 根据标定后获取的摄像机内外参数,进行双目图像校正.
通过上述步骤,在获得双目相机的外部参数以及对双目相机采集的图像对进行校正后,可以得到更多的标准图像对,从而获得更精确的视差图像.
2.2 立体匹配及深度采集模块
该模块主要包括双目立体匹配、视差采集、三维信息采集等. 由于系统需要实时性,基于半全局匹配算法实现了图像对的立体匹配,得到了稠密的视差图. 然后利用三角相似测量原理,利用双目摄像机标定的密集视差和内外参数,得到三维数据. 在270 lx光强条件下,本节测试的三组不同场景的结果如图2所示,其中上图像为原始图像,下图像为原始图像对应的视差.
图2 实验结果图Fig.2 Experimental result images
在实验过程中,以图2中的第一组原始图像为例,得到如表1所示的3D数据示例. 其中Z坐标值是本文提到的深度信息值.
表1 3D 采样数据Tab.1 3D sampling data
同时,对得到的深度信息值与实际距离值的相对误差进行了测试,实验测试结果见表2和图3.
表2 实验测试结果Tab.2 Experimental test results
图3 实验测试结果Fig.3 Test results
测试结果表明,当物体的深度值在55 cm以内时,系统得到的深度值误差较小,相机与物体的距离越远,误差越大.
本文测试了320×240帧图像实时采集和处理所需的时间,并通过200次实时采集和10次随机采样计算了平均处理时间. 在计算获取深度数据的过程中,平均时间为0.503 39 ms,满足实时性要求.
2.3 虚拟与真实物体深度一致性处理模块
虚拟对象和真实对象的深度一致性处理模块是系统的最后一个重要模块. 为解决虚拟物体与真实物体之间的深度一致性问题,提出了基于双目摄像机的深度计算方法[17]. 根据场景对象的三维数据信息,即获取对象在真实场景中相对于摄像机坐标的深度信息,进而处理虚拟对象与真实对象的深度一致性处理关系.该模块主要包括两个部分:一是虚拟对象的创建和渲染;二是虚拟对象和真实对象的深度一致性处理.
1)虚拟对象的创建和渲染
创建虚拟对象的常用方法包括使用第三方软件3D StudioMax 进行建模,以及使用Open GL 库功能设计三维模型. 由于前一种方法的复杂性,该系统使用Open GL函数库自动生成虚拟对象.
2)虚拟与真实对象的深度一致性处理
针对虚拟物体与真实物体的深度一致性问题,提出了一种解决深度一致性问题的方法,并根据得到的深度值判断虚拟物体与真实物体的深度关系.
其思想是:首先利用标定后的双目立体视觉系统的外参数旋转矩阵R和平移矩阵T,将真实物体转移到打开的GL窗口中. 其次,将虚拟对象的深度设置为Z0. 最后,通过将真实场景中物体的Z轴坐标值(Z1)与虚拟物体的深度值Z0进行比较,当Z0大于Z1时,虚拟物体将呈现在融合场景中,否则,真实场景中的物体将被绘制在合成场景中. 具体步骤如下:
第一步:根据获取的真实场景中真实物体的深度信息,主要利用Open CV 网站提供的对象数据集和Open CV 函数库中的对象识别CV Haar detect objects()函数进行识别.
第二步:在跟踪阶段,本文采用光流算法,其思路是利用图像的两个连续帧之间的差异来实现目标跟踪. 为了提高跟踪的显示效果,采用矩形盒包含整个人的头部图像,并在不同场景下对目标进行跟踪.
第三步:利用旋转矩阵R和平移矩阵T将人像框映射到GL三维窗口中,在窗口中以固定深度绘制虚拟物体.
第四步:在打开的GL三维窗口中,如果虚拟对象的深度值大于对象的深度值,则使用图像技术在融合场景中渲染对象. 如果虚拟对象的深度小于对象的深度,则在融合场景中渲染虚拟对象.
通过以上步骤,可以解决虚拟信息与真实物体的深度一致性问题,并在显示器上显示正确的虚拟-真实融合场景.
3 结论
本文在大量相关文献研究的基础上,对基于空间颜色和深度一致性的图像实时增强现实技术进行了分析和研究. 本文着重分析了增强现实系统中虚拟深度与真实深度的一致性,探讨了深度的计算,为了实现无缝的虚拟现实融合效果,增强现实系统必须首先保持虚拟现实场景的几何一致性,即保持虚拟现实场景的几何关系在相对位置、透视投影等方面的一致性. 基于以上设计了一种增强现实系统. 该系统可以利用双目摄像机实时采集目标图像,并通过校正标定后的图像得到更好的视差图像. 采用SGBM匹配算法和深度计算实现虚拟物体的跟踪配准. 在不同环境下的实验表明,该系统具有良好的实时性、光不变性和深度一致性.