SpringBoot调阿里云人脸识别人脸对比接口

开发工具:IDEA2019.3
开发框架:SpringBoot2.2
数据库:Mysql
接口测试工具:swagger
阿里云demo如下
SpringBoot调阿里云人脸识别人脸对比接口_第1张图片
SpringBoot调阿里云人脸识别人脸对比接口_第2张图片
和我之前调OCR身份证识别类似,也有StringUtils工具类,和一些依赖,这个是需要的依赖



    4.0.0

    com.aliyun.api.gateway
    java.demo
    1.0-SNAPSHOT

    
		
			com.alibaba
			fastjson
			1.2.15
		
        
            org.apache.httpcomponents
            httpclient
            4.2.1
        
        
            org.apache.httpcomponents
            httpcore
            4.2.1
        
        
            commons-lang
            commons-lang
            2.6
        
        
            org.eclipse.jetty
            jetty-util
            9.3.7.v20160115
        
        
            junit
            junit
            4.5
            test
        
    

这个识别接口,是上传两张照片然后比较它们的相似度,值得注意的是,这里在这里插入图片描述
这里的type有几种可选的类型
SpringBoot调阿里云人脸识别人脸对比接口_第3张图片
下面是我的代码
刚开始我用的是IDCARD,然后我上传的一个身份证反面照片和一个自己的生活照,结果让我傻眼了
SpringBoot调阿里云人脸识别人脸对比接口_第4张图片
在这里插入图片描述
SpringBoot调阿里云人脸识别人脸对比接口_第5张图片
是的,第一个相似度只有34(虽然自拍照开了美颜),又试了一次(以为是美颜的原因,关了美颜),也只有65,然后阿里的建议是要达到80才算是同一个人,当时就想不至于这么低吧,6-7年前的身份证(除了现在稍微长了的肉,肯定跟这个是没有关系的)。然后,仔细想想,也可能是我理解错了,把type改了,换成LIVE
在这里插入图片描述
改成LIVE后,没开美颜的相似度
在这里插入图片描述
开了美颜的相似度
在这里插入图片描述
这个结果差别有点大,嘿嘿,尴尬尴尬(美颜是个好东西)
在这里插入图片描述
总结:1.用的时候要先把工具包下载到本地
2.相关依赖配好
3.理解type各个类型的用法,避免尴尬,为了准确度,谨慎开美颜
(这里的type,我也只弄清楚两个,IDCARD是两张图片都传身份证带照片那一面的照片对比
LIVE,可以是一张身份证,一张自拍/ 两张自拍之类的,其它type我也没有测过)
贴一下源码

 @RequestMapping(value = "face",method = RequestMethod.POST)
    private JSONObject faceRate(MultipartFile file, MultipartFile face) {
        String srca = "";
        String srcb = "";
        JSONObject object = new JSONObject();
        try {
            BASE64Encoder encoder = new BASE64Encoder();
            // 通过base64来转化图片
            srca = (encoder.encode(file.getBytes())).replaceAll("\r\n", "");
            srcb = (encoder.encode(face.getBytes())).replaceAll("\r\n", "");
            String host = "https://face.xiaohuaerai.com";
            String path = "/face";
            String method = "POST";
            String appcode = "你的APPCODE";
            Map headers = new HashMap();
            //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 12345679
            headers.put("Authorization", "APPCODE " + appcode);
            //根据API的要求,定义相对应的Content-Type
            headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            Map querys = new HashMap();
            Map bodys = new HashMap();
            bodys.put("srca", srca);
            bodys.put("srcb", srcb);
            bodys.put("type", "LIVE");
            HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
            String msg = new String(EntityUtils.toString(response.getEntity()).getBytes(), "UTF-8");
            object = JSONObject.parseObject(msg);
        } catch (Exception e) {
            e.printStackTrace();
        }
            return object;
    }

在这里插入图片描述

你可能感兴趣的:(Spring,Boot)