在抖音、快手等其他短视频平台中,有一项功能叫动态贴纸,自拍者只要开启此功能,就会为人脸覆盖一层特定样式的“面具”,并且可以实时判定人脸,做到“动态跟踪”,着实有趣。动态贴纸本质为美颜sdk中的脸部装饰类图片组件,现如今,它已经不再局限停留在2D,开始向3D化发展。接下来,小编将为大家介绍下2D和3D动态贴纸的区别,以及动态贴纸实现的算法依据。
一、2D和3D动态贴纸之间有何区别
一般2D动态贴纸相对来说都比较的简单直观,比如我们在美颜sdk中会经常见到的一些头饰类、耳朵类、面部装饰类等特效,并不需要特别复杂的技术支持。而3D动态贴纸通常是偏向整个面部的特效,即整张脸都是3D特效实现的。
二、动态贴纸中的算法依据和注意事项
动态贴纸若要实现,需要用到两部分算法。
1、人脸检测与关键点识别
若为“动态贴纸”,第一步必然是人脸检测与关键点识别。在有人脸的情况下获取到必须的关键点,这样我们才能准确打上贴纸。现有app中,比如FaceU和轻颜相机,贴纸基本上都是数十个人脸特征点的模板配置,也就是说,完成一个贴纸效果,最低需要数十个点位信息的支持。
2、图像渲染
OpenGL所提供的还是二维图像渲染,像是之前的美颜sdk都是在原始视频帧纹理上,进行二维渲染变动来实现效果。
3D版动态贴纸涉及到3D模型,其中就势必会涉及到渲染方面的问题。因为3D模型越精细,面数越多,渲染时给GPU所带来的压力就越大,所以需要先考虑3D模型的精细程度和大小。
需要注意的是,3D动态贴纸性能方面也需要进行简单优化,比如:在模型上点计算比较耗时,可以利用普通的模型去代替特殊的模型,这样一来每一个点都是特定的,就不需要每次都计算,所以性能也会得到一定的提升。
以上就是美颜sdk中关于动态贴纸实现的算法依据和注意事项,如果你对美颜sdk接入有需求,欢迎咨询客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。