随着短视频、直播软件一类app的流行,美颜sdk的应用也越来越广泛。所谓“美颜”,简单解释下,就是通过视频(图片)技术对人脸进行美化。但是就“美化”这个词,却牵扯到众多深度学习、图像处理、图像学技术。今天小编就给大家讲讲,美颜sdk的基础技术、算法原理,以及代码相关的知识。
视频直播美颜SDK算法代码解析-LMLPHP

一、人脸检测

美颜sdk中所用到的人脸检测技术指的是对视频中、图片中的人脸进行检测,并且准确定位人脸的位置。而人脸检测主要的技术难点在于,如何在特定光照条件,人脸姿态变化、人脸表情变化、遮挡等情况下,从视频或图片中检测出人脸。而人脸检测的发展时期也分为两个时期,一个是深度学习时期。在深度学习之前,人脸检测主要是套用人工设计好的特征,根据人工特征来训练检测器来检测人脸。但当深度学习在计算机视觉领域占据绝对主导地位之后,人们便开始尝试用深度神经网络来训练人脸检测模型。

二、人脸关键点定位

这种技术是对人脸中眉毛、眼睛、鼻子、嘴巴以及脸部的轮廓进行定位。它是紧接在人脸检测后,首先在视频或者图片中检测到人脸,然后才对检测到的人脸做关键点定位。人脸关键点定位技术同人脸检测技术一样,在实际应用中,也存在人脸的尺度、光照、表情、姿态、遮挡等问题,因此绝大多数视频或者图片获得准确的人脸关键点,也是一个比较难的任务。
三、代码解析
//
// MGDetectRect.h
// MGFacepp
//
// Created by Megvii on 2017/10/18.
// Copyright © 2017年 megvii. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, MGOrientation) {
MGOrientationLeft,
MGOrientationUp,
MGOrientationRight,
MGOrientationDown,
};

@interface MGDetectRectInfo : NSObject

@property (nonatomic, assign) float confidence;

@property (nonatomic, assign) float angle;

@property (nonatomic, assign) MGOrientation orient;

@property (nonatomic, assign) CGRect rect;

@end

相同的,人脸关键点定位技术的发展,也可分为深度学习前的时期和深度学习时期:在前期,传统的人脸关键点技术,包含主动形状模型(ASM),主动外观模型(AAM)等,而后期神经网络技术的发展,也使得人脸关键点检测逐渐建立在此技术上。当有了关键点后,美颜sdk中的瘦脸、磨皮、美白等“美颜”操作才能正常进行。这些算法一般都应用在手机等移动设备中,例如在Android上可以使用OpenGL ES,在iOS上可以使用Metal根据人脸关键点的位置,对人脸进行瘦脸、磨皮、美白等渲染。
视频直播美颜SDK算法代码解析-LMLPHP

综上,这就是美颜sdk中所用到的基本技术和相关的算法原理,由于篇幅原因,关于磨皮,美白等方面的详解将放到下期再进行讲解。如果您对美颜sdk开发感兴趣,欢迎咨询官方客服。

声明:本文由美狐原创,未经允许禁止转载,谢谢合作。

11-18 08:21