阿里云视觉智能开放平台人脸比对1:1Java Common SDK 调用实现本地图片对比

简介: 阿里云视觉智能开放平台基于达摩院自研的人脸人体分析技术,提供人脸比对1:1功能,基于您输入的两张图片,分别挑选两张图片中的最大人脸进行比较,判断是否为同一人。同时返回这两个人脸的矩形框坐标、比对的置信度,以及不同误识率的置信度阈值。本片文章简单介绍基于java的快速调用。

Step By Step

1.开通人脸比对1:1服务。

人脸比对1:1
image.png

2.获取您的真实AK信息

查看AK
image.png

3.添加java依赖

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-facebody</artifactId>
  <version>1.2.27</version>
</dependency>
注意:仓库同步可能会有延迟,如果遇到版本不存在的情况,请稍后再试或使用上一个版本

4.Java Common SDK Code

替换aksk以及图片路径即可
package org.example;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import sun.misc.BASE64Encoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class CompareFaceCommon {
    public static DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", "ak", "sk");
    public static DefaultAcsClient client = new DefaultAcsClient(profile);
    public static void main(String[] args) {
        CommonRequest request = new CommonRequest();
        request.setSysDomain("facebody.cn-shanghai.aliyuncs.com");
        request.setSysMethod(MethodType.POST);
        request.setSysVersion("2019-12-30");
        request.setSysAction("CompareFace");
        // Request body
        String pic_path = "C:\\Users\\cnc\\Desktop\\cnc\\identity.jpg";//本地图片的路径\
        String pic_path2 = "C:\\Users\\cnc\\Desktop\\cnc\\test.jpg";//本地图片的路径

        File picBase64 = new File(pic_path);
        File picBase65 = new File(pic_path2);

        try {

            //提出base64编码的换行符问题
            String ImageDataA = CompareFaceCommon.encodeImageToBase64(picBase64);
            String ImageDataB = CompareFaceCommon.encodeImageToBase64(picBase65);
            System.out.println();
           String A = ImageDataA.replaceAll("[\\s*\t\n\r]", "");
            String B = ImageDataB.replaceAll("[\\s*\t\n\r]", "");
            //System.out.println(A);
            //System.out.println(B);
            request.putBodyParameter("ImageDataA", A);
            request.putBodyParameter("ImageDataB", B);

            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        }catch (Exception e) {
            e.printStackTrace();
        }
        

    }
    public static String encodeImageToBase64(File file) throws Exception {
        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//        loggerger.info("图片的路径为:" + file.getAbsolutePath());
        InputStream in = null;
        byte[] data = null;
        //读取图片字节数组
        try {
            in = new FileInputStream(file);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            throw new Exception("图片上传失败,请联系客服!");
        }
        //对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        String base64 = encoder.encode(data);
        return base64;//返回Base64编码过的字节数组字符串
    }
}

5.运行结果

image.png

参考链接

人脸比对1:1

目录
相关文章
|
8月前
|
Java API 开发工具
百宝箱开放平台 ✖️ Java SDK
百宝箱提供Java SDK,支持开发者集成其开放能力。需先发布应用,准备Java 8+及Maven环境,通过添加依赖安装SDK,并初始化客户端调用对话型或生成型智能体,实现会话管理、消息查询与文件上传等功能。
1719 0
百宝箱开放平台 ✖️ Java SDK
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1905 5
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
存储 Java API
MinIO Java SDK 7.1.4 升级到 8.5.17 需要注意什么
现在我需要你帮我分析对比这个两个sdk在对外的接口设计上是否有不兼容的变更
1234 5
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
452 7
|
Java 开发工具
通过Java SDK调用阿里云模型服务
在阿里云平台上,可以通过创建应用并使用模型服务完成特定任务,如生成文章内容。本示例展示了一段简化的Java代码,演示了如何调用阿里云模型服务生成关于“春秋战国经济与文化”的简短文章。示例代码通过设置系统角色为历史学家,并提出文章生成需求,最终处理并输出生成的文章内容。在实际部署前,请确保正确配置环境变量中的密钥和ID,并根据需要调整SDK导入语句及类名。更多详情和示例,请参考相关链接。
|
9月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
902 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
627 0
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
1009 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
Java Linux API
Android SDK
【10月更文挑战第21天】
578 1

热门文章

最新文章