大家好,欢迎来到人脸识别算法分享系列课程!
本次课程,分为三个部分,第一个部分是人脸识别概述,第二个部分是讲解人工神经网络,第三部分是人脸识别算法概述。
下面我们进入第一部分
人脸识别是 计算机视觉-computer Vision 领域里很典型的应用。
人脸识别的目的就是要判断图片和视频(视频是由图片构成的)中人脸的身份是什么。
人脸识别是身份识别的一种,它跟身份证识别、指纹识别、虹膜识别都是相似的。可以将人脸识别和大家熟悉的身份证做对比:
这是检测给定图片中的人脸(Face)的位置、相应的面部属性和人脸质量信息,位置包括 (x,y,w,h),面部属性包括性别(gender)、年龄(age)、表情(expression)、魅力(beauty)、眼镜(glass)、发型(hair)、口罩(mask)和姿态 (pitch,roll,yaw),人脸质量信息包括整体质量分(score)、模糊分(sharpness)、光照分(brightness)和五官遮挡分(completeness)。
人脸检测与分析官方说明文档:
https://cloud.tencent.com/document/product/867/32800#API-Explorer
人脸检测与分析调用接口:API 3.0 Explorer
对请求图片进行人脸关键点定位,计算眉毛、眼睛、鼻子、嘴巴、脸型轮廓、眼珠等90个关键点。了解详情
人脸检测与分析官方说明文档:
https://cloud.tencent.com/document/product/867/32800#API-Explorer
人脸检测与分析调用接口:API 3.0 Explorer
五官定位demo体验:https://cloud.tencent.com/act/event/iaidemo
•人脸对齐是将不同角度的人脸图像对齐成同一种标准的形状。
•先定位人脸上的特征点,然后通过几何变换(仿射、旋转、缩放),使各个特征点对齐(将眼睛、嘴等部位移到相同位置)。
•对给定一张人脸照片,和已有人脸库中的N个人脸进行比对,找出最相似的一张脸或多张脸,并给出相似度排序,实现1 : N或M:N搜索。了解详情
•人脸搜索调用接口:API 3.0 Explorer
•五官定位demo体验:
https://cloud.tencent.com/act/event/iaidemo
对请求图片进行人脸关键点定位,计算眉毛、眼睛、鼻子、嘴巴、脸型轮廓、眼珠等90个关键点。了解详情
人脸验证官方说明文档:
https://cloud.tencent.com/document/product/867/32800#API-Explorer
人脸人脸调用接口:API 3.0 Explorer
人脸验证demo体验:
https://cloud.tencent.com/act/event/iaidemo
对请求图片进行人脸关键点定位,计算眉毛、眼睛、鼻子、嘴巴、脸型轮廓、眼珠等90个关键点。了解详情
人脸检测与分析官方说明文档:
https://cloud.tencent.com/document/product/867/32800#API-Explorer
人脸检测与分析调用接口:API 3.0 Explorer
五官定位demo体验:https://cloud.tencent.com/act/event/iaidemo
l人脸识别的应用变得越来越广泛,只要跟身份识别相关的未来都有可能使用人脸识别。下面列几个典型的应用场景。
1.门禁系统
2.安防系统
3.无人超市
4.电子护照及身份证
5.自主服务系统(如ATM)
6.信息安全系统,如刷脸支付
7.娱乐型应用,如抖音里的部分道具
直观理解人工神经网络的训练过程
l层,多个层组合成网络(或模型)。
l输入数据和相应的目标。
l损失函数,即用于学习的反馈信号。
l优化器,决定学习过程如何进行。
梯度(gradient)是张量运算的导数。它是导数这一概念向多元函数导数的推广。多元函数是以张量作为输入的函数。
假设有一个输入向量 x 、一个矩阵 W 、一个目标 y 和一个损失函数 loss 。你可以用 W 来计算预测值 y_pred ,然后计算损失,或者说预测值 y_pred 和目标 y 之间的距离。
y_pred = dot(W, x)
loss_value = loss(y_pred, y)
如果输入数据 x 和 y 保持不变,那么这可以看作将 W 映射到损失值的函数。
loss_value = f(W)。
假设 W 的当前值为 W0 。 f 在 W0 点的导数是一个张量 gradient(f)(W0) ,其形状与 W 相同,每个系数 gradient(f)(W0)[i, j] 表示改变 W0[i, j] 时 loss_value 变化的方向和大小。
张量 gradient(f)(W0) 是函数 f(W) = loss_value 在 W0 的导数。
(1) 抽取训练样本 x 和对应目标 y 组成的数据批量。
(2) 在 x 上运行网络,得到预测值 y_pred 。
(3) 计算网络在这批数据上的损失,用于衡量 y_pred 和 y 之间的距离。
(4) 计算损失相对于网络参数的梯度[一次反向传播(backward pass)]。
(5) 将参数沿着梯度的反方向移动一点,比如 W -= step * gradient ,从而使这批数据上的损失减小一点。
描述的是一维参数空间中的梯度下降,但在实践中需要在高维空间中使用梯度下降。
神经网络的每一个权重参数都是空间中的一个自由维度,网络中可能包含数万个甚至上百万个
参数维度。
此外,SGD 还有多种变体,其区别在于计算下一次权重更新时还要考虑上一次权重更新,
而不是仅仅考虑当前梯度值,比如带动量的 SGD、Adagrad、RMSProp 等变体。这些变体被称
为优化方法(optimization method)或优化器(optimizer)。其中动量的概念尤其值得关注,它在
许多变体中都有应用。动量解决了 SGD 的两个问题:收敛速度和局部极小点。图 2-13 给出了
损失作为网络参数的函数的曲线。
1.人脸识别问题可以描述为,给定某一场景下的静态图象或者动态序列,根据预先存储的人脸数据库识别或者认证场景中一个或者多个人的身份。
2.早期的人脸识别多采用传统机器学习算法,经典的算法如特征脸结合线性判别分析。而且研究关注的焦点更多集中在如何提取更有鉴别力的特征上,以及如何更有效的对齐人脸。随着研究的深入,传统机器学习算法人脸识别在二维图象上的性能提升逐渐到达瓶颈,于是大多数人开始转而研究视频中的人脸识别问题,或者结合三维模型的方法去进一步提升人脸识别的性能,少数学者开始研究三维人脸的识别问题。
l人脸识别领域,也是从传统机器学习算法过度到深度学习算法的。
l在机器学习阶段,人脸识别也经历了3个重要的阶段:
1.几何特征阶段
2.表象特征阶段
3.纹理特征阶段
在深度学习阶段,算法的发展也同样经历了3个阶段:
1.从最开始的 VGG 网络到 Inception 网络再到 Resnet 网络,网络模型总体上呈现出更深,更宽的趋势。
2.旷视、商汤为代表的在学术公开竞赛中取得好成绩的这些厂商,开始发展实际业务为起点,通过不断扩大他们的实际数据集合,算法性能也在逐渐的提升。
3.进一步增加数据量以提升算法性能以外,与第一阶段相反,大家开始在不降低识别性能的基础上,研究网络的轻量化。轻量化的主要目的有两个,一个是提升算法的速度,甚至能够部署到移动端;另外一个就是便于硬件实现,从而将人脸识别算法直接做成一个硬件模块。
l头部姿势
l年龄
l遮挡
l光照条件
l人脸表情
1、人脸识别概述,人工神经网络,人脸识别算法。
2*、卷积神经网络。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。