美颜相机正在被越来越多爱美的朋友们熟悉并使用,无论是旅游还是逛街,都能看到人们使用美颜相机拍照的身影。那么美颜相机里神奇的瘦脸、磨皮、美白等功能是如何实现的呢?
美颜一张照片首先要进行人脸检测,即检测图片中是否存在人脸,并定位其位置。这个过程主要的技术难点在于图片中可能存在光照条件变化、人脸姿态变化、人脸表情变化以及遮挡等问题。
在深度学习理论诞生之前,人们主要使用人工设计好的特征来训练检测器检测人脸;当深度学习在计算机视觉领域占据绝对主导地位之后,人们便开始尝试用深度神经网络来做人脸检测。目前,主流的用来训练人脸检测模型的方法有两种,一种是使用通用的目标检测网络,如SSD(Single Shot MultiBox Detector,单次多边框探测器)、YOLO(You Only Look Once,只看一遍图片就能把目标检测出来)等;另一种是专门的人脸检测网络,如CascadeCNN(Convolutional Neural Network Cascade for FaceDetection,级联结构的卷积神经网络)等。
检测到人脸后,就需要对人脸关键点进行定位,即对眉毛、眼睛、鼻子、嘴巴以及脸部轮廓进行定位。传统的人脸关键点定位技术有ASM(Active Shape Model,主动形状模型),CPR(Cascaded Pose Regression,级联姿势回归)等。
有了定位到人脸的关键点以后,便可以对人脸区域进行瘦脸、磨皮、美白等“美颜”操作。瘦脸是通过对像素位置进行偏移来实现对脸部区域的放大、缩小,即由变形前坐标根据变形映射关系,得到变形后坐标。这其中变形映射关系是最关键的,不同的映射关系将得到不同的变形效果。平移、缩放、旋转等对应的都是不同的映射关系,即不同的变换公式。在实际计算过程中,要运用插值的方法来保证变形后的图像是连续、完整的,这样图像才不会失真。
磨皮是使皮肤看起来更加光滑,其主要应用了计算机图像处理的一些滤波算法,如高斯滤波或双边滤波等。
美白是在图像处理领域中使用三原色来保存图片的颜色信息,三个值的取值范围是0~255,越靠近0,图像就越黑;越靠近255,图像就越白。