zoukankan      html  css  js  c++  java
  • 3分钟看懂人脸识别原理

    人脸识别流程:

    1. 人脸定位

    输入是原始图像,输出是人脸所在位置的矩形框,这里需要用到一个模型(这个模型可以用回归的方式去训练);

    2. 人脸特征点检测(landmarks)

    输入是(原始图像+人脸矩形框=人脸图像),输出是特征点坐标(嘴巴的坐标,眼睛的坐标等),这里需要用到一个模型(这个模型可以用回归的方式去训练);

    3. 人脸对齐&特征提取

    输入是(当前人脸landmarks+标准人脸landmarks+特征提取矩阵),过程是将对齐后的人脸输入到CNN之类的网络,得到人脸特征(如128维的人脸特征)(详细了解请看这里

    4. 应用

    接下来就可以根据具体需求做不同的事了,比如判断两张照片是不是一个人,就可以对比步骤3得到的128维矩阵的相似度,如果高于阈值就是一个人,一般计算人脸特征矩阵的相似度会用余弦距离

    ps:可以直接使用dlib库来提取人脸128维特征,支持cpu

    其他

    人脸识别范围很广泛,目前有十个关键技术

    1. 人脸检测(face detection)是检测出图像中人脸位置的技术

    一般输入是一张图片,输出是人脸所在位置,常用矩形框标记在原图之上;

    2. 人脸配准(face alignment)是定位人脸五官关键点坐标的技术

    一般输入是人脸图像+人脸坐标框,输出是五官关键点坐标序列,输入一般会统一尺寸;

    3. 人脸属性识别(face atrribute)是识别人脸的性别、年龄、姿态、表情等属性的技术

    一般输入是人脸图像+五官关键点坐标,输出是人脸属性值,输入一般会调整统一尺寸和旋转角度,保证数据的统一性再做分析;

    4. 人脸特征提取(face feature extraction)是将人脸图像转化为一串固定长度的数字串的技术

    一般输入是人脸图像+五官关键点坐标,输出是一串固定长度的数字串;

    5. 人脸对比(face compare)是对比两张人脸相似度的技术

    一般输入是两张人脸的特征(即两个固定长度的数字串),输出是两张人脸的相似度,人脸验证、人脸识别、人脸检索都是在人脸比对的基础上加一些策略来实现;

    6. 人脸验证(face verification)判断两张人脸是否为同一个人的技术

    一般输入是两个人脸特征,通过计算相似度并且和预先设置的阈值进行比较,输出为是否为同一个人;

    7. 人脸识别(face recognition)是识别出输入人脸对应身份的技术

    一般输入是一个人脸特征,通过对比数据库已有的人脸特征计算最高的相似度并与阈值比较,输出是人脸对应的身份,当相似度小于阈值时,输入人脸不在数据库中;

    8. 人脸检索,是查询和输入人脸相似的人脸序列的技术

    一般输入是一个人脸特征,通过对比数据库已有人脸特征计算相似度,并对一定数量的人脸根据相似度由高到低进行排序作为输出;

    9. 人脸聚类(face cluster)是将一个集合内的人脸按身份进行分组的技术(这个集合中可能会有多张人脸属于一个身份)

    一般输入是一个人脸集合,将集合内的人脸两两对比相似度,通过分析,将集合内的人脸图按身份进行分组作为输出;

    10. 人脸活体(face liveness)是判断人脸是来自真人还是攻击假体(照片、视频等)的技术

  • 相关阅读:
    转:SkipList跳表
    git操作
    JAVA小工具打包
    Java数字证书操作
    mysql创建数据库和用户
    解决node-sass安装不了的问题
    vscode + angular
    ng2 quickstart-primeng
    ng2 quickstart
    使用淘宝的npm代理下载模块
  • 原文地址:https://www.cnblogs.com/niulang/p/13183040.html
Copyright © 2011-2022 走看看