[陈云海]
随着移动互联网、智能终端及高性能编解码技术的发展,视频丰富多彩的表达形式促成了手机短视频成为爆款应用。加上智能手机摄像头硬件水平的提升,能拍出高质量图像的智能手机自然也就成为了拍摄短视频的首选工具。但是,智能手机的摄像头的默认参数一般调校为清晰出片即可,不考虑过多的艺术加工,再加上拍摄者往往不具备摄影师的拍摄技巧,容易受灯光、环境、角度、抖动等因素影响,所以各种图像修正优化工具应运而生,它们可以为短视频进行各种优化处理,如美颜,滤镜,特效等。
传统的图像修正优化工具一般只能对一些简单的参数进行调整,例如调整亮度/饱和度/色相、黑白效果、炫彩效果等。随着人工智能技术的不断发展进步,短视频的图像处理功能得到了极大的加强,拥有更加高级的特效功能。通过人工智能相关技术,短视频工具可以跟踪人像的特定部分进行不同的特效优化,从而实现如加眼影、大眼、瘦脸、动态贴纸、三维饰品等3D特效效果。本文对三维AR视频特效的关键技术进行了研究。
首先,通过人脸识别技术跟踪人脸视频画面得到人脸的位置、五官位置、相对于镜头的旋转角度、三维空间位置等信息。
第二,通过三维渲染引擎可以构造一个虚拟的三维空间,再通过算法把人脸的相关信息映射到构造的三维空间里,最后把人脸与虚拟的三维物体一起渲染到输出画面,从而实现现实的人脸与虚拟三维物体的融合。
第三,将短视频的视频画面输入虚拟三维空间,同时进行人脸识别与三维物体绑定,最后输出到应用预览画面上或编码输出视频文件,实现三维AR视频特效。如图1所示。
图1 三维AR视频特效
第一步,人脸检测(face detection)。(如图2所示)
图2 人脸检测
人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把这其中有用的信息挑出来,并利用这些特征实现人脸检测。传统的人脸检测方法基于以上特征采用Adaboost学习算法,近年出现的CNN,MTCNN,PCN等算法能够实现高速准确的人脸检测。
第二步,五官对齐(face alignment)。(如图3所示)
人脸识别系统可使用的特征通常分为视觉特征、像素统计特征、人脸图像变换系数特征、人脸图像代数特征等。人脸特征提取就是针对人脸的某些特征进行的。人脸特征提取,也称人脸表征,它是对人脸进行特征建模的过程。人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。基于知识的表征方法主要是根据人脸器官的形状描述以及他们之间的距离特性来获得有助于人脸分类的特征数据,其特征分量通常包括特征点间的欧氏距离、曲率和角度等。人脸由眼睛、鼻子、嘴、下巴等局部构成,对这些局部和它们之间结构关系的几何描述,可作为识别人脸的重要特征,这些特征被称为几何特征。基于知识的人脸表征主要包括基于几何特征的方法和模板匹配法。
图3 五官对齐
第三步,姿态识别与三维重建(face reconstruction)。(如图4所示)
图4 三维重建
传统3D人脸重建方法,大多是立足于图像信息,如基于图像亮度、边缘信息、线性透视、颜色、相对高度、视差等等一种或多种信息建模技术进行3D人脸重建。基于模型的3D人脸重建方法,是目前较为流行的3D人脸重建方法;3D模型主要用三角网格或点云来表示,现下流行的模型有通用人脸模型(CANDIDE-3)和三维变形模型(3DMM)及其变种模型,基于它们的3D人脸重建算法既有传统算法也有深度学习算法。端到端3D人脸重建方法,是近年新起的方法;它们绕开了人脸模型,设计自己的3D人脸表示方法,采用CNN结构进行直接回归,端到端地重建3D人脸。
3D渲染是通过电脑计算的方式把模型从 3D 模型网格呈现出 2D 真实感高的图像,计算过程包含光线及辅助光线,材料的材质和纹理,相机相关设置等综合变量。
2.3.1 3D实时渲染
实时渲染主要应用在游戏领域,电脑会实时的计算和展示所渲染的结果,帧率在 20~120 频率左右。因此需要在帧率一定的情况下最大化的展示真实性。计算机在图像处理的过程中会用到一些”技巧“是肉眼感官为”真实“世界,这些”技巧“都包括镜头光晕(lends flare),景深(depth of field)和动态模糊(motion blur)。计算机的算力决定了渲染的真实感,通常需要 GPU 来协助完成。
2.3.2 3D非实时渲染
3D 非实时渲染通常是电影或视频,借助计算机有限的算力,通过延长渲染时间达到更加真实的效果。射线追踪(ray tracing)和辐射度算法(radiosity)是非实时渲染常用的技巧,以达到更加真实的感觉。随着技术的发展,不同种类的物质形式有了更精确的计算技巧,例如粒子系统(模拟雨,烟和火),容积取样(模拟雾,灰尘),以及焦散性质和子面散射(subsurface scattering)。渲染过程中不同层的物质是分开计算后合成为一个最终布景。
2.3.3 渲染API
目前的计算设备一般需要GPU来协助进行3D渲染,而GPU提供的渲染能力一般通过D3D和OpenGL来提供,D3D为windows平台上微软提供的标准,而OpenGL为跨平台的开放式图形接口库,可以适用各种平台更为通用。如图5所示。
图5 OpenGL架构图
2.3.4 3D模型(如图6所示)
存储在计算设备上的3D模型众多,主要有:
(Xdaeobj3dsmaxmambc4dmd2fbx wxwrlstlstp3mfslprtdwgosgiges)其中obj格式比较通用,可以通过一些3D建模软件生成3D模型,如3DMAX、MAYA。
图6 对人像进行3D建模
2.3.5 3D引擎
直接使用渲染API进行3D渲染较为繁琐,所以一般会使用3D引擎来协助进行一些常用的渲染逻辑,3D引擎还会提供多样的3D渲染相关功能,例如3D动画。
2.3.6 3D动画渲染流程
进行3D动画渲染的一般流程为:
(1)准备需要渲染的场景,场景中包括需要渲染的各种模型
(2)调用一次渲染函数对场景进行一帧的渲染输出
(3)根据相关动画逻辑,调整场景里各模型的参数(如坐标/大小/纹理)
(4)再次调用渲染函数对场景进行下一帧的渲染输出
(5)循环3/4步骤直到结束
本文对三维AR视频特效的关键技术进行了研究,分析了三维AR视频特效的处理过程和步骤,总结了目前业界用来处理三维AR视频特效的相关技术,通过应用上述技术,可以实现商用效果的三维AR视频特效。