首先去百度ai开通人脸对比接口应用才有接下来的故事

地址:https://ai.baidu.com/tech/face/compare

1.导入人脸对比SDK,我使用maven自动下载,不嫌麻烦可以下载再人工导入https://ai.baidu.com/sdk#bfr

<dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.12.0</version>
</dependency>

2.下载所需工具类

FileUtil,HttpUtil,GsonUtils
https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3

其中GsonUtils可以使用maven下载

<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version>
</dependency>

3.按照官方文档获取access_token

文档地址:https://cloud.baidu.com/doc/FACE/s/Lk37c1tpf
方便懒人直接给出代码:

import org.json.JSONObject;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;/*** 获取token类*/
public class AuthService {/*** 获取权限token* @return 返回示例:* {* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",* "expires_in": 2592000* }*/public static String getAuth() {// 官网获取的 API Key 更新为你注册的String clientId = "百度云应用的AK";// 官网获取的 Secret Key 更新为你注册的String clientSecret = "百度云应用的SK";return getAuth(clientId, clientSecret);}/*** 获取API访问token* 该token有一定的有效期,需要自行管理,当失效时需重新获取.* @param ak - 百度云官网获取的 API Key* @param sk - 百度云官网获取的 Securet Key* @return assess_token 示例:* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/public static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参数+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段for (String key : map.keySet()) {System.err.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String result = "";String line;while ((line = in.readLine()) != null) {result += line;}/*** 返回结果示例*/System.err.println("result:" + result);JSONObject jsonObject = new JSONObject(result);String access_token = jsonObject.getString("access_token");return access_token;} catch (Exception e) {System.err.printf("获取token失败!");e.printStackTrace(System.err);}return null;}
}

4.编写测试类Test.java

package com.smarthome;import com.baidu.aip.util.Base64Util;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.smarthome.util.FileUtil;
import com.smarthome.util.GetAccessToken;
import com.smarthome.util.GsonUtils;
import com.smarthome.util.HttpUtil;import java.util.*;public class Test {public static void main(String[] args) throws Exception {String result=match();JsonObject jObject = new JsonParser().parse(result).getAsJsonObject();JsonElement jsonElement = jObject.get("result");float score = 0;if(!jsonElement.isJsonNull()) {score = jsonElement.getAsJsonObject().get("score").getAsFloat();}System.out.println("score is "+score);
}public static String match() throws Exception {//GetAccessToken.getAuth()获取access_token,30天过期//人脸对比接口//String url = "https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=" + GetAccessToken.getAuth() + "";byte[] bytes1 = FileUtil.readFileByBytes("/Users/zhangtaiqing/Desktop/1.PNG");byte[] bytes2 = FileUtil.readFileByBytes("/Users/zhangtaiqing/Desktop/3.JPG");String image1 = Base64Util.encode(bytes1);String image2 = Base64Util.encode(bytes2);List<Map<String, Object>> images = new ArrayList<>();//请求参数详情https://ai.baidu.com/ai-doc/FACE/8k37c1rqz#人脸对比Map<String, Object> map1 = new HashMap<>();map1.put("image", image1);map1.put("image_type", "BASE64");map1.put("face_type", "IDCARD");map1.put("quality_control", "LOW");map1.put("liveness_control", "NORMAL");Map<String, Object> map2 = new HashMap<>();map2.put("image", image2);map2.put("image_type", "BASE64");map2.put("face_type", "LIVE");map2.put("quality_control", "LOW");map2.put("liveness_control", "NORMAL");images.add(map1);images.add(map2);String param = GsonUtils.toJson(images);// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。String accessToken = GetAccessToken.getAuth();String result = HttpUtil.post("https://aip.baidubce.com/rest/2.0/face/v3/match", accessToken, "application/json", param);return result;}
}

5.输出所对比的人脸图片相似度分数

并附上本人对比实验图(相似度90.9343)

ps:相似度达到80或以上基本可以判定为同一个人

调用百度接口实现人脸识别相关推荐

  1. 基于javaweb调用百度接口实现人脸识别登陆功能

    百度开放平台有很多新鲜的玩法,有人脸识别,文字识别,图像识别,,,各种各样的接口,忍不住注册了一个玩玩. 注册一个百度开发者账号,然后就可以'折腾'了~ 拿人脸识别作为例子,可以先注册个人脸识别程序体 ...

  2. vpa函数python_python 调用百度接口 做人脸识别

    操作步骤差不多,记得要在百度AIPI中的控制台中创建对应的工单 创建工单成功后 会生成两个key  这个两个key是要生成tokn 用 这里大家可以用 def函数 将token返回 供下面的接口使用 ...

  3. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  4. python调用百度接口实现ocr识别_Python调用百度OCR实现图片文字识别的示例代码

    百度AI提供了一天50000次的免费文字识别额度,可以愉快的免费使用!下面直接上方法: 首先在百度AI创建一个应用,按照下图创建即可,创建后会获得如下: 创建后会获得如下信息: APP_ID = '* ...

  5. C#窗口调用百度云实现人脸识别。(注意代码中添加的控件以及部分传值给函数,亲测百分百可用。)

    调用的dll库文件 代码模块 首先是连接开启电脑摄像头,拍照后保存照片到本地. 然后是调用百度云: 1.获取百度云access_token与百度云连接: 2.建立控制太应用:人脸识别: 3.人脸库的人 ...

  6. python调用百度接口实现ocr识别_Python 3调用百度OCR API实现剪贴板文字识别

    本程序调用百度OCR API对剪贴板的图片文字识别,配合CaptureScreen软件,可快速识别文字. #!python3 import urllib.request, urllib.parse i ...

  7. C#:调用百度接口实现文字识别(准备做一个截图文字识别软件)

    近期在做毕业设计,发现查看论文的时间太多了,然而百度文库或是PDF的文档要想复制真是费劲至极,于是准备做一个个人使用的截图文字识别软件,可以提高工作效率.那下面就做个简单介绍. 第一步:获取到你的AP ...

  8. java 正規表示 group_经验分享|Java+百度AI实现人脸识别

    之前尝试用python+opencv实现过人脸识别,接下来我们使用Java+百度AI来实现人脸识别的尝试. I 注册百度开放平台账号 打开百度AI官方网站(https://ai.baidu.com/? ...

  9. 安卓Android基于百度云平台人脸识别学生考勤签到系统设计

    开发软件:Idea + Mysql + AndroidStudio + 雷电模拟器 基于安卓开发一个人脸识别签到系统,服务器采用springboot框架开发,管理员登录后可以添加和维护人脸信息,添加的 ...

最新文章

  1. MySQL手动安装Linux教程
  2. Objective - C基础: 第一天 - 5.对象和类
  3. python xpath语法-XPath语法和lxml模块(数据提取)
  4. 计算机文化基础教程问什么好难买到,问一个翻译的问题新编计算机文化基础(教程 – 手机爱问...
  5. 机器学习算法之 K-means、层次聚类,谱聚类
  6. 苹果:今年没有5G iPhone 那就先来个5G版MacBook吧?
  7. mysql 超时_为MySQL设置查询超时
  8. python用cx_Oracle连接oracle编码问题解决办法
  9. C#:“System.Web.Mvc.Controller.File(byte[], string)”是一个“方法”,这在给定的上下文中无效
  10. Python_随笔笔记_Python基础1
  11. Windows Server 2019 安装应用商店
  12. android中jni的调用过程,android JNI学习② JNI调用过程
  13. 合并txt文件的几个方法
  14. HBuilderX 配置 夜神模拟器
  15. 使用 ESP-Prog / Jlink 进行 JTAG 调试时的常见错误及解决办法
  16. 淘淘商城---8.7
  17. 25款专业的 WordPress 电子商务网站主题
  18. collections.abc与abc模块是同一个东西吗?
  19. CDA数据分析师考察内容包括哪些
  20. 两小时学会MySQL查询语句(上篇)

热门文章

  1. #Geek Talk# 007 何以解忧:唯有沟通!
  2. 武汉“追风筝的人”:50年手工制作风筝3万余架
  3. linux dd 启动盘 win10,炫龙毁灭者DD2笔记本U盘装win10系统教程
  4. 炫龙笔记本的gtx965m显卡玩游戏很卡
  5. 非常详细的HTTPS分享
  6. java jspl是啥_login.jsp · L.lawliet/Java中软班一期二阶段Web项目 - Gitee.com
  7. 基于遗传算法解决柔性车间生产调度问题(附代码)
  8. Vision Transformer 综述
  9. 怎样下载百度爱采购的图片
  10. 基于jsp的职工年终考核分数计算