# 视频活体检测

视频活体检测产品:主要用于在H5场景下,通过用户新录制并上传一个视频,来进行活体的判断

# 一、请求说明

# 二、请求参数

  • 请求参数以表单形式提交,Content-Type值为: application/x-www-form-urlencoded;charset=utf-8
名称 类型 是否必须 描述
videoData String 视频数据,以base64:开头 (视频base64数据), 以fs: 开头(文件云文件)

请求示例:

http或https://api.spiderid.cn/api/router/rest?
<[公共请求参数]>

videoData=XXX

# 三、响应参数

data 结果信息 类型 描述
incorrect Integer 返回码
message String 描述(100:成功 其他为失败信息)
score Double 活体分数
pictures List 解析出的图片地址,有效期24小时,过期后下载不了
  • 分数阀值介绍
阀值 拒绝率 误拒率 通过率
0.022403 0.90325733 0.1% 99.9%
0.393241(推荐) 0.96254072 0.5% 99.5%
0.649192 0.97557003 1% 99%
0.933801 0.98990228 2% 98%
0.973637 0.99446254 3% 97%
0.988479 0.99641694 4% 96%
0.994058 0.99739414 5% 95%
  • 关于以上数值的概念介绍:

    • 拒绝率(TRR):如99%,代表100次作弊假体攻击,会有99次被拒绝。
    • 误拒率(FRR):如0.5%,指1000次真人请求,会有5次因为活体分数低于阈值被错误拒绝。
    • 通过率(TAR):如99%,指100次真人请求,会有99次因为活体分数高于阈值而通过。
    • 阈值(Threshold):高于此数值,则可判断为活体。

# 四、成功示例

JSON示例

{
    "code": 0,
    "requestId":"dsd24...",
    "message": "success",
    "data": {
        "message": "检测成功",
        "incorrect":100,
        "score":0.9457,
        "pictures":[".....",
                    "....."
                   ]
    }
}

# 五、失败示例

JSON示例

{
   "code": 0,
    "requestId":"dsd24...",
    "message": "success",
    "data": {
        "message": "视频活体检测失败",
        "incorrect":124
    }
}

# 六、返回码说明(incorrect)

返回码 描述 是否收费
100 检测成功
110 不支持该视频文件
121 视频未检测到人脸
122 视频检测到多张人脸
123 视频检测人脸质量较差:[光线有问题, 人脸模糊等]
124 视频活体检测失败

# SDK 请求示例

        //提供的url
        String url = "http://api.spiderid.cn/api/router/rest";
        //您的appKey
        String appkey = "XXX";
        //您的appSecret
        String secretKey = "XXX";

        try {

            //1.默认客户端
            ApiClient apiClient = new DefaultApiClient(url, appkey, secretKey);

            //2.调用出错自动重试客户端
            //AutoRetryApiClient apiClient = new AutoRetryApiClient(url, appkey, secretKey);

            VideoLivenessCheckRequest req = new VideoLivenessCheckRequest();

//            //1.以base64:开头,图片转换成base64位字符串
//            String video = Base64.encodeBase64String(FileUtils.readFileToByteArray(new ClassPathResource("/data/qq.mp4").getFile()));
//            req.setVideoDataBase64(video);

            //2.fs:开头,需要调用我们提供的上传接口,获取bucket,和objectKey,格式为:fs:+bucket:+objectKey
            String bucket = "XXX";
            String objectKey = "XXX";
            String videoData = bucket + ":" + objectKey;
            req.setVideoDataFs(videoData);
            VideoLivenessCheckResponse rsp = apiClient.execute(req);
            //后续业务处理
        } catch (Exception e) {
            e.printStackTrace();
        }

最后更新于: 4/16/2020, 1:14:02 PM