文档首页> 文字识别 OCR> API参考> API> 缅文身份证识别
更新时间:2023-11-07 GMT+08:00

缅文身份证识别

功能介绍

识别缅甸身份证中的文字信息,并将识别的结构化结果返回给用户。该接口的使用限制请参见约束与限制,详细使用指导请参见OCR服务使用简介章节。

图1 缅甸文身份证示例图

约束与限制

  • 只支持识别PNG、JPG、JPEG、BMP、TIFF格式的图片。
  • 缅甸身份证识别图像各边的像素大小在15到8000px之间。
  • 图像中身份证区域有效占比超过25%,保证整张身份证内容及其边缘包含在图像内。
  • 支持图像中身份证任意角度的水平旋转。
  • 支持少量扭曲,扭曲后图像中的身份证长宽比与实际身份证相差不超过10%。
  • 能处理反光、暗光等干扰的图片但影响识别精度。
  • 目前只支持识别单张身份证的正面或者反面。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

API Explorer可调用区域为中国-香港。

前提条件

在使用缅文身份证识别之前,需要您完成服务申请和认证鉴权,具体操作流程请参见开通服务认证鉴权章节。

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。

URI

POST /v2/{project_id}/ocr/myanmar-id-card

表1 路径参数

参数

是否必选

说明

endpoint

终端节点,即调用API的请求地址。

不同服务不同区域的endpoint不同,您可以从终端节点中获取。

project_id

项目ID,您可以从获取项目ID中获取。

Enterprise-Project-Id

企业项目ID。OCR支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。

获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。

企业项目创建步骤请参见用户指南。

说明:

创建企业项目后,在传参时,有以下三类场景。

  • 携带正确的ID,正常使用OCR服务,账单归到企业ID对应的企业项目中。
  • 携带错误的ID,正常使用OCR服务,账单的企业项目会被分类为“未归集”。
  • 不携带ID,正常使用OCR服务,账单的企业项目会被分类为“未归集”。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。

Content-Type

String

发送的实体的MIME类型,参数值为“application/json”。

表3 请求Body参数

参数

是否必选

参数类型

说明

image

String

与url二选一。

图片的Base64编码,要求Base64编码后大小不超过10MB。

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

图片Base64编码示例如/9j/4AAQSkZJRgABAg...,带有多余前缀会产生The image format is not supported报错。

url

String

与image二选一。

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

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

convert_unicode

Boolean

输出格式,可选值如下:

  • true:输出为unicode格式
  • false:输出为zawgyi格式

如果参数值为空或无该参数,默认输出为zawgyi格式。

return_confidence

Boolean

是否返回置信度,可选值如下:

true:返回置信度

false:不返回置信度

如果无该参数,系统默认不返回置信度。如果输入参数不是Boolean类型,则会报非法参数错误。

return_portrait_image

Boolean

是否返回身份证头像照片的 Base64 编码,可选值如下:

  • true:返回身份证头像照片的 Base64 编码
  • false:不返回身份证头像照片的 Base64 编码

未传入该参数时默认为false,即不返回身份证头像照片的 Base64 编码。

return_portrait_location

Boolean

是否返回身份证头像的位置,可选值如下:

  • true :返回身份证头像的位置
  • false:不返回身份证头像的位置

return_idcard_type

Boolean

是否返回身份证类型,可选值如下所示:

  • true: 返回身份证类型,类型包括身份证原件好身份证复印件
  • false:不返回身份证类型

return_translation

Boolean

是否返回转译信息的开关,可选值如下所示:

  • true: 返回转译信息。
  • false:不返回转译信息。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

result

MyanmarIdcardResult object

调用结果。

调用失败时不返回此字段。

表5 MyanmarIdcardResult

参数

参数类型

描述

side

String

标示身份证是正面还是反面,取值为front或back。

class

String

身份证类型。取值如下:

  • new_version:新版身份证
  • old_version:旧版身份证

nrc_id

String

身份证号码。

issue_date

String

签发日期。

name

String

姓名。

father_name

String

父亲名字。

birth

String

出生日期。

bloodlines_religion

String

族群或宗教。

height

String

身高。

blood_group

String

血型。

card_id

String

身份证的卡号(背面)。

nrc_id_back

String

背面的身份证号码。

profession

String

职业。

address

String

地址。

confidence

MyanmarIdcardConfidence object

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

置信度越大,本次识别的字段的可靠性越高,在统计意义上,置信度越大,准确率越高。 置信度由算法给出,不直接等价于字段的准确率。

portrait_image

String

头像的Base64编码。 当输入参数“return_portrait_image”为“true”时,才返回该参数。

portrait_location

Array<Array<Integer>>

头像在原图上的位置。 当输入参数“return_portrait_location”为“true”时,才返回该参数。以列表形式显示,包含头像区域四个顶点的二维坐标(x,y),坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。

idcard_type

String

身份证的类型。当输入参数“return_idcard_type”为“true”时,才返回该参数。取值如下所示:

  • normal:身份证原件
  • copy:身份证复印件

translation_info

MyanmarIdcardTranslationInfo object

转译信息。仅当输入参数return_translation为true时,返回该字段。该字段包含name_translation、nrc_id_translation的信息。当无法找到合适的翻译字段时,保留原始缅文字符。

表6 MyanmarIdcardConfidence

参数

参数类型

描述

nrc_id

Float

身份证号码置信度。

issue_date

Float

签发日期置信度。

name

Float

姓名置信度。

birth

Float

出生日期置信度。

bloodlines_religion

Float

族群或宗教置信度。

height

Float

身高置信度。

blood_group

Float

血型置信度。

card_id

Float

身份证卡号(背面)置信度。

nrc_id_back

Float

背面的身份证号。

profession

Float

职业置信度。

address

Float

地址置信度。

表7 MyanmarIdcardTranslationInfo

参数

参数类型

描述

name_translation

String

名字转译。仅当输入参数return_translation为true时,返回该字段。

father_name_translation

String

父亲名字的转译。仅当输入参数return_translation为true时,返回该字段。

nrc_id_translation

String

身份证号码转译。仅当输入参数return_translation为true时,返回该字段。

birth_translation

String

出生日期转译。仅当输入参数return_translation为true时,返回该字段。

状态码: 400

表8 响应Body参数

参数

参数类型

描述

error_code

String

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

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

调用成功时不返回此字段。

error_msg

String

调用失败时返回的错误信息。

调用成功时不返回此字段。

请求示例

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

    例如,缅文身份证识别服务部署在“中国-香港”区域的“endpoint”“ocr.ap-southeast-1.myhuaweicloud.com”“ocr.ap-southeast-1.myhuaweicloud.cn”,请求URL为“https://ocr.ap-southeast-1.myhuaweicloud.com/v2/{project_id}/ocr/myanmar-id-card”“project_id”为项目ID,获取方法请参见获取项目ID

  • 如何获取Token请参见构造请求
  • 请求示例(方式一:使用图片的Base64编码)
    POST https://{endpoint}/v2/{project_id}/ocr/myanmar-id-card
    
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body: 
    {
        "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAd...",
        "convert_unicode": true,
        "return_confidence": true,
        "return_portrait_image": true,
        "return_portrait_location": true,
        "return_idcard_type": true
    }
  • 请求示例(方式二:使用图片URL)
    POST https://{endpoint}/v2/{project_id}/ocr/myanmar-id-card
    
    Request Header:
    Content-Type: application/json
    X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    Request Body: 
    {
        "url":"https://BucketName.obs.xxxx.com/ObjectName",
        "convert_unicode": true,
        "return_confidence": true,
        "return_portrait_image": true,
        "return_portrait_location": true,
        "return_idcard_type": true
    }
  • Python3语言请求代码示例(其他语言参照下列示例编写或使用OCR SDK)
    # encoding:utf-8
    
    import requests
    import base64
    
    url = "https://{endpoint}/v2/{project_id}/ocr/myanmar-id-card"
    token = "用户获取得到的实际token值"
    headers = {'Content-Type': 'application/json', 'X-Auth-Token': token}
    
    imagepath = r'./data/myanmar-id-card-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}
    response = requests.post(url, headers=headers, json=payload)
    print(response.text)

响应示例

状态码:200

成功响应示例(正面)

{ 
  "result" : { 
    "side" : "front", 
    "nrc_id" : "XXXXXXXX", 
    "issue_date" : "၂၀.၉.၂၀၁၁", 
    "name" : "XXXX", 
    "father_name" : "XXX", 
    "birth" : "၁၄.၁၀.၁၉၉၁", 
    "bloodlines_religion" : "ဗမာ၊ဗုဒ္ဓ", 
    "height" : "၅'၅\"", 
    "blood_group" : "ဘီ", 
    "class" : "new_version", 
    "confidence" : { 
      "nrc_id" : 0.7514, 
      "issue_date" : 0.5385, 
      "name" : 0.6641, 
      "birth" : 0.5216, 
      "bloodlines_religion" : 0.9774, 
      "height" : 0.7526, 
      "blood_group" : 0.7541 
    }, 
    "portrait_image" : "/9j/4AA... ", 
    "portrait_location" : [ [ 106, 178 ], [ 369, 181 ], [ 366, 448 ], [ 108, 445 ] ], 
    "idcard_type" : "normal", 
    "translation_info" : { 
      "name_translation" : "Ma Sandar Phy", 
      "father_name_translation" : "U Thein Po", 
      "birth_translation" : "7.5.1992", 
      "nrc_id_translation" : "9/MaKhaNa(C)251959" 
    } 
  } 
}

成功响应示例(背面)

{
    "result":{
        "side": "back", 
        "card_id": "XXXXXXX", 
        "nrc_id_back": "", 
        "profession": "ကျောင်းသား", 
        "address": "XXXXXXXX", 
        "class": "new_version", 
        "confidence": {
            "card_id": 0.9878, 
            "nrc_id_back": 0.9595, 
            "profession": 0.9995, 
            "address": 0.9299
        },
        "idcard_type": "normal"    
    }
}

状态码:400

失败响应示例

{
    "error_code": "AIS.0103", 
    "error_msg": "The image size does not meet the requirements." 
}

状态码

状态码

描述

200

成功响应样例

400

失败响应样例

状态码请参见状态码

错误码

错误码请参见错误码