泰文身份证识别
约束与限制
- 只支持泰国身份证的识别。
- 只支持识别PNG、JPG、JPEG、BMP、TIFF格式图片。
- 泰国身份证识别图像各边的像素大小在15px到8192px之间。
- 图像中身份证区域有效占比超过25%,保证整张身份证内容及其边缘包含在图像内。
- 支持图像中身份证任意角度的水平旋转。
- 支持少量扭曲,扭曲后图像中的身份证长宽比与实际身份证相差不超过10%。
- 能处理反光、暗光等干扰的图片但影响识别精度。
- 目前只支持识别单张身份证的正面或者反面。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
前提条件
在使用泰文身份证识别之前,需要您完成服务申请和认证鉴权,具体操作流程请参见开通服务和认证鉴权章节。

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。
URI
POST /v2/{project_id}/ocr/thailand-id-card
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。 |
Content-Type |
是 |
String |
发送的实体的MIME类型,参数值为“application/json”。 |
Enterprise-Project-Id |
否 |
String |
企业项目ID。OCR支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。 企业项目创建步骤请参见用户指南。
说明:
创建企业项目后,在传参时,有以下三类场景。
|
参数 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
image |
否 |
String |
与url二选一。 图片的Base64编码,要求Base64编码后大小不超过10MB。 图片最短边不小于15px,最长边不超过8192px,支持JPEG、JPG、PNG、BMP、TIFF格式。 图片Base64编码示例如/9j/4AAQSkZJRgABAg...,带有多余前缀会产生The image format is not supported报错。 |
url |
否 |
String |
与image二选一。 图片的url路径,目前支持:
说明:
|
side |
否 |
String |
标示身份证正面或背面。可选值如下:
如果参数值为空或无该参数,系统自动识别,建议填写,准确率更高。 |
return_portrait_image |
否 |
Boolean |
是否返回身份证头像照片的 Base64 编码,可选值如下:
未传入该参数时默认为false,即不返回身份证头像照片的 Base64 编码。 |
return_portrait_location |
否 |
Boolean |
是否返回头像位置坐标,可选值如下:
|
return_idcard_type |
否 |
Boolean |
是否返回身份证类型,可选值如下:
|
return_text_location |
否 |
Boolean |
识别到的文字块的区域位置信息。可选值包括: true:返回各个文字块区域 false:不返回各个文字块区域 如果无该参数,系统默认不返回文字块区域。如果输入参数不是Boolean类型,则会报非法参数错误。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
result |
ThailandIdcardResult object |
识别结果。 调用失败时不返回此字段。 |
参数 |
参数类型 |
描述 |
---|---|---|
type |
String |
返回证件类型,"normal"表示普通泰文证件,"pink"表示外国人身份证件 |
name_en |
String |
英文名。 |
ref_number |
String |
参考编码。 |
side |
String |
标示正面还是反面,取值为front或back。 |
id_number |
String |
身份证号。 |
name_th |
String |
泰文名字。 |
first_name_en |
String |
英文名字。 |
last_name_en |
String |
英文姓氏。 |
date_of_birth_th |
String |
泰文出生日期。 |
date_of_birth_en |
String |
英文出生日期。 |
religion_th |
String |
宗教。 |
address_th |
String |
地址。 |
date_of_issue_th |
String |
泰文签发日期。 |
date_of_issue_en |
String |
英文签发日期。 |
date_of_expiry_th |
String |
泰文有效期。 |
date_of_expiry_en |
String |
英文有效期。 |
serial_number |
String |
序列号。 |
card_number |
String |
身份证反面卡号。 |
laser_number |
String |
激光码。 |
confidence |
ThailandIdcardConfidence 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”时,才返回该参数。取值如下所示:
|
text_location |
Object |
对应所有在原图上识别到的字段位置信息,包含所有文字区域四个顶点的二维坐标(x,y)。采用图像坐标系,坐标原点为图片左上角,x轴沿水平方向,y轴沿竖直方向。 |
参数 |
参数类型 |
描述 |
---|---|---|
id_number |
Float |
身份证号置信度。 |
name_th |
Float |
泰文名字置信度。 |
name_en |
Float |
英文名置信度。 |
ref_number |
Float |
参考编码置信度。 |
first_name_en |
Float |
英文名字置信度。 |
last_name_en |
Float |
英文姓氏置信度。 |
date_of_birth_th |
Float |
泰文出生日期置信度。返回值例如,5 ก.พ. 2493。 |
date_of_birth_en |
Float |
英文出生日期置信度。返回值例如,5 Feb. 1950。 |
religion_th |
Float |
宗教置信度。 |
address_th |
Float |
地址置信度。 |
date_of_issue_th |
Float |
泰文签发日期置信度。 |
date_of_issue_en |
Float |
英文签发日期置信度。 |
date_of_expiry_th |
Float |
泰文有效期置信度。 |
date_of_expiry_en |
Float |
英文有效期置信度。 |
serial_number |
Float |
序列号置信度。 |
card_number |
Float |
身份证反面卡号置信度。 |
laser_number |
Float |
激光码置信度。 |
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
调用失败时的错误码,具体请参见错误码。 当出现错误码“ModelArts.4204”时,请参考为什么调用API时提示“ModelArts.4204”?章节。 调用成功时不返回此字段。 |
error_msg |
String |
调用失败时返回的错误信息。 调用成功时不返回此字段。 |
请求示例

- “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。
例如,泰文身份证识别服务部署在“亚太-曼谷”区域的“endpoint”为“ocr.ap-southeast-2.myhuaweicloud.com”或“ocr.ap-southeast-2.myhuaweicloud.cn”,请求URL为“https://ocr.ap-southeast-2.myhuaweicloud.com/v2/{project_id}/thailand-id-card”,“project_id”为项目ID,获取方法请参见获取项目ID
- 如何获取Token请参见构造请求。
- 请求示例(方式一:使用图片的Base64编码)
POST https://{endpoint}/v2/{project_id}/ocr/thailand-id-card Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "image" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA...", "side" : "front", "return_portrait_image" : true, "return_portrait_location" : true, "return_idcard_type" : true }
- 请求示例(方式二:使用图片URL)
POST https://{endpoint}/v2/{project_id}/ocr/thailand-id-card Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "url":"https://BucketName.obs.xxxx.com/ObjectName" }
- Python3语言请求代码示例(其他语言参照下列示例编写或使用OCR SDK)
# encoding:utf-8 import requests import base64 url = "https://{endpoint}/v2/{project_id}/ocr/thailand-id-card" token = "用户获取得到的实际token值" headers = {'Content-Type': 'application/json', 'X-Auth-Token': token} imagepath = r'./data/thailand-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", "id_number" : "X XXXX XXXXX XX X", "name_th" : "XXX", "first_name_en" : "XX", "last_name_en" : "XX", "date_of_birth_th" : "5 ก.พ. 2493", "date_of_birth_en" : "5 Feb. 1950", "religion_th" : "XX", "address_th" : "XXXXX", "date_of_issue_th" : "XX", "date_of_issue_en" : "4 Mar. 2011", "date_of_expiry_th" : "22 ก.พ. 2561", "date_of_expiry_en" : "22 Feb. 2018", "serial_number" : "XXXX-XX-XXXXX", "confidence" : { "id_number" : 0.9999, "name_th" : 0.9994, "first_name_en" : 0.998, "last_name_en" : 0.9997, "date_of_birth_th" : 0.9996, "date_of_birth_en" : 0.9997, "religion_th" : 0.686, "address_th" : 0.624, "date_of_issue_th" : 1, "date_of_issue_en" : 1, "date_of_expiry_th" : 0.9969, "date_of_expiry_en" : 0.61, "serial_number" : 0.9887 }, "portrait_image" : "/9j/4AA... ", "portrait_location" : [ [ 576, 237 ], [ 741, 237 ], [ 739, 430 ], [ 574, 431 ] ], "idcard_type" : "normal" } }
成功响应示例(背面)
{ "result": { "side": "back", "card_number": "XXXX-XXX-XX", "laser_number": "XXXX-XXXXXXX-XX", "confidence": { "id_number": 0.9999, "laser_number": 0.9994 } } }
状态码:400
失败响应示例
{ "error_code": "AIS.0103", "error_msg": "The image size does not meet the requirements." }
状态码
状态码 |
描述 |
---|---|
200 |
成功响应样例 |
400 |
失败响应样例 |
状态码请参见状态码。
错误码
错误码请参见错误码。