美颜api中2D人脸识别的技术流程

在美颜api接口这种涉及娱乐的软件项目接入中,2D人脸识别的应用相对还是比较广泛的。那么2D人脸识别一般是怎么实现的?
2D人脸识别因为研究的时间较长,开源数据集也比较多,因此诞生了一批准确率较高的人脸识别算法,如deepface、facenet、arcface等,这些算法的流程基本都可以按照前面说的四个大步骤(图像数据采集、人脸检测、特征提取、信息比对)进行、下面对这些2D人脸识别的实现步骤进行分析。
在这里插入图片描述

一、图像数据采集
图像采集主要是获取目标(这里主要是人脸)的RGB彩色图像,2D图像的获取相对简单,只需要获取到RGB的图像信息,不需要深度信息。获取图像数据的方式只需要一个普通摄像头模组即可,简单方便。
图像采集完毕之后需要对图像进行预处理,如滤波、亮度调整、去噪等,保证输出图片的质量达到要求,减少干扰。预处理是比较重要的一个环节,预处理做好了能提高后面识别步骤的准确度。常用的预处理算法有均值滤波、高斯滤波等线性滤波;中值滤波、双边滤波等非线性滤波;腐蚀、膨胀、开运算、闭运算等形态学滤波;还有伽马矫正、亮度调整、基于直方图统计的图像增强等。
在这里插入图片描述

二、人脸检测
人脸检测的目的是找到人脸的区域,并且将人脸的区域输出给后面的特征提取模块,完成人脸的特征提取。人脸检测步骤是一个很关键的步骤,获取人脸的boundingbox不仅只能包含人脸部分而且还要包含全部的人脸区域。如果boundingbox的大小或者坐标不准,就会使后面的特征提取步骤提取的特征不准,最后导致识别准确率下降,出现误识别。
2D人脸检测研究的时间比较长,所以相对更成熟,检测方法有传统的haar方法、还有神经网络实现的方式,而且速度很快。
1、基于haar特征
该算法灵感来源与haar小波变换,捕抓图像中的边缘、变化等信息,从而检测出人脸的位置。其检测速度及精度都达到了不错的水平,基本图片中的正脸都能检测出来,但是对侧脸检测的精度没有mtcnn高,该算法已经在opencv中实现,使用方便。
2、Face R-CNN
基于Faster R-CNN框架针对人脸检测做了专门的优化。引入了更好的center loss使得类内的差异性更小,提高了负样本在特征空间的差异性从而提高了算法的性能。
3、MTCNN
多任务的人脸检测方法,将人脸区域的检测跟人脸的关键点检测放到一起,基于cascade框架,总体上分为PNet、RNet、ONet三部分。MTCNN的准确度很高,侧脸、正脸、模糊的脸基本都能检测的比较准,运算速度都比较快。
三、特征提取
特征提取阶段是人脸识别最重要的阶段,这个阶段设计的网络模型的好坏直接决定了人脸识别准确率的高低。2D的人脸数据只有RGB,2D人脸特征提取的方法就很多了,传统算法有SURF、SIFT等,基于神经网络的有Inception、VGG、ResNet、Inception-ResNet等。
基于CNN神经网络的特征提取模型是目前的主流。CNN神经网络特征提取的实现分为四个步骤:神经网络设计、损失函数设计、训练、推理。
以上就是美颜api中2D人脸识别的技术流程简介。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值