用Java实现AI人脸比对

news/2025/2/26 22:20:17/文章来源:https://www.cnblogs.com/BingBing-8888/p/18564709

AI人脸比对技术


百度智能云注册

https://login.bce.baidu.com/?account=&redirect=https%3A%2F%2Fconsole.bce.baidu.com%2Fiam%2F#/iam/baseinfo

选择人工智能-->人脸识别认证

选择-->立即使用

选择免费尝鲜(领取之后五分钟就可以在我的应用里查看了,里面勾选所有的选项)

在我的应用里查看公共云(记住AppID、APIKey、SelectKey,程序中需要)

在IDEA中运行程序

先导入需要的依赖

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

再运行下面这个程序

import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import org.json.JSONObject;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Base64;public class Sample {public int faceCompare(AipFace client,String imagePath1,String imagePath2) {// 将图片文件转换为base64编码的字符串String image1 = encodeImageToBase64(imagePath1);String image2 = encodeImageToBase64(imagePath2);// 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));return res.getInt("score");}private String encodeImageToBase64(String imagePath) {try (FileInputStream imageInFile = new FileInputStream(imagePath)) {// 读取图片字节数据byte[] bytes = new byte[(int) new File(imagePath).length()];imageInFile.read(bytes);// 转换为base64编码的字符串return Base64.getEncoder().encodeToString(bytes);} catch (IOException e) {e.printStackTrace();return null;}}public static void main(String[] args) {Sample sample = new Sample();AipFace client = new AipFace("Enter Your APP_ID", "Enter Your API_KEY", "Enter Your SECRET_KEY");//输入之前保存的三个参数String imagePath1 = "path/to/image1";//输入你要比对的照片String imagePath2 = "path/to/image2";//输入你要比对的第二张照片int score = sample.faceCompare(client, imagePath1, imagePath2);System.out.println("Score: " + score);// 输出比对的相似度结果}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/839912.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NR中各种ID

NCGI(NR CELL Global Identifier):全球标识一个 NR 小区的号码PLMN(Public Land Mobile Network):国家码 MCC(Mobile Country Code)+网络码 MNC(Mobile NetWork Code),此号码唯一标识了某一个国家的某一个运营商NCI(NR CELL ID):标识 NR 中的一个 CELL GNBID:唯一标识一个基…

OOPTA4-6习题集总结

(1)前言 这三次作业算是一个渐进和转折的过程,题目渐渐减少,主要还是要写迭代题,对我来说5-6难度还是蛮大的。4是让我学会了不少更新功能的思路和调试的方法。5-6则让我明白了代码结构的重要性。题目内容主要涉及类的设计等等,以及主要的答题判题程序还有电路系统的编写与…

第53篇 调用第三方接口时需要注意的点

前言 在我们的业务开发中,调用第三方接口已经成为常态,比如对接一些ERP系统、WMS系统、一些数据服务系统等,它极大地扩展了我们应用的功能和服务范围。然而,实际对接过程中,我们往往会在这一环节遇到各种意想不到的问题,本文将深入探讨几种常见的第三方接口调用难题及其应…

如何在360评估中控制得分分布?

得分分布控制作用于评估打分时,评价人对一组被评价人的打分高低进行限制,避免老好人都打高分或恶意都给打低分的情况。 得分分布控制包括总分分布控制和各个指标的得分分布控制。注意 得分分布控制仅针对一个评价人同时评价多个被评价人时才会产生效果。 设置了得分分布控制时…

路由选择算法概述及经典算法分析

本文重点介绍Dijkstra算法及Distance-Vector(DV)算法原理。一、路由选择算法概述路由选择算法的目标:找到“从源节点到目的节点的最低开销路径” 路由选择算法的第一种分类centralized routing algorithm集中式路由选择算法集中式路由选择算法需要计算者具有“网络拓扑的全局连…

Java 题目集 4 - 6 总结

一、前言 在 Java 编程学习的漫长道路上,题目集 4 - 6 犹如一座座充满挑战与机遇的山峰,促使我们不断攀登,拓展知识边界,提升编程技能与思维深度。这一系列题目集犹如一场全方位的能力试炼,全面检验了我们在多个关键领域的知识掌握程度与实践应用能力。 从知识点的覆盖范围…

针对粗粒度架构的粗粒度调研

Big Picture Reconfigurable: CGRA vs FPGA从架构来看 CGRA(Coarse-Grained Reconfigurable Architecture) 和 FPGA 非常类似,Memory、PE 以及 NoC 片上网络。调研反馈实际二者边界也是逐渐模糊:硬件 CGRA FPGAPE 粒度 Arithemtic Logic(LE), Arithemtic(Logic Element), Cor…

为复合函数和反函数做好准备

1. 移动的功能 https://www.desmos.com/calculator?lang=zh-CN

『玩转Streamlit』--布局与容器组件

在Streamlit中,布局类组件扮演着至关重要的角色。 它们不仅决定了应用程序的视觉呈现和用户体验,也极大地增强了页面内容的组织性和可读性。 通过这些组件,开发者可以灵活地划分页面空间,创建出清晰、有条理的布局结构。 本篇主要介绍3种构建Streamlit App时常用的3种布局类…

vue3 el-table控制列显示隐藏

TableControl.vue<!-- 表格列显示隐藏控制*** 根节点为el-table,会穿透接收组件所有属性1、通过slots接收表格列,生成勾选项2、从缓存中读取数据,匹配勾选项;3、双向绑定,勾选项。表格列使用v-if判断显示隐藏; --> <template><el-table><template v-f…

台电固态硬盘维修数据恢复

针对台电固态硬盘的维修与数据恢复问题,以下是一些建议和方法: 数据恢复 回收站恢复:如果是在电脑操作时不慎将固态硬盘里面的文件误删,且文件被删除后未进行大量写入操作(以免数据被覆盖),可以尝试通过电脑的“回收站”进行文件还原。打开桌面上的“回收站”,在里面找…

VMware 安装ubuntu 挂载共享目录

开机界面点击虚拟机“重新安装vmtools” 修改root密码sudo passwd root关闭防火墙ufw disable安装ssh sudo apt-get install openssh-server创建目录sudo mkdir /mnt/hgfs输入以下命令,如果输出了我们一开始创建的共享文件夹,那就代表你上面的设置正确了vmware-hgfsclient挂载…