文档首页 > > API参考> API> 智能分类识别

智能分类识别

分享
更新时间:2020/10/15 GMT+08:00

功能介绍

检测定位图片上指定要识别的票证(票据、证件或其他文字载体),并以json格式返回识别的结构化结果。

接口以列表形式返回图片上要识别票证的位置坐标、结构化识别的内容以及对应的类别。该接口支持的票证类型请见表3,该接口的使用限制请参见约束与限制,详细使用指导请参见OCR服务使用简介章节。

智能分类服务只对识别成功的票证进行计费,识别失败的票证不计费。例如,图片中包含三张票证,有两张识别成功,一张识别失败,此时接口计费两次。

前提条件

在使用智能分类识别之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务认证鉴权章节。

URL

POST https://{endpoint}/v1.0/ocr/auto-classification

表1 参数说明

参数

是否必选

说明

endpoint

指定承载REST服务端点的服务器域名或IP,不同服务不同区域的endpoint不同,您可以从终端节点中获取。

例如,OCR服务在“华北-北京四”区域的“endpoint”“ocr.cn-north-4.myhuaweicloud.com”

请求消息

智能分类识别请求参数说明请参见表2

表2 请求参数

参数

是否必选

参数类型

说明

image

否,该参数与url二选一

String

图像数据,base64编码,要求base64编码后大小不超过10MB。

图片最小边不小于15px,最长边不超过8000px,支持JPEG、JPG、PNG、BMP、TIFF格式。

url

否,该参数与image二选一

String

图片的url路径,目前支持:

  • 公网http/https url
  • OBS提供的url,使用OBS数据需要进行授权。包括对服务授权、临时授权、匿名公开授权,详情参见配置OBS访问权限
说明:
  • 接口响应时间依赖于图片的下载时间,如果图片下载时间过长,会返回接口调用失败。
  • 请保证被检测图片所在的存储服务稳定可靠,推荐使用OBS服务存储图片数据。

type_list

List

可以指定要识别的票证,指定后不出现在此List的票证不识别。不指定时默认返回所有支持类别票证的识别信息。

当前版本支持的票证类型请参见表2

表3 支持票证类型

票证类型

参数值

身份证头像面

id_card_portrait_side

身份证国徽面

id_card_emblem_side

行驶证主页

vehicle_license_front

行驶证副页

vehicle_license_back

驾驶证主页

driver_license_front

驾驶证副页

driver_license_back

护照

passport

银行卡

bankcard

道路运输证

transportation_license

增值税发票

vat_invoice

机动车销售统一发票

mvs_invoice

出租车发票

taxi_invoice

火车票

train_ticket

定额发票

quota_invoice

车辆通行费发票

toll_invoice

飞机行程单

flight_itinerary

响应消息

智能分类识别响应参数说明请参见表4
表4 响应参数

参数

参数类型

说明

result

Object

调用成功时返回的调用结果。

status

Object

指示各对应票证的识别状态。

content

Object

对应票证具体结构化识别的结果。

type

String

对应票证的类别。

location

Array of objects

各票证在原图上的坐标,依次分别为左上、右上、右下、左下。

confidence

Object

相关字段的置信度信息,取值范围0~1。

置信度越大,表示本次识别的对应字段的可靠性越高,在统计意义上,置信度越大,准确率越高。

置信度由算法给出,不直接等价于对应字段的准确率。

error_code

String

调用失败时的错误码,具体请参见错误码

当出现错误码“ModelArts.4204”时,请参考为什么调用API时提示“ModelArts.4204”?章节。

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

示例

  • “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点

    例如,智能分类识别服务部署在“华北-北京四”区域的“endpoint”“ocr.cn-north-4.myhuaweicloud.com”,请求URL为“https://ocr.cn-north-4.myhuaweicloud.com/v1.0/ocr/auto-classification”

  • 如何获取Token具体操作请参见构造请求
  • 请求样例(方式一:使用图片的base64编码)
    POST https://{endpoint}/v1.0/ocr/auto-classification
    
    Request Header:
    Content-Type: application/json   
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body: 
    {
       "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA..."
    }
  • 请求样例(方式二:使用图片URL)
    POST https://{endpoint}/v1.0/ocr/auto-classification
    
    Request Header:
    Content-Type: application/json   
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body: 
    {
       "url":"https://BucketName.obs.xxxx.com/ObjectName"
    }
  • Python语言请求代码示例(其他语言参照下列示例编写或使用OCR SDK)
    # encoding:utf-8
    
    import requests
    import base64
    
    url = "https://{endpoint}/v1.0/ocr/auto-classification"
    token = "用户获取得到的实际token值"
    headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}
    imagepath = r'./data/auto-classification-demo.png'
    with open(imagepath, "rb") as bin_data:
        image_data = bin_data.read()
    image_base64 = base64.b64encode(image_data).decode("utf-8")  # 使用图片的base64编码
    payload = {"image": image_base64} # url与image参数二选一
    response = requests.post(url, headers=headers, json=payload)
    print(response.text)
  • 响应样例
    {
        "result": [
            {
                "status": {
                    "error_code": "AIS.0000", 
                    "error_msg": "Succeeded."
                }, 
                "type": "quota_invoice", 
                "location": [
                    [65, 1006], 
                    [1388, 1006], 
                    [1388, 1863], 
                    [65, 1863]
                ],
                "content": {               
                    "code": "13XXXXXX1301",
                    "number": "40XXXX88",
                    "amount": "¥50.00",              
                    "location": "上海", 
                    "confidence": {                    
                        "code": 0.9253, 
                        "number": 0.9665,
                        "amount": 0.9848,
                        "location": 0.9847 
                    }                
                }
            },
            {
                "status": {
                    "error_code": "AIS.0000", 
                    "error_msg": "Succeeded."
                }, 
                "type": "quota_invoice", 
                "location": [
                     [621, 605], 
                     [1328, 605], 
                     [1328, 1094], 
                     [621, 1094]
                ],     
                "content": {               
                    "code": "13XXXXXX1301",
                    "number": "40XXXX00",
                    "amount": "¥100.00",             
                    "location": "上海", 
                    "confidence": {                    
                        "code": 0.9556, 
                        "number": 0.9455,
                        "amount": 0.9917,
                        "location": 0.9347 
                    }                
                }
            },
            {
                "status": {
                    "error_code": "AIS.0104", 
                    "error_msg": "The image is not supported or the image quality is poor."
                }, 
                "type": "quota_invoice", 
                "location": [
                    [816, 103], 
                    [2125, 103], 
                    [2125, 978], 
                    [816, 978]
                ],
                "content": {}
            }
        ]
    }
  • 失败响应样例
    {
        "error_code": "AIS.0103", 
        "error_msg": "The image size does not meet the requirements." 
    }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问