# 银行卡
版本 V1.0.0
# 1. 接口定义
# 1.1 接口
URL = http://ip:port/hex/ocrapi/creditcardocr
其中 ip 为部署机器的 ip 地址,port 为对应服务器的端口
# 1.2 描述
银行卡OCR基于业界领先的深度学习技术,支持对银行卡的卡号、有效期等关键字段.在复杂场景下的多角度、多版式精准检测及识别。同时基于银行标识代码的检测识别结果,实现对大部分银行卡信息的查询反馈。 支持多种类型银行卡有效性告警,可以应用于各种银行卡信息有效性校验场景,例如金融行业身份认证、第三方支付绑卡等场景。
# 1.3 HTTP请求格式
# 1.3.1 请求参数
属性 | 参数名称 | 必选 | 类型 | 可选值 | 默认值 | 参数描述 |
固 定 列 | image | 和url二选一 | String | 无 | 无 | 图像base64编码后的字符串,图像需是JPG、PNG、BMP其中之一的格式 |
url | 和image二选一 | String | 无 | 无 | 图片url地址,url与image两者填一个即可,同时赋值时,则以url指定的图像作为输入 | |
session_id | 否 | String | 无 | 无 | 用户自定义的唯一会话id | |
可 变 | enable_border_check | 否 | Bool | false\true | false | 边框遮挡检测开关,如果输入图片边框被遮挡则返回告警 |
enable_reshoot_check | 否 | Bool | false\true | false | 翻拍检测开关,如果输入图片是翻拍图片则返回告警 | |
enable_copy_check | 否 | Bool | false\true | false | 复印件检测开关,如果输入图片是银行卡复印件图片则返回告警 | |
ret_border_cut_image | 否 | Bool | false\true | false | 是否返回识别后的切图图片数据(切图图片是指精确剪裁对齐后的银行卡图片) | |
ret_card_no_image | 否 | Bool | false\true | true | 是否返回卡号图片数据 | |
ret_warncode_flag | 否 | Bool | false\true | false | 是否返回单告警码开关(已废弃接口,为了兼容性需求保留,告警码这里请使用多重告警码) | |
enable_recognize_warn_code | 否 | Bool | false\true | false | 是否返回多重告警码 | |
enable_quality_value | 否 | Bool | false\true | false | 是否返回图片质量数值(图片质量分数是评价一个图片的模糊程度的标准) |
# 1.3.2 请求示例
{
"image": 填写Base64编码后的图片数据,
"session_id": 填写对应的session_id,
"options":
{
"ret_warncode_flag":true,
"ret_border_cut_image":false,
"ret_card_no_image":false,
"enable_copy_check":true,
"enable_reshoot_check":true,
"enable_border_check": true,
"enable_recognize_warn_code":true,
"enable_quality_value":true
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1.3.3 返回参数
属性 | 参数 | 是否必然返回 | 类型 | 参数说明 | |
固 定 列 | errorcode | 是 | Int32 | 错误码 | |
errormsg | 是 | string | 错误码消息 | ||
session_id | 否 | string | 相应请求的session标识符,可用于结果查询 | ||
| warncode | 否 | Int32 | 单告警码,是否返回由 ret_warncode_flag决定。已废弃,为了接口兼容性需求保留,建议使用多重告警接口 | |
warnmsg | 否 | String | 单告警码信息,是否返回由 ret_warncode_flag决定。已废弃,为了接口兼容性需求保留,建议使用多重告警接口 | ||
recognize_warn_code | 否 | Int32 | 多重告警码,是否返回由enable_recognize_warn_code决定 | ||
recognize_warn_warnmsg | 否 | String | 多重告警码信息,是否返回enable_recognize_warn_code决定 | ||
quality_value | 是 | Int32 | 图片参数目前用于评估输入图片模糊程度 | ||
special_image | border_cut | 是 | String | 切片图片数据,使用base64加密后的字符串,是否返回由ret_border_cut_image决定 | |
card_no | 是 | String | 卡号图片数据,使用base64加密后的字符串,是否返回由ret_border_cut_image决定 | ||
items | item | 是 | String | 识别出的字段名称(关键字),支持以下字段: | |
itemstring | 是 | String | 识别出的文本行字符串 | ||
itemconf | 是 | Float | 字段置信度 | ||
itemcoord | 是 | Object | 文本行在旋转纠正之后的图像中的像素坐标,表示为(左上角x, 左上角y,宽width,高height) |
# 1.3.4 返回示例
{
"warnmsg": "WARN_CREDITCARD_CORNER_EXCEED",
"errormsg": "OK",
"timecost": 2.3623669147491455,
"quality_value": 50,
"recognize_warn_msg": [ "WARN_CREDITCARD_CORNER_EXCEED"],
"errorcode":0, "special_image":{
"border_cut":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/"
"card_no":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB/"
},
"recognize_warn_code": [ -9111],
"items": [
{
"itemstring": "6225760088888888",
"wordcoordpoint": [],
"item": "卡号",
"itemconf": 0.9406975507736206,
"itemcoord": {
"y": 277,
"x": 95,
"height": 47,
"width": 534
}
}
],
"warncode": -9111
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 1.3.5 接口错误码说明
错误码 | 错误码消息 | 错误码说明 |
-5208 | OCR_SERVER_INTERN_ERROR | 服务器内部错误,初始化失败 |
-1102 | SDK_IMAGE_DECODE_FAILED | 图片解码失败 |
-9010 | CREDITCARD_OCR_PREPROCESS_ERROR | 银行卡OCR预处理错误 |
-9011 | CREDITCARD_OCR_RECOG_FAILED | 银行卡OCR识别失败 |
-9012 | CREDITCARD_OCR_IMAGE_BLUR | 银行卡图片模糊 |
-9013 | ERROR_NOT_A_CREDITCARD | 不是银行卡 |
-9014 | ERROR_CREDITCARD_ILLEGAL | 银行卡信息不合法 |
# 1.3.6 接口告警码说明
告警码 | 告警码消息 | 告警码说明 |
-9110 | WARN_CREDITCARD_INVALID_DATE | 银行卡日期无效 |
-9111 | WARN_CREDITCARD_CORNER_EXCEED | 银行卡边框不完整 |
-9112 | WARN_CREDITCARD_REFLECT_LIGHT | 银行卡图片反光 |
-9113 | WARN_CREDITCARD_COPY_CARD | 银行卡复印件 |
-9114 | WARN_CREDITCARD_RESHOOT_CARD | 银行卡翻拍件 |