影视动画三维模型的运用综述

影视动画三维模型的运用综述

作者:徐正则 单位:华东师范大学传播学院实验中心

激光扫描仪是一种常见的三维扫描仪,“利用三维激光扫描技术,可以深入到复杂的现场环境及空间进行扫描操作,并可以直接实现各种大型的、复杂的、不规则、标准或非标准的实体或实景三维数据完整的采集,进而快速重构出实体目标的三维模型及线、面、体、空间等各种制图数据。”[1]三维扫描所获取的数据不同于手工建模所构造出的线、面和实体数据,扫描得到的数据称为“点云”,“点云数据是由大量的离散点构成的。这些离散点并不是无规则的排列在一起,而是按照一定的行列间隔有序排列。”[2]可以利用三维重构技术通过这些点云数据来恢复被测表面的网格模型或曲面实体模型。三维扫描技术能快速完整地获取物体的三维信息,并能够方便有效地生成其三维模型,具有精度高、省时省力的优点。其主要缺点,首先是三维扫描仪特别是高精度的激光扫描仪硬件价格昂贵,其次模型的精度和测量点的间距有关,间距越小,精度越高,但需要处理的点云数据量也呈几何级增加。

基于真实照片的三维立体建模基于照片的三维建模是指使用一张或几张不同角度的数码照片来创建三维的立体模型。它克服了传统建模技术的许多不足,有一定的优越性。比如,它克服了三维扫描仪的应用限制,由于受空间、地点等因素的限制(如摩天高楼等一些被测物体体积庞大),一般大型的三维扫描设备无法进行测量。这种建模方式无需昂贵的三维扫描仪就可以快速高效地创建复杂物体的三维模型,并且“基于图像的建模与绘制技术为我们提供了达到照片般真实的一个自然的方法。它使我们可以用较短的建模时间、较快的绘制速度来获得以前从未有过的照片真实效果。”[3]

基于真实照片三维建模方法的发展历程与趋势

1、手动建模早期,基于真实照片的三维建模方法是作为手工建模的一种辅助手段,可以在一定程度上提高建模效率。此时照片只能用来定位规则几何体的顶点位置,然后根据这些顶点来手工创建模型。这种方式的局限在于只能创建规则几何体的三维模型,比如大楼、书本等立方体,对于不规则的网格多边形(mesh)和曲面却束手无策。

2、半自动化建模EosSystems公司开发的PhotoModeler和Re-alVIZ公司开发的ImageModeler(现被Autodesk收购)就是两种功能相似的工具软件,它们可以根据几张不同角度的照片来创建物体的三维立体模型,但在分析和计算三维场景之前,需要首先手动放置标记点,也称参考点(ReferencePoints),一个一个地对齐物体的顶点位置,或手动指定位于物体边缘的参考线(ReferenceLines),因此也被称为半自动化建模。它在创建模型之后,还能根据照片中的像素手动提取贴图材质,从而创建出照片级的具有真实感的三维模型。

3、全自动化建模建立在半自动建模工具的基础上,近来随着模式识别和人工智能等技术的发展,基于真实照片的三维建模工具的功能进一步增强,使无需人工参与的全自动化建模方式逐渐成为可能,目前业内领先的相关公司争相研发,力求取得关键技术上的突破。代号为ProjectPhotofly的实验工程项目(现改名123DCatch)是Autodesk实验室(Autodesklabs)里的一款实验性工具软件,目前处于研究、开发和测试阶段,现可以试用其全自动化的建模功能。只需把同一静止物体的多角度照片输入,该工具会通过网络,把这些照片传送到后台的Autodesk云计算系统,经过大量的自动识别和计算之后,输出经过了三维重建后的3Dmesh模型。由于该技术极为复杂,且容易受到物体的复杂度以及实际输入的照片序列与理想值之间差别等各方面的干扰和影响,实际部分制作仍需要一些手工调校,以辅助计算机进行识别。基于真实照片的全自动建模技术集中了各类优点,代表了一种先进且高效的建模方式,值得进一步关注和研究。本文以实验项目ProjectPhotofly为例,探索其基本建模方法和制作流程。

全自动化建模方法、流程与技术原理

1、基本方法本文以实验项目Autodesk123DCatch/ProjectPhotofly为例,介绍该软件创建三维模型的基本方法。Autodesk123DCatch/ProjectPhotofly是一种基于多张真实照片分析计算后,自动生成具有照片级真实感(photo-realistic)的三维立体模型和场景的客户端-服务器架构的软件。它通过客户端与用户交互,利用后台的服务器组来计算和处理照片中的信息,最后自动生成三维场景模型。它把待建模的物体归为四种基本类型:小型静止物体、室内环境和装饰物、静止的人像以及建筑物等室外大型物体,这四种类型物体的基本建模方法如图1所示。

2、主要流程(1)使用数码相机拍摄原始的照片图像集。(2)在Autodesk123DCatch客户端中选取CreateaNewCapture,登录Autodesk账户后,可以选取步骤(1)中准备的照片集,通过因特网把它们提交到后台进行计算。(3)照片集被提交到后台后,Autodesk123DCatch利用高性能的云计算服务器组对其进行一系列的计算,生成具有照片级真实感(photo-realis-tic)的三维场景模型(默认为Mobile最低质量的模型)。(4)3dp格式的三维场景模型(PhotoScene)通过网络被传回客户端后,可以在客户端里进行增加修改照片,调校相机的位置,手动缝合照片,加注参考点,以自由视角观察三维模型,对模型进行修改和裁剪,重新提交后台计算,以获取高精度的三维模型等各项操作。(5)流程(2)~(4)是可重复的过程,可以不断地对照片、模型和其它各个参数进行调校,以得到更加精准、真实且高质量的三维场景模型。(6)可以在本地保存已完成计算后生成了三维场景的文件和项目(3dp),无需重新向云计算服务提交,便可在本地重建。(7)可以导出三维场景文件为dwg或obj格式,以便其它三维软件如AutoCAD、3dMax、Maya等导入该三维场景后继续使用。

3、方法要点和注意事项建模方法:鉴于实现该建模方法的主要技术原理是对于照片集的分析和计算,可以说拍摄和捕捉照片图像这个流程是最重要的环节,因为算法是相对固定的(虽然算法也在不断地改进和发展),它作为少数几个能由用户所决定和控制的环节,直接决定了创建模型的成败以及模型的质量。原始的照片集是否合格,除了照片本身是否清晰、是否过暗、是否过度曝光以外,还需要满足以下几点要求:(1)应每隔5度~10度就围绕建模对象拍摄一张照片,这样40张~50张照片就可以对该物体进行360度的全覆盖,还可以从不同的高度(比如底部和顶部)或角度来拍摄,以尽量捕捉该物体各个部位的图像信息。值得注意的是,由于经过三维重构后生成的是网格(Mesh)模型,而不是实体模型,因此模型实际上是空心的。如果物体某一面没有被拍摄到,这个模型就没有闭合,从这个角度观察模型时三维引擎的渲染就会出现异常。(2)照片应尽量只捕捉建模对象,而最大化地减少其它背景图像的干扰,可以使用二维图像制作工具如photoshop来裁剪图像。(3)如建模对象是人像,就如同画人像素描一样,拍照时人应处于静止状态。目前还无法对活动的物体进行建模,因为该识别是基于照片中的像素的,且假设物体是静止的,只是因照相时的角度不同才使同一个像素的位置发生了偏移。(4)如建模对象为建筑物等宏大物体,不要让镜头前有移动的物体或静止物体如树木遮挡建筑物的外观。这类建筑物般的宏大物体应以中远距离拍摄为主,镜头不要推得太近,使照片中只剩下过度细节的部分,从而不利于计算时分析照片中部位在整体所处的位置,以及相机的方位。如果需要建筑物呈现出细节部分,也可以近距离地拍摄几张照片作为补充。(5)目前由于后台计算算法的不完善,应尽量避免出现透明状的被摄物体或照片中出现由光线反射所形成的高光亮点。最好在明亮的环境中拍摄,不要使用闪光灯。也应该避免出现阴影,这些都很有可能造成软件引擎无法有效识别照片中的像素,影响模型的质量或使照片无效,而不能产生建模用的网格模型数据。图3进行了相应的展示,可见由于物体表面光滑易反光形成亮点,造成自动生成模型的部分表面坑坑洼洼。(6)软件引擎需要识别各个照片中的像素,来判断被摄物体和相机的相对位置,以便能把照片集都缝合(Stitching)在一起,照片与照片之间的像素至少要有50%的重叠部分。建模注意事项:为了得到更接近真实的三维模型,可以不断地调校,实际上流程(2)~(4)是可重复的过程。可调校的参数对于最终生成的三维模型具有很大的影响,具体包括:(1)可能是由于原来照片中细小的缺陷,也可能是建模算法还不够完善,模型建立后应从各个角度仔细观察与原有物体之间的差异。对于模型中不精准的部位,可以通过增补或替换照片来重新计算结果,也可以通过加入物体局部的照片来提高模型细节部分的表现。(2)相机的标定和方位识别。如果相机标定出现错误,会造成不相邻的照片被错误地缝合在一起,而所有照片准确无误地缝合在一起,是建立精确三维模型的前提和关键因素。照片缝合错误主要由两种原因造成,首先是在相邻的照片间缺少足够重叠的像素;其次是某些照片间的相似点太多,计算机无法有效识别,比如从建筑物各个角度拍摄的照片大同小异,有时连人眼也无法分辨其中的差异。对于无法识别而错误缝合在一起照片,此时首先需要手动对其进行解耦合(unstitched),然后通过添加参考点或参考线条的方法来帮助计算机更好地识别。比如对多张照片中出现的同一位置,可以加入参考点,让计算机知道A图中的这里,其实就是B图中的那里。此外,也可以进行手动缝合(Stitching),来避免因计算机无法有效识别而不能准确缝合照片的问题。(3)可以调整模型的质量精细等级来得到效果更好的网格模型。网格模型的精细度与网格的分辨率也有很大的关联,Autodesk123DCatch中所生成的网格质量精细等级分为:Mobile(计算速度最快,最低分辨率的网格),Standard(计算速度和网格的分辨率都适中),Maximum(计算量最大,分辨率极高的网格)。由于分辨率越高,所需的计算量就越大,为了在保证模型质量的前提下尽量提高建模的效率,可以在调校阶段先使用低分辨率的网格构建草图级的模型,然后进一步地精细化。#p#分页标题#e#

4、技术原理浅析基于照片生成网格模型的核心技术由一组计算机图形学、计算机视觉等相关学科的算法组成,按计算顺序主要包括:照片识别?照相机标定和相机方位估算?照片自动缝合(Stitching)?照片中像素的抽取?自动生成点云(AutomaticPointCloud)?三维重构网格模型(3DMesh)?用抽取出的像素作为材质和纹理贴图对网格模型相应部位进行绑定操作?最后生成具有照片级真实感(photo-realistic)的三维场景模型。

首先要创建一个虚拟的三维场景空间。对于每张照片,Autodesk123DCatch都会去计算拍摄它的相机参数:空间中的地点与方位信息、焦距和非线性失真等。每个完成计算的相机都会被安放在虚拟的三维场景空间内相应的坐标上,被称为“虚拟相机”,它与所拍摄的照片相绑定,而照片被摆放成特定的角度,也就是从相对应相机的可视锥体看上去,照片会非失真地被显示在背景上。照相机标定和相机方位估算是由图像抽取三维模型首先要解决的两个关键问题。“它指的是由若干已知的三维点来确定照相机的内部参数(焦距)和外部参数(方位)。照相机方位(位置和方向)的估算与照相机标定紧密相关。如果所用的相机经过标定,由图像恢复3D构造的问题就大大简化。”[5]通过计算机视觉技术可以识别照片中物体表面和各个部件的轮廓,在虚拟空间中用大量有规则的点来表示,从而生成点云。通过这些点云数据,可以用三维重构技术来恢复被测表面的网格模型(3DMesh),然后用从照片中该部位抽取出的像素作为材质和纹理贴图,对网格模型中相对应的部位进行绑定操作。

最后所生成的三维场景模型在Autodesk123DCatch中被称为PhotoScene(照片场景),它包括“经过校准的虚拟相机及其相关联的没有变形的背景照片、自动生成的三维点云和贴有照片纹理的三维网格模型,以及一个可缩放的全局标尺和坐标系统”[6],输出为3dp格式。可见相关的算法种类纷繁复杂,基于真实照片集来自动计算出被摄物体的三维立体模型需要耗费大量的计算能力,而常见的PC个人计算机无法满足需求,因此Autodesk123DCatch才用了客户端-服务器模式来解决这个问题。客户端负责与用户之间的交互,后台的服务器组负责信息数据的计算和处理。Autodesk123DCatch的后台的支撑服务,利用了近年来炙手可热的云计算技术,来提供以上一系列大规模的计算需求。“从技术层面上来说,云计算是分布处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridCom-puting)几种技术发展后进行综合的结果,也可以说是这些IT概念在商业上的一种新的融合与实现。”[7]这种服务的最大好处是能够合理配置计算资源,提高计算资源的利用效率,还能够降低成本,并支持海量信息的计算和处理。虽然本文重点在如何应用上,但仍有必要对基于照片自动生成三维模型的技术原理作简单的介绍。这些知识对于如何更好地理解和应用这套系统,避免各种缺陷和不完善(目前仍属于Autodesk公司的实验性工程项目),创建更高质量的模型都是必不可少的。本人不是这套软件的研发人员,具体技术是核心机密,所以这里只能浅尝即止。

总结

基于真实照片自动创建三维立体模型,是指计算机通过对不同视角的二维数码照片的识别和计算,来重建物体的三维模型。它是近些年快速发展起来的基于计算机图形学和计算机视觉识别的重要研究方向,目前仍属于前沿科技,虽不时有研究成果公布于众,但实际的商业软件和应用案例还比较少。本文以Autodesk公司实验室中的实验性项目Autodesk123DCatch/ProjectPhotofly为例,从应用的角度重点论述了其基本方法、相应流程、操作要点和注意事项,并初步探索了其实现的技术原理。它可以快速、精准、高效地创建复杂物体的三维网格模型,且可以获得照片级的真实效果,鉴于其对于未来的影视三维动画制作带来了革命性的影响,值得进一步关注和应用。