百度人脸对比,人脸认证Demo

1.注册百度账号,创建应用获取相关授权

#百度人脸认证
BAIDU_APPID
BAIDU_APIKEY
BAIDU_SECRETKEY

2.pom文件引入jar包

<!-- 百度人脸对比 -->
<dependency>
 <groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
 <version>4.12.0</version>
</dependency>

3.创建工厂,获取百度调用的AipFace实例

public class BaiduClientFactory {

    private static AipFace aipClient = null;

    private BaiduClientFactory() {

    }

    public static AipFace getInstance() {
        if (aipClient == null) {

        //这样初始化实例,默认就可以获取到token,不用单独请求
            aipClient = new AipFace(BAIDU_APPID,BAIDU_APIKEY, BAIDU_SECRETKEY);
        }
        return aipClient;
    }
}

4.相关参数和返回值的实体类

4.1调用接口返回的参数

public class MatchResultBean {
    private BaiduResultBean result;//返回对比结果
    private Long log_id;
    private String error_msg;
    private Integer cached;
    private Integer error_code;//0请求成功
    private Long timestamp;
    public BaiduResultBean getResult() {
        return result;
    }
    public void setResult(BaiduResultBean result) {
        this.result = result;
    }
    public Long getLog_id() {
        return log_id;
    }
    public void setLog_id(Long log_id) {
        this.log_id = log_id;
    }
    public String getError_msg() {
        return error_msg;
    }
    public void setError_msg(String error_msg) {
        this.error_msg = error_msg;
    }
    public Integer getCached() {
        return cached;
    }
    public void setCached(Integer cached) {
        this.cached = cached;
    }
    public Integer getError_code() {
        return error_code;
    }
    public void setError_code(Integer error_code) {
        this.error_code = error_code;
    }
    public Long getTimestamp() {
        return timestamp;
    }
    public void setTimestamp(Long timestamp) {
        this.timestamp = timestamp;
    }
}

4.2  MatchResultBean 中的BaiduResultBean;

public class BaiduResultBean {
    private Double score;//对比的分数
    private List<FaceListBean> face_list;//人脸照片id
    public Double getScore() {
        return score;
    }
    public void setScore(Double score) {
        this.score = score;
    }
    public List<FaceListBean> getFace_list() {
        return face_list;
    }
    public void setFace_list(List<FaceListBean> face_list) {
        this.face_list = face_list;
    }   
}

4.3 BaiduResultBean 中的FaceListBean

public class FaceListBean {
    private String face_token;

    public String getFace_token() {
        return face_token;
    }

    public void setFace_token(String face_token) {
        this.face_token = face_token;
    }
    
}

4.4自定义Service,用与请求对比接口

public class BaiduService {
    /**
               * 对比人脸
     * @param para 参数
     * @return 对比结果
     */
    public static String match(MatchParaBean para){
        AipFace client = BaiduClientFactory.getInstance();
        // image1/image2也可以为url或facetoken, 相应的imageType参数需要与之对应。
        MatchRequest req1 = new MatchRequest(para.getImageUrl1(), "URL");//将RUL换成,BASE64 可以直接传base64字符串
        MatchRequest req2 = new MatchRequest(para.getImageUrl2(), "URL");
        ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
        requests.add(req1);
        requests.add(req2);
        JSONObject res = client.match(requests);
        return res.toString(2);//json格式缩进2个字符
    }
}

5.认证结果

将返回的json转成MatchResultBean ,相似度为 score。

可以设置>80 为同一个人 认证通过。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值