人脸识别对比测试接口

举报
Ben_5003 发表于 2019/07/29 15:15:58 2019/07/29
【摘要】 实人认证需要四个接口: 1、 OCR文字提取2、 活体检测3、 比对(包含人脸比对) 4、 人脸比对接口 API接口文档:人脸比对:接口描述用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结...

 

实人认证需要四个接口:

 

1、                 OCR文字提取

2、                 活体检测

3、                 比对(包含人脸比对)            

4、                 人脸比对接口

 

API接口文档:

人脸比对:

接口描述

用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。

接口说明

请求URLhttp://api.exocr.com/face/v1/compare

请求方式:HTTP Post

返回格式:json

Header

参数

Content-Type

使用二制方式multipart/form-data;使用base64url方式application/x-www-form-urlencoded

 

请求参数

参数

必选

类型

说明

app_key

string

请在控制台->我的应用中获取

app_secret

string

请在控制台->我的应用中获取

face1_base64

string

人脸1图像base64编码。

face1_base64face1_urlface1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。

face1_url

string

人脸1图像url地址。

face1_base64face1_urlface1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。

face1_binary

data

人脸1图像二进制。

face1_base64face1_urlface1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。

face2_base64

string

人脸2图像base64编码。

face2_base64face2_urlface2_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face2_base64图像为准。

face2_url

string

人脸2图像url地址。

face2_base64face2_urlface2_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face2_base64图像为准。

face2_binary

data

人脸2图像二进制。

face2_base64face2_urlface2_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face2_base64图像为准。

注:face1图像与face2图像须保证相同格式,具体调用请参考调用示例。

调用示例

java(相关依赖库下载)

package com.exocr.httpclient;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.HashMap;

import java.util.Map;

 

import com.exocr.common.utils.HttpClientUtils;

 

public class Test {

  

   public static void main(String[] argsthrows FileNotFoundException {

      /**

       * base64

       */

      //识别url

      String url = " http://api.exocr.com/face/v1/compare";

      //设置请求参数

      Map<String, String> params = new HashMap<String, String>();

      params.put("app_key""#####");

      params.put("app_secret""#####");

      //设置识别图像base64编码

      params.put("face1_base64""base64Image1Str");

      params.put("face2_base64""base64Image2Str");

      //发送请求,得到识别结果

      String result = HttpClientUtils.doPost(urlparams);

      System.out.println(result);

      /**

       * url

       */

      //设置请求参数、识别图像url

      params.put("app_key""#####");

      params.put("app_secret""#####");

      params.put("face1_url""image1Url");

      params.put("face2_url""image2Url");

      //发送请求,得到识别结果

      result = HttpClientUtils.doPost(urlparams);

      System.out.println(result);

      /**

       * 二进制

       */

      //设置请求参数

      params.put("app_key""#####");

      params.put("app_secret""#####");

      //拿到本地图像,写入数据流

      File file1 = new File("/Users/mac/logs/face1.png");

      InputStream in1 = new FileInputStream(file1);

      File file2 = new File("/Users/mac/logs/face2.png");

      InputStream in2 = new FileInputStream(file2);

      //设置数据流

      Map<String, InputStream> streamMap = new HashMap<String, InputStream>();

      streamMap.put("face1_binary"in1);

      streamMap.put("face2_binary"in2);

      //发送请求,得到识别结果

      result = HttpClientUtils.doPostStream(urlparamsstreamMap);

      //关闭io

      try {

         in1.close();

         in2.close();

      } catch (IOException e) {

         e.printStackTrace();

      }

      System.out.println(result);

   }

}

返回示例

{

    "result": {

        "description": "可能性非常高",

        "score": 100,

        "thresholds": {

            "1e-3": 60,

            "1e-4": 77,

            "1e-5": 83

        },

        "result_code": 0

    },

    "error_code": 0,

    "description": "调用成功",

    "request_id": "30BBBA93F64F453283EE6B69C4D2E310",

    "recognize_time": 270,

    "available_count": 9980

}

返回说明

通用参数

参数

类型

说明

result

array

返回结果数组,包括所有字段的识别信息

error_code

int

错误码,返回0为正确,其他为错误

description

string

识别结果描述

request_id

string

请求唯一标识符

recognize_time

int

识别所用时间,单位为毫秒

available_count

int

识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数

身份证识别特有参数

参数

类型

说明

description

string

比对结果描述

score

int

相似度,取值0~100100为相似度100%

thresholds

array

阈值数组,数组中的元素分别对应3个等级的阈值

result_code

int

比对结果码,通过为0

1e-3

int

1e-3等级的阈值

1e-4

int

1e-4等级的阈值

1e-5

int

1e-5等级的阈值

 

 

 

简项认证:

接口描述

用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。

接口说明

请求URLhttp://api.exocr.com/data/v1/verify_id

请求方式:HTTP Post

返回格式:json

请求参数

参数

必选

类型

说明

app_key

string

请在控制台->我的应用中获取

app_secret

string

请在控制台->我的应用中获取

personal_name

string

姓名

identity_card_no

string

身份证号码

 

调用示例

java(相关依赖库下载)

package com.exocr.httpclient;

 

import java.io.FileNotFoundException;

import java.util.HashMap;

import java.util.Map;

 

import com.exocr.common.utils.HttpClientUtils;

 

public class Test {

  

   public static void main(String[] argsthrows FileNotFoundException {

      //识别url

      String url = " http://api.exocr.com/data/v1/verify_id";

      //设置请求参数

      Map<String, String> params = new HashMap<String, String>();

      params.put("app_key""#####");

      params.put("app_secret""#####");

      params.put("personal_name""张三");

      params.put("identity_card_no""##########");

      //发送请求,得到识别结果

      String string = HttpClientUtils.doPost(urlparams);

      System.out.println(string);

   }

}

返回示例

{

    "result": {

        "gender": "0",

        "birthday": "1992-11-03",

        "desc": "比对通过",

        "result_code": 10000

    },

    "error_code": 0,

    "description": "调用成功",

    "request_id": "57A1D56249FB4E01B8A9EE7D4B6287DD",

    "recognize_time": 98,

    "available_count": 79

}

返回说明

通用参数

参数

类型

说明

result

array

返回结果数组,包括所有字段的识别信息

error_code

int

错误码,返回0为正确,其他为错误

description

string

识别结果描述

request_id

string

请求唯一标识符

recognize_time

int

识别所用时间,单位为毫秒

available_count

int

识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数

简项认证特有参数

参数

类型

说明

gender

string

性别

birthdate

string

生日

desc

string

认证结果描述

result_code

int

认证结果码

认证结果码

结果码

类型

说明

10000

int

比对通过

10001

int

比对不通过,身份证号码正确,但与姓名不一致

 

活体检测:

目前只有SDK模式,需要把APP的包名发过来做集成,然后一个月测试时间。

 

 

身份证识别:

 

接口描述

用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。

接口说明

请求URLhttp://api.exocr.com/ocr/v1/id_card

请求方式:HTTP Post

返回格式:json

Header

参数

Content-Type

使用二制方式multipart/form-data;使用base64url方式application/x-www-form-urlencoded

 

请求参数

参数

必选

类型

说明

app_key

string

请在控制台->我的应用中获取

app_secret

string

请在控制台->我的应用中获取

image_base64

string

图像base64编码。

image_base64image_urlimage_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。

image_url

string

图像url地址。

image_base64image_urlimage_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。

image_binary

data

图像二进制。

image_base64image_urlimage_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。

 

调用示例

java(相关依赖库下载)

package com.exocr.httpclient;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.HashMap;

import java.util.Map;

 

import com.exocr.common.utils.HttpClientUtils;

 

public class Test {

  

   public static void main(String[] argsthrows FileNotFoundException {

      /**

       * base64

       */

      //识别url

      String url = " http://api.exocr.com/ocr/v1/id_card";

      //设置请求参数

      Map<String, String> params = new HashMap<String, String>();

      params.put("app_key""#####");

      params.put("app_secret""#####");

      //设置识别图像base64编码

      params.put("image_base64""base64ImageStr");

      //发送请求,得到识别结果

      String result = HttpClientUtils.doPost(urlparams);

      System.out.println(result);

      /**

       * url

       */

      //设置请求参数、识别图像url

      params.put("app_key""#####");

      params.put("app_secret""#####");

      params.put("image_url""imageUrl");

      //发送请求,得到识别结果

      result = HttpClientUtils.doPost(urlparams);

      System.out.println(result);

      /**

       * 二进制

       */

      //设置请求参数

      params.put("app_key""#####");

      params.put("app_secret""#####");

      //拿到本地图像,写入数据流

      File file = new File("/Users/mac/logs/idcard.png");

      InputStream in = new FileInputStream(file);

      //设置数据流

      Map<String, InputStream> streamMap = new HashMap<String, InputStream>();

      streamMap.put("image_binary"in);

      //发送请求,得到识别结果

      result = HttpClientUtils.doPostStream(urlparamsstreamMap);

      //关闭io

      try {

         in.close();

      } catch (IOException e) {

         e.printStackTrace();

      }

      System.out.println(result);

   }

}

返回示例

{

    "result": {

        "face": 1,

        "name": {

            "words": "张三",

            "score": 0.9999,

            "position": {

                "left": 161,

                "top": 87,

                "width": 69,

                "height": 26

            }

        },

        "gender": {

            "words": "",

            "score": 0.9999,

            "position": {

                "left": 160,

                "top": 135,

                "width": 29,

                "height": 23

            }

        },

        "nationality": {

            "words": "",

            "score": 0.9999,

            "position": {

                "left": 270,

                "top": 135,

                "width": 27,

                "height": 22

            }

        },

        "idno": {

            "words": "##########",

            "score": 0.9999,

            "position": {

                "left": 244,

                "top": 328,

                "width": 298,

                "height": 26

            }

        },

        "address": {

            "words": "北京市",

            "score": 0.9999,

            "position": {

                "left": 162,

                "top": 220,

                "width": 229,

                "height": 25

            }

        },

        "birthdate": {

            "words": "1992.11.3",

            "score": 0.9999,

            "position": {

                "left": 160,

                "top": 175,

                "width": 180,

                "height": 23

            }

        },

        "issued": null,

        "valid": null,

        "head_info": null,

        "returned_image": ""

    },

    "error_code": 0,

    "description": "识别成功",

    "request_id": "FA336B9CDBF444C7BA314A45C9891CED",

    "recognize_time": 401,

    "available_count": 19698

}

返回说明

通用参数

参数

类型

说明

result

array

返回结果数组,包括所有字段的识别信息

error_code

int

错误码,返回0为正确,其他为错误

description

string

识别结果描述

request_id

string

请求唯一标识符

recognize_time

int

识别所用时间,单位为毫秒

available_count

int

识别剩余可用次数,次数不足时无法继续识别,可在控制台进行充值次数

身份证识别特有参数

参数

类型

说明

issued

string

签发机关

valid

string

有效期

head_info

string

头像信息

returned_image

string

返回调整过的base64图像编码(切边、校正)

face

int

当前身份证正反面(1为人像面,2为国徽面)

name

string

姓名

gender

string

性别

nationality

string

民族

idno

string

身份证号码

address

string

地址

birthdate

string

生日

words

string

当前字段的值

score

float

可信度(1.0为可信度100%

position

array

当前字段在图像上的位置信息

left

int

位置值,距离原图左侧距离x,单位为像素

top

int

位置值,距离原图上方距离y,单位为像素

width

int

位置值,字段所在图框宽度w,单位为像素

height

int

位置值,字段所在图框高度h,单位为像素

 

 

隐私保护通话使用全流程:

 

 

入驻华为云

1.    华为云注册入口:点击注册页面

2.    企业实名认证:点击进行实名认证

注:实名认证信息最长3个工作日内审核完成,请耐心等待审核结果,审核成功,即可完成认证。

开通服务

开通服务:访问产品首页,点击立即使用开通服务。

注:开通隐私保护通话服务前,请认真阅读隐私保护通话服务协议;点击立即开通,即可开通服务。

添加放音文件(可选)

若您需要使用自定义放音,点此查看如何添加放音文件。(点此了解自定义放音使用场景

创建应用

创建应用:点击查看如何创建应用

订购号码

1.    添加企业:订购号码前需要先提交企业资料,点击查看如何添加企业

2.    订购号码:点击查看如何订购号码

线下开发

参考开发指南API文档,进行线下开发。

线下开发完成后,您就可以开展业务了。

AXB模式接口使用说明:

 

X表示隐私号码,AB为相互保密的两个业务受益用户,AB用户之间不知道对方真实号码的存在,他们互相通讯使用的被叫号码都是X

AXB模式场景下X号码允许被多组号码进行绑定,同一个X号码不能被相同的A或者B号码同时绑定。

典型的AXB模式场景相关接口如下:

1.     AXB模式绑定接口:客户调用此接口设置了AXB的绑定关系后,AB才可通过X号码进行联系。

2.     AXB模式绑定信息修改接口&AXB模式绑定信息查询接口:绑定关系成立后,客户可通过这两个接口随时修改或查询绑定信息。

3.     AXB模式呼叫事件通知接口AXB模式话单通知接口X号码状态通知接口&短信通知接口:绑定关系成立后,AB之间所有通过X的呼叫或者短信的状态与话单及X号码状态,都会通过对应接口实时推送到客户服务器。AXB模式下所有通知均以Notify模式推送,客户返回HTTP状态码为200的空消息即可。

4.     AXB模式解绑接口:绑定关系使用完毕后(例如AB的订单结束,不再需要互相联系),客户可解除绑定关系,以达到重复使用隐私号码资源的目的。

5.     终止呼叫接口:客户随时可调用该接口终止一路隐私保护通话呼叫。

6.     获取录音文件下载地址接口:客户从呼叫话单中获取到录音文件名后,可通过调用此接口获取录音文件下载地址。

 

 

 

国内短信使用全流程:

 

申请短信服务

开通短信服务:点击开通短信服务

注:开通短信服务前,请认真阅读短信服务协议;点击立即开通,即可开通短信服务。

创建短信应用

1.    如何创建短信应用,点击查看创建短信应用

2.    获取APP_KeyAPP_SecretAPP接入地址,登录短信控制台,点击国内短信应用管理获取。

申请短信签名

1.    申请签名前请先查看短信签名审核标准

2.    如何申请签名,点击查看申请短信签名

申请短信模板

1.    申请模板前请先查看短信内容审核标准

2.    如何申请模板,点击查看申请短信模板

订购短信套餐包(可选)

请在短信签名和短信模板审批完成后再购买短信套餐包。

1.    订购短信套餐包前请先查看短信价格说明

2.    如何订购短信套餐包,点击查看购买短信套餐包

发送短信

·      通过API调用进行短信发送。

获取 代码样例,快速开发应用,相关接口如下:

o  发送短信API

o  发送分批短信API

o  接收状态报告API

o  接收上行短信API

·      通过群发助手进行短信发送。

查看发送状态

请参考如何判断短信发送成功确认短信发送状态。

 

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。