云市场 / 人脸对比
联系电话
400-000-0387
服务商
快递100
QQ客服
2850515744
服务时间
09:00-18:00
联系邮箱

人脸对比

两张人脸进行比对,得到人脸相似度

¥ 原价:¥

套餐版本

0.00元/50
500.00元/100000
1000.00元/200000
2500.00元/500000
有效时长
1年
联系电话
400-000-0387
服务商
快递100
QQ客服
2850515744
服务时间
09:00-18:00
联系邮箱
  • API接口
  • 产品详情
  • 交付方式
  • 人脸对比
调用地址: http://cloud.kuaidi100.com/api
请求方式: POST
返回类型: JSON
API 调用: API调用说明>>
调试工具: API调试>>
请求参数(Headers)

无参数

请求参数(Query)

无参数

请求参数(Body)
名称 类型 是否必须 描述
secret_key string true 用户授权key
secret_code string true 接口编号
secret_sign string true 加密签名:md5(secret_key+secret_secret)转大写
sourceImage string true 源图片(总数据大小应小于10M),图片上传方式根据image_type来判断
sourceImageType string true 源图片类型 * BASE64:大小不超过2M; * URL:图片的 URL地址; * FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN。
sourceFaceType string true 源图片人脸的类型 * LIVE表示生活照 * IDCARD表示身份证芯片照* WATERMARK表示带水印证件照* CERT表示证件照片 * 默认LIVE
sourceLiveControl string true 源图片活体控制 * NONE: 不进行控制 * LOW:较低的活体要求(高通过率) * NORMAL: 一般的活体要求 * HIGH: 较高的活体要求(低通过率) * 默认NONE
compareImage string true 对比图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断
compareImageType string true 对比图片类型 * BASE64:编码后的图片大小不超过2M; * URL:图片的 URL地址; * FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN。
compareFaceType string true 对比图片人脸的类型 * LIVE表示生活照* IDCARD表示身份证芯片照 * WATERMARK表示带水印证件照* CERT表示证件照片 * 默认LIVE
compareLiveControl string true 对比图片活体控制 NONE: 不进行控制 LOW:较低的活体要求(高通过率) NORMAL: 一般的活体要求 HIGH: 较高的活体要求(低通过率) 默认NONE
请求示例
  • curl
  • Java
  • C#
  • PHP
  • Python
                        curl http://cloud.kuaidi100.com/api -X POST -d \
"secret_key=***&secret_code=a01ec22b11c94a4e9f755a3af8c10a0d&secret_sign=md5(***)&sourceImage=&sourceImageType=&sourceFaceType=&sourceLiveControl=&compareImage=&compareImageType=&compareFaceType=&compareLiveControl="
                        
                      
                        import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;

public class CloudDemo {

    public static void main (String[] args) {
        CloudDemo cloudDemo = new CloudDemo();

        Map params = new HashMap();
        params.put("secret_key", "***");
        params.put("secret_code", "a01ec22b11c94a4e9f755a3af8c10a0d");
        params.put("secret_sign", "md5(***)");
        params.put("sourceImage", "");
        params.put("sourceImageType", "");
        params.put("sourceFaceType", "");
        params.put("sourceLiveControl", "");
        params.put("compareImage", "");
        params.put("compareImageType", "");
        params.put("compareFaceType", "");
        params.put("compareLiveControl", "");

        cloudDemo.post(params);
    }

    public String post(Map params) {
        StringBuilder response = new StringBuilder("");
        BufferedReader reader = null;
        try {
            StringBuilder builder = new StringBuilder();
            for (Map.Entry param : params.entrySet()) {
                if (builder.length() > 0) {
                    builder.append('&');
                }
                builder.append(URLEncoder.encode(param.getKey(), "UTF-8"));
                builder.append('=');
                builder.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
            }
            byte[] bytes = builder.toString().getBytes("UTF-8");
            URL url = new URL("http://cloud.kuaidi100.com/api");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Content-Length", String.valueOf(bytes.length));
            conn.setDoOutput(true);
            conn.getOutputStream().write(bytes);
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line = "";
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != reader) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return response.toString();
    }
}

class MD5Utils {    private static MessageDigest mdigest = null;
    private static char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    private static MessageDigest getMdInst() {
        if (null == mdigest) {
            try {
                mdigest = MessageDigest.getInstance("MD5");
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
        }
        return mdigest;
    }

    public static String encode(String s) {
        if(null == s) {
            return "";
        }

        try {            byte[] bytes = s.getBytes();
            getMdInst().update(bytes);
            byte[] md = getMdInst().digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for(int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = digits[byte0 >>> 4 & 0xf];
                str[k++] = digits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

                        
                      
                        
                        暂无示例
                      
                        <?php
    $params = "";
    $params .= 'secret_key=***'.'&';
    $params .= 'secret_code=a01ec22b11c94a4e9f755a3af8c10a0d'.'&';
    $params .= 'secret_sign=md5(***)'.'&';
    $params .= 'sourceImage='.'&';
    $params .= 'sourceImageType='.'&';
    $params .= 'sourceFaceType='.'&';
    $params .= 'sourceLiveControl='.'&';
    $params .= 'compareImage='.'&';
    $params .= 'compareImageType='.'&';
    $params .= 'compareFaceType='.'&';
    $params .= 'compareLiveControl='.'&';
    $params .= substr($params, 0, -1);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, 'http://cloud.kuaidi100.com/api');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    echo $result;
?>

                        
                      
                        # coding = utf-8
import sys,os
import requests,json,hashlib

params = {}
params['secret_key'] = '***'
params['secret_code'] = 'a01ec22b11c94a4e9f755a3af8c10a0d'
params['secret_sign'] = 'md5(***)'
params['sourceImage'] = ''
params['sourceImageType'] = ''
params['sourceFaceType'] = ''
params['sourceLiveControl'] = ''
params['compareImage'] = ''
params['compareImageType'] = ''
params['compareFaceType'] = ''
params['compareLiveControl'] = ''
result = requests.post('http://cloud.kuaidi100.com/api', params)
print(result.text)


                        
                      
返回参数

无参数

正常返回示例
                    {
    "code": 200, //成功
    "message": "",
    "data": {
        "score": "80.00", //人脸相似度得分,推荐阈值80分
        "sourceToken": "", //源图片人脸唯一标识
        "compareToken": "" //对比图片人脸唯一标识
    }
}
                
失败返回示例
                    {
    "code": 400,
    "message": "",
}
                
状态码定义
状态码 状态码信息 描述
200 成功

1、人脸相似度比对
比对图片中两张人脸的相似度,并返回相似度分值

2、支持4种图片类型
支持生活照、证件照、身份证芯片照、带网纹照4种图片类型的人脸对比

3、图片质量控制
分析图片中人脸的遮挡度、模糊度、光照强度、姿态角度、完整度、大小等特征,基于输出的符合质量标准的图片,返回准确的相似度评分

4、在线图片活体检测
分析单张图片中人像的破绽(摩尔纹、成像畸形等),判断图片中目标对象否为真人,确保比对效果真实可靠
1 点击立即购买 > 2 确认并支付订单 > 3 进入云市场控制台 > 4 开始使用API