人脸识别对比测试接口
实人认证需要四个接口:
1、 OCR文字提取
2、 活体检测
3、 比对(包含人脸比对)
4、 人脸比对接口
API接口文档:
人脸比对:
接口描述
用户通过发送HTTP Post请求方式提交数据至公有云服务器,服务器识别并返回json格式的识别结果。
接口说明
请求URL:http://api.exocr.com/face/v1/compare
请求方式:HTTP Post
返回格式:json
Header
参数 |
值 |
Content-Type |
使用二进制方式时,为multipart/form-data;使用base64和url方式时,为application/x-www-form-urlencoded |
请求参数
参数 |
必选 |
类型 |
说明 |
app_key |
是 |
string |
请在控制台->我的应用中获取 |
app_secret |
是 |
string |
请在控制台->我的应用中获取 |
face1_base64 |
否 |
string |
人脸1图像base64编码。 face1_base64、face1_url、face1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。 |
face1_url |
否 |
string |
人脸1图像url地址。 face1_base64、face1_url、face1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。 |
face1_binary |
否 |
data |
人脸1图像二进制。 face1_base64、face1_url、face1_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face1_base64图像为准。 |
face2_base64 |
否 |
string |
人脸2图像base64编码。 face2_base64、face2_url、face2_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face2_base64图像为准。 |
face2_url |
否 |
string |
人脸2图像url地址。 face2_base64、face2_url、face2_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以face2_base64图像为准。 |
face2_binary |
否 |
data |
人脸2图像二进制。 face2_base64、face2_url、face2_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[] args) throws 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(url, params);
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(url, params);
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(url, params, streamMap);
//关闭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~100(100为相似度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格式的识别结果。
接口说明
请求URL:http://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[] args) throws 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(url, params);
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格式的识别结果。
接口说明
请求URL:http://api.exocr.com/ocr/v1/id_card
请求方式:HTTP Post
返回格式:json
Header
参数 |
值 |
Content-Type |
使用二进制方式时,为multipart/form-data;使用base64和url方式时,为application/x-www-form-urlencoded |
请求参数
参数 |
必选 |
类型 |
说明 |
app_key |
是 |
string |
请在控制台->我的应用中获取 |
app_secret |
是 |
string |
请在控制台->我的应用中获取 |
image_base64 |
否 |
string |
图像base64编码。 image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_url |
否 |
string |
图像url地址。 image_base64、image_url、image_binary三个参数中至少选择一个,读取优先级从前到后依次降低。如:同时选择了以上三个参数,则以image_base64图像为准。 |
image_binary |
否 |
data |
图像二进制。 image_base64、image_url、image_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[] args) throws 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(url, params);
System.out.println(result);
/**
* url
*/
//设置请求参数、识别图像url
params.put("app_key", "#####");
params.put("app_secret", "#####");
params.put("image_url", "imageUrl");
//发送请求,得到识别结果
result = HttpClientUtils.doPost(url, params);
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(url, params, streamMap);
//关闭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. 订购号码:点击查看如何订购号码
线下开发
线下开发完成后,您就可以开展业务了。
AXB模式接口使用说明:
X表示隐私号码,A、B为相互保密的两个业务受益用户,A和B用户之间不知道对方真实号码的存在,他们互相通讯使用的被叫号码都是X。
AXB模式场景下X号码允许被多组号码进行绑定,同一个X号码不能被相同的A或者B号码同时绑定。
典型的AXB模式场景相关接口如下:
1. AXB模式绑定接口:客户调用此接口设置了AXB的绑定关系后,A和B才可通过X号码进行联系。
2. AXB模式绑定信息修改接口&AXB模式绑定信息查询接口:绑定关系成立后,客户可通过这两个接口随时修改或查询绑定信息。
3. AXB模式呼叫事件通知接口、AXB模式话单通知接口、X号码状态通知接口&短信通知接口:绑定关系成立后,A和B之间所有通过X的呼叫或者短信的状态与话单及X号码状态,都会通过对应接口实时推送到客户服务器。AXB模式下所有通知均以Notify模式推送,客户返回HTTP状态码为200的空消息即可。
4. AXB模式解绑接口:绑定关系使用完毕后(例如A和B的订单结束,不再需要互相联系),客户可解除绑定关系,以达到重复使用隐私号码资源的目的。
5. 终止呼叫接口:客户随时可调用该接口终止一路隐私保护通话呼叫。
6. 获取录音文件下载地址接口:客户从呼叫话单中获取到录音文件名后,可通过调用此接口获取录音文件下载地址。
国内短信使用全流程:
申请短信服务
开通短信服务:点击开通短信服务
注:开通短信服务前,请认真阅读短信服务协议;点击“立即开通”,即可开通短信服务。
创建短信应用
1. 如何创建短信应用,点击查看创建短信应用。
2. 获取APP_Key、APP_Secret和APP接入地址,登录短信控制台,点击“国内短信> 应用管理”获取。
申请短信签名
1. 申请签名前请先查看短信签名审核标准。
2. 如何申请签名,点击查看申请短信签名。
申请短信模板
1. 申请模板前请先查看短信内容审核标准。
2. 如何申请模板,点击查看申请短信模板。
订购短信套餐包(可选)
请在短信签名和短信模板审批完成后再购买短信套餐包。
1. 订购短信套餐包前请先查看短信价格说明。
2. 如何订购短信套餐包,点击查看购买短信套餐包。
发送短信
· 通过API调用进行短信发送。
获取 代码样例,快速开发应用,相关接口如下:
o 发送短信API
· 通过群发助手进行短信发送。
查看发送状态
请参考如何判断短信发送成功确认短信发送状态。
- 点赞
- 收藏
- 关注作者
评论(0)