SenseID Private Cloud
1.8.0, 日本語, 1v1
1.8.0, 日本語, 1v1
  • イントロダクション
  • リリースノート
  • インストールマニュアル
    • 改訂履歴
    • 1 システム環境設定の要件
    • 2 UDID
    • 3 ライセンスアクティベーション
    • 4 サービスの展開方法
    • 5 SenseIDの展開に関する FAQ
  • 運用マニュアル
    • 改訂履歴
    • 1 ライセンスファイルの更新と変更
    • 2 写真と動画の暗号化
    • 3 写真と動画の規格
    • 4 アップデート
    • 5 エラーコード一覧
  • APIマニュアル
    • 改訂履歴
    • 1 顔の比較 (ステートレス)
      • 1.1 /identity/image_verification/stateless
      • 1.2 /identity/multiface_image_omni_verification/stateless
      • 1.3 /identity/liveness_image_verification/stateless
      • 1.4 /identity/silent_image_verification/stateless
    • 2 写真品質チェック
      • 2.1 /quality/face/stateless
    • 3 なりすまし防止
      • 3.1 /liveness/silent_detection/stateless
Powered by GitBook
On this page
  • リクエストモード
  • リクエスト URL
  • リクエストパラメーター
  • 通常のレスポンス
  • 異常なレスポンス
  • システムレスポンスコードの説明
  • 可能なHTTPステータスコード
  • サンプル

Was this helpful?

Export as PDF
  1. APIマニュアル
  2. 2 写真品質チェック

2.1 /quality/face/stateless

Previous2 写真品質チェックNext3 なりすまし防止

Last updated 3 years ago

Was this helpful?

顔写真品質チェックのインターフェースです。

写真ファイルに、複数の顔が含まれることは可能です

顔写真の規格は、のをご参照ください。

リクエストモード

POST

リクエスト URL

http://ip:port/quality/face/stateless

リクエストパラメーター

フィールド

型

必須

説明

encrypted_image

string

Yes

通常のレスポンス

フィールド

型

説明

code

int

システムレスポンスコード:1000

faces

array

写真に写っている各顔のクオリティについての情報

request_id

string

リクエストのID

{
    "code": 1000,
    "faces": [
        {
            "rect": { # 顔枠の位置
                "left": integer, # 顔枠の左端の水平座標、写真の左上を原点とする
                "top": integer, # 顔枠の上枠の垂直座標、写真の左上隅を原点とする
                "right": integer, # 顔枠の右端の水平座標、写真の左上隅を原点とする
                "bottom": integer # 顔枠の下枠の垂直座標、写真の左上を原点とする
            "pose": { # ポーズ角度情報
                "yaw": float, # Y 軸角度を示します
                "pitch": float, # X 軸角度を示します
                "roll": float # Z 軸角度を示します
            },
            "occlusion":{ # 顔の遮蔽情報
                "left_eye": float,  # 左目が遮られていない割合, 値 [0,1], 値が大きいほど遮られていない
                "right_eye": float, # 右目が遮られていない割合, 値 [0,1], 値が大きいほど遮られていない
                "nose": float, # 鼻の遮られていない割合、値 [0,1]、値が大きいほど遮られていない
                "mouth": float, # 口の遮られていない割合、値 [0,1]、値が大きいほど遮られていない
                "total": float # 顔の遮られていない総合割合、値 [0,1]、値が大きいほど遮られていない
            },
            "distance2center": float, # 顔から写真の中心までの距離、範囲 [0,1] で、スコアが高いほど、顔が写真の中心に近いことを表します。計算方法:max(1 - 五官中心から写真中心への距離 / 写真の短辺の距離, 0)
            "size": float, # 顔が写真に面積の割合、範囲 [0,1] で、スコアが高いほど、顔の面積割合が大きいことを表します。計算方法:五官が写真に占める面積 / 写真の面積
            "brightness": float, # 顔の明るさのスコア, 範囲は [-1,1] で, スコアが高いほど明るさが高いことを表します
            "sharpness": float, # 鮮明度スコア, 値の範囲 [0,1], スコアが高いほど鮮明になります
            "mouth_open": float, # 口の開き具合, [0,1]の範囲内の値, スコアが高いほど口の開き具合が低くなります
            "integrity": float # 写真中の顔の完全性, 値の範囲 [0,1], スコアが高いほど写真中の顔が完全である、計算式: 写真中の顔の面積 / 顔の面積
        }
    ],
    "request_id": string
}

異常なレスポンス

フィールド

型

説明

code

int

システムレスポンスコード

message

string

エラーメッセージ

request_id

string

リクエストのID

{
    "code": int,
    "message": string,
    "request_id": string
}

システムレスポンスコードの説明

コード

フィールドの値

説明

1200

invalid argument

無効な入力パラメーター

2003

invalid image size

写真サイズ(幅と高さのピクセル数)が要件を満たしていません

2004

invalid content length

写真のファイルサイズが要件を満たしていません

2005

invalid image type

写真タイプが要件を満たしていません

4000

detection failed

特徴の抽出に失敗しました。写真に顔が検出されませんでした

可能なHTTPステータスコード

ステータスコード

ステータスフィールド

400

BAD_REQUEST

404

NOT_FOUND

411

LENGTH_REQUIRED

413

PAYLOAD_TOO_LARGE

500

INTERNAL_ERROR

サンプル

curl -X POST "http://ip:port/quality/face/stateless" \
  -d encrypted_image=xxx
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/quality/face/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 encryptedImage = cipher.encrypt(
                Files.readAllBytes(Paths.get("src/main/resources/face_01.jpg")));

        params.add(new BasicNameValuePair("encrypted_image", encryptedImage));

        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();
    }
}

暗号化された写真。暗号化方法の参照:

運用マニュアル
3章 写真と動画の規格
個人データの暗号化