使用face++判断两张图片是否为同一人【以此为基础可分析归类自己的相册】

最近看相册,看到从11年以来很多的照片,想根据不同人来分类,然后发给好友。话不多说直接进入主题。

一、环境

  1. ide:idea
  2. jdk:1.7
  3. 人脸识别api:face++

二、

    首先注册face++账号(使用百度、阿里的也可以,此篇是用的face++),face++地址为https://www.faceplusplus.com.cn/,进入控制台-管理-应用管理,建立你的api_key。

    打开idea,建立一个新工程或者就在test里面建立一个测试(我就是直接建立的测试),然后就是代码了

@org.junit.Test
    public void 人脸识别() throws Exception {
        StringBody apiKey = new StringBody("你的key",ContentType.TEXT_PLAIN);
        StringBody apiSecret = new StringBody("你的secret",ContentType.TEXT_PLAIN);
        CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost("https://api-cn.faceplusplus.com/facepp/v3/compare");
        FileBody fileBody1 = new FileBody(new File("人脸1"));
        FileBody fileBody2 = new FileBody(new File("人脸2"));
        HttpEntity reqEntity = MultipartEntityBuilder.create().
                addPart("api_key",apiKey).
                addPart("api_secret",apiSecret).
                addPart("image_file1",fileBody1).
                addPart("image_file2",fileBody2).
                build();
        httpPost.setEntity(reqEntity);
        try{
            CloseableHttpResponse execute = closeableHttpClient.execute(httpPost);
            if(execute.getStatusLine().getStatusCode()==200){
                JSONObject resultObject = JSONObject.parseObject(EntityUtils.toString(execute.getEntity()));
                if(resultObject.getFloat("confidence")>80){
                    System.out.println("同一人");
                }
                else{
                    System.out.println("不是同一人");
                }
                System.out.printf("confidence:%f,thresholds:%s", resultObject.getFloat("confidence"),resultObject.getString("thresholds"));
            }
            else{
                String s = EntityUtils.toString(execute.getEntity());
                System.out.println(s);
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
        finally {
            closeableHttpClient.close();
        }
    }

返回的confidence为face++返回的置信度,我设置的大于80就可信

使用face++判断两张图片是否为同一人【以此为基础可分析归类自己的相册】_第1张图片



你可能感兴趣的:(使用face++判断两张图片是否为同一人【以此为基础可分析归类自己的相册】)