Используя тот же пример кода , который указан в документации, все, что вам нужно сделать, это изменить основной метод следующим образом:
public static void main(String[] args) throws Exception{
// Create a new file object for the first file and get bytes from file
File file = new File("C:\\Users\\ihene\\Desktop\\my-photo.jpg");
byte[] buff1 = getBytesFromFile(file);
// Create a new file object for the second file and get bytes from file
File file2 = new File("C:\\Users\\ihene\\Desktop\\esan-caleb.jpg");
byte[] buff2 = getBytesFromFile(file2);
// Data needed to use the Face++ Compare API
String url = "https://api-us.faceplusplus.com/facepp/v3/compare";
HashMap<String, String> map = new HashMap<>();
HashMap<String, byte[]> byteMap = new HashMap<>();
map.put("api_key", "dam4ZdTkSsZOUAiR4oQpP3DRnjEz1fcD");
map.put("api_secret", "0MOCfpum1Lec06EMOzuJPOEa_EhM4Ttg");
byteMap.put("image_file1", buff1);
byteMap.put("image_file2", buff2);
try {
// Connecting and retrieving the JSON results
byte[] bacd = post(url, map, byteMap);
String jsonStr = new String(bacd);
// Parse the JSON and get the confidence value
JSONObject obj = new JSONObject(jsonStr);
double confidence = obj.getDouble("confidence");
System.out.println(confidence);
} catch (Exception e) {
e.printStackTrace();
}
}
Просто замените PATH_TO_FILE_1
, PATH_TO_FILE_2
, YOUR_API_KEY
и YOUR_API_SECRET
с соответствующими значениями.Это должно работать.
Я протестировал API, используя два изображения с лицом, принадлежащим одному человеку, и два других изображения с разными лицами.Вот вывод, который я получил для первого:
{"faces1": [{"face_rectangle": {"width": 156, "top": 210, "left": 142, "height": 156}, "face_token": "1ee9de6d362b0c8c1bf240a70fbf3eac"}], "faces2": [{"face_rectangle": {"width": 156, "top": 210, "left": 142, "height": 156}, "face_token": "0a7c539f3603aa744ee18c65acc224a8"}], "time_used": 531, "thresholds": {"1e-3": 62.327, "1e-5": 73.975, "1e-4": 69.101}, "confidence": 97.389, "image_id2": "Fc64vrBtETVmP2cS+BoW/Q==", "image_id1": "Fc64vrBtETVmP2cS+BoW/Q==", "request_id": "1569184566,0cc04f1a-1495-4316-928c-1efe7d6836dc"}
Обратите внимание, что здесь доверие 97,389 .В документации говорится, что «более высокая достоверность указывает на более высокую вероятность того, что два лица принадлежат одному человеку»Итак, это соответствует тому, что мы ожидаем.Для последних изображений с различными лицами, вот вывод:
{"faces1": [{"face_rectangle": {"width": 156, "top": 210, "left": 142, "height": 156}, "face_token": "c7d8561f0235a99d9b060750c7a9c3c7"}], "faces2": [{"face_rectangle": {"width": 75, "top": 44, "left": 53, "height": 75}, "face_token": "ad87092cb593128c015c2e2221b962f2"}], "time_used": 533, "thresholds": {"1e-3": 62.327, "1e-5": 73.975, "1e-4": 69.101}, "confidence": 53.993, "image_id2": "MiZOf00hrq7OmAxc3+n7sg==", "image_id1": "Fc64vrBtETVmP2cS+BoW/Q==", "request_id": "1569185082,0bfd0a0f-a376-4dac-92bd-924c34ef76ed"}
Здесь, достоверность составляет 53,933 .