集成成像光场计算方法研究进展
2020-04-27秦志强张文阁蒋晓瑜
秦志强,张文阁,文 军,蒋晓瑜
集成成像(Integral Imaging,II)和全息术相比不需要设置相干光源、结构简单紧凑,能够再现动态场景,可用于文物展示、生活娱乐、远程会议、重要内容的增强交互显示等场合,具有较大的应用前景。
集成成像来源于1908年法国G.Lippmann 首次提出[1]的集成摄像术(Integral Photography,IP),包括记录和再现两个部分,其记录部分与摄像术(Photography)联系紧密。早期集成成像记录过程使用全光学的方式完成,记录透镜阵列和再现透镜阵列的参数相同,三维物体通过透镜阵列的成像信息被感光介质记录并用于显示,普遍存在记录单元图像质量不高、赝像(深度反转)和采集端和再现端参数必须一致(简称为参数一致)等问题[2]。随着计算机的出现与发展,1978年日本Igarashi 提出使用计算机生成集成图像(Integral Photograph),使实际并不存在的物体得到三维显示。随着光学元件、显示器和摄影术的发展,学者们不断使用新的技术和软硬件设备来解决集成摄像术中的问题,集成摄像术逐渐发展成为集成成像。根据是否使用计算机生成单元图像阵列(Elemental Image Array,EIA),集成成像分为全光学集成成像和计算生成集成成像(Computer-Generated Integral Imaging,CGII)。
图1 (a)视点光场模型 (b)视向光场模型 (c)集成成像光场模型
随着计算摄影技术和计算机图形学的发展,计算生成集成成像备受关注。为了实现参数灵活、高效实时、应用广泛的计算生成集成成像记录系统,学者们提出了丰富多样的光场计算方法,简化了光学采集方式,扩展了集成成像显示内容,能够生成高质量的EIA。本文根据所用算法和技术的不同,对这些方法进行梳理归类,分析其中存在的关键问题,并讨论不同类型光场计算方法的发展趋势。
1 集成成像光场理论
集成成像是一种光场显示技术,其原理遵守光场理论。计算生成集成成像记录系统分为光场采集和光场计算两个部分,如图1所示,光线由起点O(xo,yo,zo)和单位方向向量dij表达,光场采集一般使用视点光场(单点透视模型),或者视向光场(特殊相机或者虚拟相机采集),或者光线采集(虚拟相机采集)。EIA 可以看作是多个视点光场、视向光场(由某方向的平行光线组成)或光线的积分。
不同的采集方式需要不同的光场计算方法,才能生成EIA,完成整个光场记录过程。集成成像在实际应用中主要有采集、数据预处理、生成EIA 和显示等四个过程,过程之间默认为数据传输,如图2所示。
图2 集成成像的基本过程
光场计算包含数据预处理和生成EIA 两个过程,生成EIA 过程的输入信息不仅可以是采集到真实物体的可视光场信息,还可以是根据采集信息重建出的或直接制作出来的三维模型数据,输出是EIA。根据生成EIA 过程中光场信息处理方式的不同,光场计算方法可以分为基于像素映射和基于像素渲染两种方法。
2 基于像素映射的光场计算方法
像素映射方法是比较传统的集成成像记录方法,常用于采集真实场景并用于集成成像显示。视点采集是常见的光学采集方式,像素映射方法对获取的视点光场信息(元素图像集)进行映射重组或近似采样映射生成EIA。这些可视光场信息一般由光场相机、微透镜阵列采集得到,也可以由相机阵列或时空复用相机(阵列)采集得到。
像素映射方法将采集到的像素信息直接映射到EIA 上,或者从EIA 像素出发寻找对应的已知像素,如果某些光线对应的像素未被采集到,则会近似映射到邻近像素,可以解决早期全光学集成成像中出现的问题。从适用范围来看,基于光场相机和透镜阵列的实时采集系统适用于小场景,基于相机时空复用则不能实现实时采集和显示;如果使用足够大的相机阵列采集足够的光场信息可以解决这些问题,但是面临着相机需求数量多且昂贵、相机标定与校正难度大、数据处理量大等现实问题。随着图形渲染技术的发展,基于像素渲染的光场计算方法逐渐成为新的关注点。
3 基于像素渲染的光场计算方法
如果EIA 中某些像素信息未被采集到,基于像素映射的光场计算方法采用近似映射算法解决,存在一定程度的映射误差,如SPOC 算法;而基于像素渲染的光场计算方法将根据已有像素的视觉信息、三维空间信息或三维场景语义信息渲染生成这些未被采集到的像素,消除映射误差,并且能够完全解决参数一致的问题。根据所使用的计算机图像学原理的不同,基于像素渲染的光场计算方法可以分为基于模型渲染和基于图像绘制的光场计算方法。
3.1 基于模型渲染的光场计算方法
三维模型可以对真实世界进行精细描述或者艺术化描述。基于模型渲染的光场计算方法可以在虚拟空间精确地计算出集成成像及其他光场显示技术的显示光场。
从模型数据计算生成EIA 的算法出现得比较早,很多学者通过虚拟相机阵列采集(对三维物体渲染着色)三维模型在虚拟场景中足够多的视觉光场信息,然后通过相应的像素映射算法重组像素生成EIA。随着基于OpenGL(Open Graphics Library)的光栅化渲染技术和其他商业三维渲染软件的发展,学者们结合虚拟相机的独有特性,不断研究更加高效、精确的采集模型和计算算法,突破了光学相机采集的限制,通过虚拟相机得到足够多的视点(视向)光场信息,通过像素映射算法解决深度反转问题,不存在映射误差和空洞问题;但存在依赖于商业三维渲染软件、采集信息冗余度高、二次采样耗时、显示模式单一、无法实时计算等问题。基于光栅化渲染技术和串行计算技术的方法通过减少视点(视向)渲染的次数(渲染次数与透镜数或单元图像的像素数有关)、减少采集信息冗余度来提升计算效率,常用于仿真验证基于像素映射或基于图像绘制的光场计算方法。
随着图形处理器(Graphics Processing Unit,GPU)、基 于OpenCL(Open Computing Language)的异构并行编程技术和其他GPU 编程技术的发展,有很多学者编写更加灵活的自定义虚拟相机,使用并行渲染技术实时渲染EIA,降低了采集信息冗余度,摆脱了对商业三维渲染软件的依赖,去掉了二次采样的环节。基于光栅化渲染技术和并行计算技术的方法实现了实时交互显示,但很难渲染出具有真实感的场景,并且使用像素映射算法解决深度反转问题增加了算法复杂度。
随着真实感渲染技术(Physically-Based Rendering,PBR),尤其是实时光线追踪技术的发展,有些学者将光线追踪技术应用于集成成像EIA 的渲染。比如2017年北京邮电大学桑新柱团队提出基于逆向光线追踪技术的BRTCGII 方法[3-4],通过逆向追踪光线的原理克服赝像,如图3(a)所示,逆向追踪显示光场的光线,将最近碰撞点的颜色值作为对应像素的颜色值,采集和显示像素的空间位置相同;根据输入的显示系统参数在某一深度平面上建立虚拟相机阵列,为每个单元图像建立虚拟相机阵列,一个像素对应一个虚拟相机,如图3(b)所示,虚拟相机的位置需要经过计算得到,使用逆向光线追踪技术通过虚拟相机渲染像素生成EIA,能够实时显示多种格式三维模型,并在此基础上解决[5]了交互过程中出现的模糊串扰等现象,优化了显示性能,并在2018年将采集微生物标本得到的切片数据输入系统进行实时交互显示。
图3 BRTCGII方法[3-4]中像素与光线、虚拟相机的关系
使用光线追踪实时渲染EIA 是基于模型渲染的光场计算方法的大趋势。从光线的层次来计算光场是最本源的做法,将每个像素的着色看作是一条光线的渲染,相比于通过视点光场(虚拟相机)计算生成EIA 的方法,更加灵活且容易克服赝像;光线追踪在虚拟空间模拟真实物理世界光线的几何性质,按照光度量学的近似公式实施光线渲染,为像素着色,可以还原世界的真实景观,并且支持管线并行处理机制和基于显卡的硬件实现方式,能够渲染真实感或非真实感的效果,能够渲染几乎所有格式的三维模型数据,被称为图形处理的未来技术;随着并行计算硬件的发展,尤其是2018年英伟达(NVIDIA)公司推出含有RT 计算核心的图灵(Turing)架构GPU,光线追踪渲染越来越实时。
基于模型渲染的光场计算方法使得现有的丰富三维模型可以转换为EIA,扩展了集成成像显示内容,能够进一步促进集成成像的实际应用。三维模型数据的格式众多,使用的描述基元不同,比如网格模型主要以面为模型基元、点云模型以离散点为基元、体素模型以体元为基元、数字高程模型以含有高度值的规则矩形格网或者不规则三角网为基元等,主要来源于三维模型处理软件(如3DsMax、Maya、AutoCAD、Blender、MagicaVoxel)制作或基于实景采集的三维重建。点云模型多存在于逆向工程,是三维重建中常见的数据模型,也可以用于生成其他格式的模型。基于模型渲染的方法不仅可以面向三维模型数据,而且可以通过三维重建面向真实场景采集到的信息,但实时性受模型或场景复杂度影响,在真实场景采集与显示的应用中需要以进行精确模型重建为前提,目前并不适合用于大型复杂场景。
3.2 基于图像绘制的光场计算方法
基于图像的绘制技术(Image Based Rendering,IBR)不需要进行精确建模,可以从已有的多个视点图像或全景图快速生成新的虚拟视点图。IBR 技术分支较多,其中基于深度图像的绘制技术(Depth Image Based Rendering,DIBR)比较热门。因此,为了实时采集和显示比较复杂的真实场景,使用DIBR 计算生成EIA 的方法得到了关注。视点图像素的深度信息组成了深度图像,深度信息获取是DIBR 的基础环节,主要有两种途径:通过多视点图获取深度信息和通过深度相机(RGBD相机)获取深度信息。通过多视点图获取深度信息的基本过程是对多个视点图进行立体匹配(点、边缘、区域等等),然后利用双目立体视觉原理恢复某些物点或者区域的深度信息。深度相机利用结构光、双目立体视觉原理、时间飞行法(TOF)或其他三维深度传感技术可以在拍摄过程中实时计算深度信息生成深度图像,常与RGB 视点图配对使用,随着深度相机的发展,深度图像获取将更加精确和便捷。因此,目前基于图像绘制的光场计算方法主要有两种:基于稀疏视点图的光场计算方法和基于深度相机的光场计算方法。
3.2.1 基于稀疏视点图的光场计算方法
稀疏视点图是稀疏视点采集的结果,可以由光场相机、透镜阵列、相机阵列或相机(阵列)时空复用拍摄得到。使用稀疏视点图合成虚拟视点图可以用于在多视点立体显示技术和自由视点视频(Free-viewpoint Video,FVV),其核心原理是三维图像变换方程(3D Image Warping)。比如2014年美国Jones 团队使用视图插值算法实现人体模型的自由密集视点的实时显示。
基于稀疏视点图的光场计算方法根据已有视点图计算足够的虚拟视点图之后,然后通过光场转换(像素映射)生成EIA[6],主要包括采集相机标定与校正、图像预处理、基于双目视差的深度获取、虚拟视点图生成和匹配显示端参数的集成成像光场转换生成等五个部分。所得EIA 的质量与采集视点图质量、深度计算准确度、虚拟视点单元图像质量和光场转换算法有直接联系。采集标定和图像预处理是基础工作并且比较成熟,比如张氏标定法[7]。图像预处理通常包括遮挡检测、中值滤波和一致性检测等过程[8]。虚拟视点图像的生成和光场转换算法是研究的主要方向,目前的计算效果并不满足应用需求,空洞填补算法计算量大且效果有待提升。很多学者将神经网络和模糊集等新技术应用到视点图集处理和虚拟视点生成上,虽然数据训练成本大,但是效果较好,具有较大潜力。
3.2.2 基于深度图像的光场计算方法
深度图像在虚拟视点合成中应用广泛,也可以用来生成EIA。通过深度相机获取场景深度信息而后生成EIA 的方法没有进行虚拟视点生成的过程,具有较高的实时性,但是也没有进行空洞填补,显示结果出现很多空洞和边缘问题。同样,基于稀疏视点图的方法中也可以不进行空洞填补等优化过程,达到实时显示,比如2004年韩国Park J H 提出利用通过透镜阵列采集到的元素图像集或者通过相机阵列采集到的视点图集,通过匹配算法生成代表场景物体表面的具有深度信息的点集数据,计算每个点在EIA 上的映射生成EIA,轻松解决深度反转问题和参数一致的问题。
在基于图像绘制的光场计算方法中,普遍存在着边缘缝隙问题和空洞问题,对于空洞问题目前却没有出现普遍适用的有效的实时的解决方法,一个比较通用的解决方法方式建立多视点的图像或深度图像,通过图像融合方法填补主要的空洞,但是融合过程中还需要解决视点位置变化导致的颜色校正问题以及图像融合权值问题。视点图的融合也可以通过神经网络进行优化[9]。相信随着基于图像绘制技术的发展,使用其他图像绘制技术生成EIA 的方法也会陆续出现。
3.3 小结
在集成成像应用中,不同的采集方式会得到不同格式的光场数据,然后使用不同的光场计算方法生成EIA,当然同样的采集方式也可以使用不同的光场计算方法生成EIA,实际应用中需要根据需求选择适当的方法。比如2012年西安电子科技大学杨钉钉根据采集的视点图像集重建物体的三维模型,然后渲染生成EIA;2014年韩国Seokmin Hong使用RGBD 相机(Kinect)采集获得RGB 图和深度图,计算得到点云数据,使用OpenGL 通过针孔阵列渲染点云数据得到初步的单元图像集,然后中心旋转180°每个单元图像得到EIA。这些应用的最初输入数据是图像,却采用三维重建和基于模型渲染的光场计算方法,因为可以轻松解决深度反转问题,灵活生成任意显示参数的EIA,且没有映射误差。
4 结论
集成成像是一种具有发展潜力的裸眼三维显示技术,显示内容匮乏且制作实时性差、三维再现深度反转、采集端与显示端参数必须一致等问题限制了。
集成成像的应用发展。为了解决这些问题,不同的光场计算方法不断被提出。基于像素映射的光场计算方法计算简单,但是映射误差的问题几乎无法解决,可以用于要求不高的集成成像显示;基于模型渲染的光场计算方法中计算实时性与场景复杂程度有关,并且以三维模型数据或三维重建为前提,随着计算硬件和真实感、非真实感渲染技术的发展,未来基于光线追踪渲染的方法将是基于模型渲染的光场计算方法的主流;基于图像绘制的光场计算方法可以较高真实度的还原采集的真实场景,但是图像信息冗余度高,算法复杂度高,空洞问题难解决,使用机器学习或人工智能进行立体匹配和图像融合、解决空洞问题的方法将具有较大的发展潜力。这3种方法各有优缺点,实际应用中可以根据应用场景和需求的特点选取适合的集成成像光场计算方法。