6.1.1 /identity/image_verification/stateless
インターフェースを介してアップロードされた 2 つの顔画像を比較して、2 つの顔が同一人物のものかどうかを判断します。
画像は、以下の要件を満たすものとします。
JPG (JPEG)、BMP、PNG、GIF、TIFF のいずれかの形式
幅と高さは 8 px 以上 5,000 px 以下
ファイルサイズは 5 MB 以下
リクエストモード
POST
リクエスト URL
http://ip:port/identity/image_verification/stateless
リクエストパラメーター
通常のレスポンス
フィールド
型
説明
request_id
string
このリクエストのID
code
int
システムレスポンスコード: 1000
verification_score
float
顔比較スコア、範囲: 0~1 。値が大きいほど、2 つの顔が同じ人物のものである確率が高くなります。
{
'request_id': 'xxx',
'code': xxx,
'verification_score': xxx
}
顔比較スコアの閾値とエラー率との対応関係:
閾値
0.4
0.5
0.6
0.7
0.8
0.9
エラー率
1/10
1/100
1/1000
1/10,000
1/100,000
1/1,000,000
推奨閾値: 0.7 以上
異常なレスポンス
フィールド
型
説明
request_id
string
このリクエストのID
code
int
システムレスポンスコード
message
string
エラーメッセージ
{
'request_id': 'xxx',
'code': xxx,
'message': xxx
}
システムレスポンスコードの説明
コード
フィールドの値
説明
1200
invalid argument
無効な入力パラメーター
2003
invalid image size
画像サイズが要件を満たしていません
2004
invalid content length
画像ボリュームが要件を満たしていません
2005
invalid image type
画像タイプが要件を満たしていません
2006
corrupted image error
画像が破損しています
4000
detection failed
特徴の抽出に失敗しました。画像に顔が検出されませんでした。
4004
face occlusion
顔は検出されたが、目、鼻、口で部分的に見えなくなっています。
可能性のある http ステータスコード:
ステータスコード
ステータスフィールド
400
BAD_REQUEST
404
NOT_FOUND
411
LENGTH_REQUIRED
413
PAYLOAD_TOO_LARGE
500
INTERNAL_ERROR
使用サンプル
curl サンプル
curl -X POST "http://ip:port/identity/image_verification/stateless" \
-d first_encrypted_image=xxx \
-d second_encrypted_image=xxx \
-d auto_rotate=true
java サンプル
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpClient {
public static final String POST_URL = "http://127.0.0.1:3000/identity/image_verification/stateless";
private static AESCipher cipher = new AESCipher("dcbbad6765e14139a07d34b92292a672", "df25d188a061");
public static void Post() throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(POST_URL);
List<NameValuePair> params = new ArrayList<>();
String firstEncryptedImage = cipher.encrypt(
Files.readAllBytes(Paths.get("src/main/resources/face_01.jpg")));
String secondEncryptedImage = cipher.encrypt(
Files.readAllBytes(Paths.get("src/main/resources/face_02.jpg")));
params.add(new BasicNameValuePair("first_encrypted_image", firstEncryptedImage));
params.add(new BasicNameValuePair("second_encrypted_image", secondEncryptedImage));
post.setEntity(new UrlEncodedFormEntity(params));
HttpResponse response = httpclient.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity respEntity = response.getEntity();
BufferedReader reader = new BufferedReader(new InputStreamReader(respEntity.getContent()));
String line = reader.readLine();
System.out.println(line);
} else {
HttpEntity respEntity = response.getEntity();
String responseString = EntityUtils.toString(respEntity);
System.out.println("error:" + response.getStatusLine().getStatusCode()
+ " " + response.getStatusLine().getReasonPhrase());
System.out.println("cause of error:"+responseString);
}
}
public static void main(String[] args) throws Exception {
Post();
}
}
Last updated
Was this helpful?