百度AI人脸

作者:神秘网友 发布时间:2020-10-31 20:05:39

百度AI人脸

百度AI人脸

人脸识别技术

人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像机或者摄像头采用含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进行对检测到的人脸进行脸部的一系列相关技术操作,叫人脸识别。

  • 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。
  • 生物特征识别技术所研究的生物特征包括**脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)**等。
  • 相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。

1.1、三大关键技术

  1. 基于特征的人脸检测技术

    通过采用颜色、轮廓、纹理、结构或者直方图特征等进行人脸检测。

  2. 基于模板匹配人脸检测技术

    从数据库当中提取人脸模板,接着采取一定模板匹配策略,使抓取人脸图像与从模板库提取图片相匹配,由相关性的高低和所匹配的模板大小确定人脸大小以及位置信息。

  3. 基于统计的人脸检测技术

    通过对于“人脸”和“非人脸”的图像大量搜集构成的人脸正、负样本库,采用统计方法强化训练该系统,从而实现对人脸和非人脸的模式进行检测和分类。

1.2、四大特征

  1. 几何特征

    从面部点之间的距离和比率作为特征,识别速度快,内存要求比较小,对于光照敏感度降低。

  2. 基于模型特征

    根据不同特征状态所具有概率不同而提取人脸图像特征。

  3. 基于统计特征

    将人脸图像视为随机向量,并用统计方法辨别不同人脸特征模式,比较典型的有特征脸、独立成分分析、奇异值分解等。

  4. 基于神经网络特征

    利用大量神经单元对人脸图像特征进行联想存储和记忆,根据不同神经单元状态的概率实现对人脸图像准确识别。

  1. 人脸检测在图像中找到人脸的位置;
  2. 人脸配准在人脸上找到眼睛、鼻子、嘴巴等面部器官的位置;
  3. 通过人脸特征提取将人脸图像信息抽象为字符串信息;
  4. 人脸识别将目标人脸图像与既有人脸比对计算相似度,确认人脸对应的身份。

2.1、人脸检测

人脸检测输入的是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。

常见的人脸检测算法基本是一个“扫描”加“判别”的过程,即算法在图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸、图像内容相关。开发过程中,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、或“人脸数量上限”的方式来加速算法。

2.2、人脸对齐

根据输入的人脸图像,自动定位出人脸上五官关键点坐标的一项技术

人脸对齐算法的输入是“一张人脸图片”加“人脸坐标框”,输出五官关键点的坐标序列。五官关键点的数量是预先设定好的一个固定数值,可以根据不同的语义来定义(常见的有5点、68点、90点等等)。

关于找出不同的姿态、表情、光照以及遮挡等因素的影响的人脸特征点任务拆分:

  1. 如何对人脸表观图像(输入)建模
  2. 如何对人脸形状(输出)建模
  3. 如何建立人脸表观图像(模型)与人脸形状(模型)的关联

对人脸图像进行特征点定位,将得到的特征点利用仿射变换进行人脸矫正,若不矫正,非正面人脸进行识别准确率不高,最后将矫正的人脸送入人脸识别网络,此时的人脸识别网络可以是一个分类网络,我们只需要提取分类网络中的某个层作为人脸的特征层,此时的特征才是人脸的特征。

2.3、人脸特征提取

将一张人脸图像转化为一串固定长度的数值的过程

人脸特征:具有表征某个人脸特点能力的数值串。

人脸特征提取过程的输入也是 “一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的一个数值串(特征)。人脸提特征算法都会根据人脸五官关键点坐标将人脸对齐预定模式,然后计算特征。

近几年来,深度学习方法基本统治了人脸提特征算法,这些算法都是固定时长的算法。早前的人脸提特征模型都较大,速度慢,仅使用于后台服务。但最新的一些研究,可以在基本保证算法效果的前提下,将模型大小和运算速度优化到移动端可用的状态。

2.4、人脸识别

识别出输入人脸图对应身份的算法

输入一个人脸特征,通过和注册在库中N个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”

Demo(基于百度AI)

文档接口连接:https://ai.baidu.com/docs#/Face-Java-SDK/top

1、配置maven依赖

<!-- https://mvnrepository.com/artifact/com.baidu.aip/java-sdk -->
<dependency>
	<groupId>com.baidu.aip</groupId>
	<artifactId>java-sdk</artifactId>
	<version>4.11.3</version>
</dependency>
		
<!-- base64需要改依赖 -->
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
	<groupId>commons-codec</groupId>
	<artifactId>commons-codec</artifactId>
	<version>1.12</version>
</dependency>

也可以自行下载Jar包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gma2ZB3V-1604038899345)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201030141720274.png)]

2、测试代码

package com.mengnan;

import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import org.apache.commons.codec.binary.Base64;
import org.json.JSONObject;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;

public class T2 {
    //设置APPID/AK/SK
    public static final String APP_ID = "22901459";
    public static final String API_KEY = "1tmr7DslmdF3g04UbdyQlR43";
    public static final String SECRET_KEY = "a21Yd7LCzhYWeVGy4tzRVAfVC6QAD4gg";

    public static void main(String[] args) {
        // 初始化一个AipFace
        AipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);

        // 可选:设置网络连接参数
        client.setConnectionTimeoutInMillis(2000);
        client.setSocketTimeoutInMillis(60000);

        // 可选:设置代理服务器地址, http和socket二选一,或者均不设置
//        client.setHttpProxy("proxy_host", proxy_port);  // 设置http代理
//        client.setSocketProxy("proxy_host", proxy_port);  // 设置socket代理

        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("face_field", "age");
        options.put("max_face_num", "2");
        options.put("face_type", "LIVE");
        options.put("liveness_control", "LOW");

        String image1 = base64("D:\\cc.jpg");//路径自行配置
        String image2 = base64("D:\\cc.jpg");

        // image1/image2也可以为url或facetoken, 相应的imageType参数需要与之对应。
        MatchRequest req1 = new MatchRequest(image1, "BASE64");
        MatchRequest req2 = new MatchRequest(image2, "BASE64");
        ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
        requests.add(req1);
        requests.add(req2);

        JSONObject res = client.match(requests);
        System.out.println(res.toString(2));




    }
    public static String base64(String result) {
        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        InputStream in = null;
        byte[] data = null;
        //读取图片字节数组
        try {
            in = new FileInputStream(result);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new String(Base64.encodeBase64(data));
    }


}

测试照片
百度AI人脸

测试结果:

百度AI人脸
测试照片:百度AI人脸

百度AI人脸

百度AI人脸
测试照片
百度AI人脸
结果:
百度AI人脸

百度AI人脸相关教程

  1. vue项目使用和引用百度地图的操作

    vue项目使用和引用百度地图的操作 vue使用百度地图 先安装包 npm i vue-baidu-map --save 在main.js引入 import BaiduMap from 'vue-baidu-map';Vue.use(BaiduMap, { ak: '你的百度地图密钥ak'}) 没有密钥ak的可以去百度地图网站申请 http://lbsyun.baidu.com

  2. java swing 人脸签到系统 ----- 调用 opencv 多线程

    java swing 人脸签到系统 ----- 调用 opencv 多线程 文章目录 java 源代码地址 code aliyun 软件功能展示 项目 设计的 技术问题总结 工作 进程 以及 渲染 进程 如何分离 人脸识别 sdk 的集成与调用 java 调用 opencv 特征比对 打包 exe 方法 java 多线程 java

  3. 人脸识别带四个角标的矩形

    人脸识别带四个角标的矩形 1.一直想让识别人脸的框好看一点,矩形圆形都太low,这几天在楼下看到机器识别人脸都是带四个角标的,没有说用整个矩形标注脸,在网上没找到,自己写了一个,效果没问题。 import cv2cam = cv2.VideoCapture(1.mp4)cam.set(3, 640)ca

  4. 百度首页模仿

    百度首页模仿 百度首页模仿 !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 title百度首页练习/title style body {/*全局字体样式一致直接设置body属性继承即可*/ font-size: 14px; color: #666; } div { text-align: center; /*全局都是居中直接将div设

  5. 基于OPENCV的人脸识别学习笔记

    基于OPENCV的人脸识别学习笔记 两周前收到老师要求参加模式识别比赛,大概内容是检测视频中出现的人脸,然后进行数目统计,一开始看到后毫无头绪的,毕竟这是第一次接触机器视觉类,完全没有方向,后来在同学的见一下开始学习OPENCV,也一直帮我调试程序,在

  6. 百度 python自动识别图片获取数据

    百度 python自动识别图片获取数据 自动识别图片获取数据 所需包 import requests #2.24.0import base64 #from selenium import webdriver # selenium 3.141.0 还需谷歌浏览器插件 下载版本相近即可 http://chromedriver.storage.googleapis.com/index.html 登

  7. 实验室-关于老铁整一个社会语录api与网抑云热评api(并引入百度

    实验室-关于老铁整一个社会语录api与网抑云热评api(并引入百度语音tts)前言: 前段时间较火的两件物件,老铁的社会语录和网抑云,又恰好在一个博主的博客了看到了这个api,于是就拿过来酝酿出了这个页面。 效果展示 效果页面: hotreview 社会语录api 引入ap

  8. vue实现拍照人脸识别功能带人脸选中框

    vue实现拍照人脸识别功能带人脸选中框 前言: 实现打开摄像头,并识别人脸。 实现效果: 实现步骤: (1)官网下载 tracking.js 的代码包官网入口 (2)npm下载 执行命令: cnpm install tracking --save template div class=testTracking video id=video wid