美颜SDK的“变形算法”一直以来都是计算机视觉与图形学、图像处理领域的一个研究热点,用大白话来解释就是将一张图变形成另外一张图,因为其复杂和多变的特性,在美颜SDK中得到了广泛应用。
一、背景
随着近几年短视频和直播等行业的兴起,几乎可以在每一个平台中都能看到美颜SDK的图像变形特效,例如大家熟知的抖音。因为图像变形特效既可以美化人像,也可以“丑化”人像。其中人脸美型算法就是以图像变形算法为基础,从而产生大眼、瘦脸等特效,而恶搞的丑化变形则可以让用户看到一些非常有趣的呆萌形象,类似的效果在移动视频平台上层出不穷,例如哈哈镜和大脸特效,让短视频拍摄增添了不少乐趣。
接下来,小编将对此技术中用到的算法进行简单地分类介绍。
1、图像仿射变换
图像仿射变换是图像处理和计算机图形学中最基础的二维坐标变换,实际上就是二维坐标的平移、旋转、缩放、翻转与错切的组合变换。仿射变换的特点是保持图像在二维平面中的“平直性”和“平行性”,但是角度会随着参数的改变而改变。
2、图像透视变换
透视变换,是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面绕迹线旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何不变的变换。透视变换可以直观地理解空间变换或者三维坐标变换,而仿射变换则可以直观理解为平面变换或者二维坐标变换。由于三维空间包括了二维平面,因此,仿射变换则可以直观理解为二维坐标变换。由于三维空间包括了二维平面,因此,仿射变换是透视变换的一种特殊形式。
3、图像反距离加权插值变形
前面小编介绍了最基础的仿射变换和透视变换,虽然它们应用广泛,但在很多情况下无法实现复杂的图像变形。那么,一种简单地反距离加权插值变形算法应运而生(简称IDW插值算法)。
IDW插值算法比较简单,对于美颜SDK中的瘦脸、胖脸等简单的人脸变形特效有不错的效果,速度也比较快。当然,速度本身与点位多少成正比,点位越多,速度越慢,这也限制了它无法做一些非常复杂的人脸全局变形。