身份证OCR识别
一、接口描述
1. 功能描述
该API用于对二代居民身份证所有8个字段的结构化识别,支持少数民族身份证识别。扫描识别身份证准确率高达99%以上
2. 接口数据要求:
- 编码格式:UTF-8
3. 接口使用:
平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。
在获得使用权限后,您可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程
用户需要使用图片base64编码去做请求,使用其他图片的base64编码请求成功时也会加入计费。
二、请求说明
1. 接口地址 :
https://aiapi.jd.com/deepfinch/ocr_idcard
2. 请求方式:
post
3. 请求参数
(1)query请求参数
公共请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
appkey | String | 是 | 80d2b762ecb86593f9668526920f46c | 您的appkey,可在买家中心控制台中获取 |
timestamp | long | 是 | 1541491668060 | 请求的时间戳,精确到毫秒,timestamp有效期5分钟 |
sign | String | 是 | 2e148773a0337a8f2200ba90d445f083 | 签名,根据规则MD5(sectetkey+timestamp) |
(2)header请求参数
业务请求参数
名称 | 类型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|
Content-Type | String | 是 | application/json | 标准编码格式 |
(3)body请求参数
业务请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
image_base64 | String | 是 | 图片的base64格式数据,去掉头data:image/bmp;base64, |
body输入示例:
{
"image_base64": "xxxxxx"
}
三、返回说明
1.返回参数
(1)公共返回参数
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
code | string | 1000 | 参见下方错误码-系统级错误码 |
charge | boolean | false 或 true | false:不扣费, true:扣费 |
remainTimes | long | 1305 | 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1 |
remainSeconds | long | 1223456 | 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1 |
msg | string | 查询成功 | 参见下方错误码-系统级错误码 |
result | object | {...} | 查询结果 |
(2)业务返回参数
result参数信息
字段 | 类型 | 说明 |
---|---|---|
request_id | string | 本次请求的id |
status | string | 状态,正常为 OK |
image_id | string | 图片上传云端后的id 。使用file、url方式提交图片会返回此参数 |
exif_orientation | integer | exif 信息。若图片含有exif信息返回此参数,返回值范围为 1~8 。返回值的具体含义请参考 http://jpegclub.org/exif_orientation.html |
side | string | 身份证方向信息。front 代表身份证正面,back 代表身份证反面 |
rotate | string | 旋转角度。开启自动旋转功,返回旋转的角度值,可能的值为 cw90,cw180,cw270,表明顺时针旋转的角度。如果没有发生旋转,则不返回此字段 |
info | object | 身份证文字信息 |
validity | object | 各项信息有效性 |
info
的结构为:
字段 | 类型 | 说明 |
---|---|---|
name | string | 姓名 |
sex | string | 性别 |
nation | string | 民族 |
year | string | 出生年 |
month | string | 出生月 |
day | string | 出生日 |
address | string | 地址 |
number | string | 身份证号 |
authority | string | 签发机关 |
timelimit | string | 身份证有效期 |
validity
的结构如下:
字段 | 类型 | 说明 |
---|---|---|
name | boolean | 如果小于两个字符,或者包含数字,为 false ,反之为 true |
sex | boolean | 当检测出的性别与身份证号所表示的性别匹配,则为 true ,反之为 false |
birthday | boolean | 当检测出的出生日期与身份证号中的生日字段匹配,则值为 true ,反之为 false |
address | boolean | 身份证号码前6位为地区码,当其在预设的码表内,则值为 true ,否则为 false |
number | boolean | 当身份证号码符合校验规则,则值为 true ,反之,为 false |
authority | boolean | 检测出签发机构后两字是“分局”或“安局”,则为 true ,否则为 false |
timelimit | boolean | 身份证有效期长度为 17 位,第八位为 - ,年份大于等于 2000 年且小于等于 2050 年时,该值为 true ,否则为 false |
info
与validity
结构中authority
、timelimit
字段为身份证反面内容, 其余为身份证正面内容。当上传的图片是非身份证图片时,系统不会报错,但这种情况下
validity
中所有字段都会为false
,请参考validity
字段进行判断。
2.返回示例
身份证正面
{
"request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e",
"status": "OK",
"exif_orientation": 1,
"side": "front",
"rotate": "cw270",
"image_id":"xxxxx",
"info": {
"name": "小红",
"sex": "女",
"nation": "汉",
"year": "1990",
"month": "2",
"day": "14",
"address": "北京市海淀区xx路xx号",
"number": "360722199002148230"
},
"validity": {
"name": true,
"sex": true,
"birthday": true,
"address": true,
"number": true
}
}
身份证反面
{
"request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e",
"status": "OK",
"side": "back",
"image_id":"xxxxx",
"info": {
"authority": "宜昌市公安局西陵分局",
"timelimit": "20060529-20260529"
},
"validity": {
"authority": true,
"timelimit": true
}
}
四、错误码信息
1.系统级错误码
2.业务错误码
状态码 | status 字段 |
说明 |
---|---|---|
400 |
ENCODING_ERROR | 参数非UTF-8编码 |
400 |
DOWNLOAD_TIMEOUT | 网络地址图片获取超时 |
400 |
IMAGE_ID_NOT_EXIST | 图片不存在 |
400 |
CORRUPT_IMAGE | 文件不是图片文件或已经损坏 |
400 |
DOWNLOAD_ERROR | 网络地址图片获取失败 |
400 |
DOWNLOAD_TIMEOUT | 图片下载超时 |
400 |
IMAGE_FILE_SIZE_TOO_BIG | 图片体积过大 |
400 |
INVALID_IMAGE_FORMAT_OR_SIZE | 图片大小或格式不符合要求 |
400 |
INVALID_ARGUMENT | 请求参数错误,具体原因见 reason 字段内容 |
401 |
UNAUTHORIZED | 账号或密钥错误 |
401 |
KEY_EXPIRED | 账号过期,具体情况见 reason 字段内容 |
403 |
RATE_LIMIT_EXCEEDED | 调用频率超出限额 |
403 |
NO_PERMISSION | 无调用权限 |
404 |
NOT_FOUND | 请求路径错误 |
500 |
INTERNAL_ERROR | 服务器内部错误 |
以下请求参数列表仅列出了接口请求参数,其它参数见公共请求参数页面。