卡证识别

最近更新时间:2025-09-10 19:25:01

我的收藏

简介

本文档提供关于卡证文字识别的相关 API 概览以及 SDK 示例代码。
API
操作描述
支持中国大陆居民二代身份证正反面所有字段的识别,包括姓名、性别、民族、出生日期、住址、公民身份证号、签发机关、有效期限;具备身份证照片、人像照片的裁剪功能和翻拍、PS、复印件告警功能,以及边框和框内遮挡告警、临时身份证告警和身份证有效期不合法告警等扩展功能
支持中国大陆居民二代身份证正面(暂不支持背面)、驾驶证主页(暂不支持副页)所有字段的自动定位,暂不支持文本识别,用于对特定字段的抹除、屏蔽,以及进一步的文本识别

身份证识别

功能说明

支持中国大陆居民二代身份证正反面所有字段的识别,包括姓名、性别、民族、出生日期、住址、公民身份证号、签发机关、有效期限;具备身份证照片、人像照片的裁剪功能和翻拍、PS、复印件告警功能,以及边框和框内遮挡告警、临时身份证告警和身份证有效期不合法告警等扩展功能。

示例代码

from qcloud_cos import AIRecognitionClient
from qcloud_cos import CosConfig

# 替换为用户的 SecretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
secret_id = os.environ["SECRETID"]
# 替换为用户的 SecretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
secret_key = os.environ["SECRETKEY"]
# 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
region = 'ap-chongqing'
# COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224
# 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048
token = None
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token)
client = AIRecognitionClient(config)
bucket_name = 'test-1250000000'

def cos_ai_id_card_ocr():
# 身份证识别
response, data = client.cos_ai_id_card_ocr(
Bucket=bucket_name,
ObjectKey="test.jpeg",
# CardSide="FRONT",
Config='{"CropIdCard":true,"CropPortrait":true}'
)
print(response)
print(data)
return response, data

参数说明

调用 cos_aiid_card_ocr 函数,具体请求参数如下:
参数名称
参数描述
类型
是否必填
Bucket
存储桶名称
String
ObjectKey
设置对象名称
String
CardSide
FRONT:身份证有照片的一面(人像面)
BACK:身份证有国徽的一面(国徽面)
该参数如果不填,将为您自动判断身份证正反面
String
Config
以下可选字段均为 bool 类型,默认 false:
CropIdCard,身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度)
CropPortrait,人像照片裁剪(自动抠取身份证头像区域)
CopyWarn,复印件告警
BorderCheckWarn,边框和框内遮挡告警
ReshootWarn,翻拍告警
DetectPsWarn,PS 检测告警
TempIdWarn,临时身份证告警
InvalidDateWarn,身份证有效日期不合法告警
Quality,图片质量分数(评价图片的模糊程度)
MultiCardDetect,是否开启多卡证检测
参数设置方式参考:Config = {"CropIdCard":true,"CropPortrait":true}
String

返回结果说明

response 为响应头,data 为身份证识别结果,数据类型都为 dict。

response 内容

返回公共响应头部,详情请参见 公共响应头部 文档。

响应体 data

响应体具体数据内容如下:
参数名称
参数描述
类型
IdInfo
身份证识别信息
Container
AdvancedInfo
扩展信息,不请求则不返回
Container
AdvancedInfo 节点内容:
参数名称
参数描述
类型
IdCard
裁剪后身份证照片的 Base64编码,设置 Config.CropIdCard 为 true 时返回
String
Portrait
身份证头像照片的 Base64编码,设置 Config.CropPortrait 为 true 时返回
String
Quality
图片质量分数,设置 Config.Quality 为 true 时返回(取值范围:0~100,分数越低越模糊,建议阈值≥50)
String
BorderCodeValue
身份证边框不完整告警阈值分数,设置 Config.BorderCheckWarn 为 true 时返回(取值范围:0~100,分数越低边框遮挡可能性越低,建议阈值≥50)
String
WarnInfos
告警信息,仅当存在异常时返回,Code 告警码列表和释义:
9100身份证有效日期不合法告警
9101身份证边框不完整告警
9102身份证复印件告警
9103身份证翻拍告警
9104临时身份证告警
9105身份证框内遮挡告警
9106身份证 PS 告警
可能存在多个 WarnInfos
String
IdInfo 节点内容:
参数名称
参数描述
类型
Name
姓名(人像面)
String
Sex
性别(人像面)
String
Nation
民族(人像面)
String
Birth
出生日期(人像面)
String
Address
地址(人像面)
String
IdNum
身份证号(人像面)
String
Authority
发证机关(国徽面)
String
ValidDate
证件有效期(国徽面)
String

卡证文字识别(OCR)

功能说明

本接口支持中国大陆居民二代身份证正面(暂不支持背面)、驾驶证主页(暂不支持副页)所有字段的自动定位,暂不支持文本识别,用于对特定字段的抹除、屏蔽,以及进一步的文本识别。

示例代码

def cos_ai_license_rec():
# 卡证文字识别(OCR)

response, data = client.cos_ai_license_rec(
Bucket=bucket_name, ObjectKey="shenfenzheng.jpeg", # DetectUrl="https://test-125000000.cos.ap-chongqing.myqcloud.com/test.jpeg" CardType="IDCard"
)
print(response)
print(data)
return response, data

参数说明

调用 cos_ai_license_rec 函数,具体请求参数如下:
参数名称
参数描述
类型
是否必填
Bucket
存储桶名称
String
ObjectKey
设置对象名称
String
DetectUrl
您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 ObjectKey ,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 ObjectKey,detect-url 示例:http://www.example.com/abc.jpg ,需要进行 UrlEncode,处理后为 http%25253A%25252F%25252Fwww.example.com%25252Fabc.jpg
String
CardType
卡证文字识别(OCR)类型,有效值为 IDCard,DriverLicense。
IDCard 表示身份证
DriverLicense 表示驾驶证
默认:DriverLicense
String

返回结果说明

response 为响应头,data 为卡证文字识别(OCR)结果,数据类型都为 dict。

response内容

返回公共响应头部,详情请参见 公共响应头部 文档。

响应体data

由于接口默认返回xml内容,解析结果都为string类型,以下描述为字段的真实类型。具体数据内容如下:
参数名称
参数描述
类型
Status
卡证文字识别(OCR)结果
1:识别到结果
0:未识别到结果
Integer
IdInfo
卡证文字识别(OCR)信息。
Container Array
IdInfo 节点内容:
参数名称
参数描述
类型
Name
字段的名称
String
DetectedText
字段的值
String
Score
字段的置信度,取值范围为[0-100],值越高概率越大
Integer
Location
驾驶证中识别到字段的坐标
Container Array
Location 节点内容:
参数名称
参数描述
类型
Point
驾驶证信息 坐标点(X 坐标,Y 坐标)
String