简介
本文档提供关于卡证识别的相关 API 概览以及 SDK 示例代码。
API | 操作描述 |
支持中国大陆居民二代身份证正反面所有字段的识别,包括姓名、性别、民族、出生日期、住址、公民身份证号、签发机关、有效期限; 具备身份证照片、人像照片的裁剪功能和翻拍、PS、复印件告警功能,以及边框和框内遮挡告警、临时身份证告警和身份证有效期不合法告警等扩展功能。 | |
本接口支持中国大陆居民二代身份证正面(暂不支持背面)、驾驶证主页(暂不支持副页)所有字段的自动定位,暂不支持文本识别,用于对特定字段的抹除、屏蔽,以及进一步的文本识别。 |
身份证识别
功能说明
中国大陆居民二代身份证正反面所有字段的识别。
方法原型
func (s *CIService) IdCardOCRWhenCloud(ctx context.Context, key string, query *IdCardOCROptions) (*IdCardOCRResult, *Response, error) // 云上数据处理func (s *CIService) IdCardOCRWhenUpload(ctx context.Context, key, filePath string, query *IdCardOCROptions, header *ObjectPutOptions) (*IdCardOCRResult, *Response, error) // 上传时处理
请求示例1:云上数据处理
key := "pic/idcard_1.png"query := &cos.IdCardOCROptions{Config: &cos.IdCardOCROptionsConfig{CropPortrait: true,CropIdCard: true,CopyWarn: true,BorderCheckWarn: true,ReshootWarn: true,DetectPsWarn: true,TempIdWarn: true,InvalidDateWarn: true,Quality: true,MultiCardDetect: true,},}res, _, err := c.CI.IdCardOCRWhenCloud(context.Background(), key, query)
参数说明
type IdCardOCROptions struct {CardSide string `url:"CardSide,omitempty"`Config *IdCardOCROptionsConfig `url:"Config,omitempty"`}type IdCardOCROptionsConfig struct {CropIdCard bool `json:"CropIdCard,omitempty"`CropPortrait bool `json:"CropPortrait,omitempty"`CopyWarn bool `json:"CopyWarn,omitempty"`BorderCheckWarn bool `json:"BorderCheckWarn,omitempty"`ReshootWarn bool `json:"ReshootWarn,omitempty"`DetectPsWarn bool `json:"DetectPsWarn,omitempty"`TempIdWarn bool `json:"TempIdWarn,omitempty"`InvalidDateWarn bool `json:"InvalidDateWarn,omitempty"`Quality bool `json:"Quality,omitempty"`MultiCardDetect bool `json:"MultiCardDetect,omitempty"`}
参数名称 | 参数描述 | 是否必填 |
key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/pic/pic.jpg 中,对象键为 pic/pic.jpg | 是 |
CardSide | FRONT:身份证有照片的一面(人像面) BACK:身份证有国徽的一面(国徽面) 该参数如果不填,将为您自动判断身份证正反面 | 否 |
CropIdCard | 身份证照片裁剪(去掉证件外多余的边缘、自动矫正拍摄角度) | 否 |
CropPortrait | 人像照片裁剪(自动抠取身份证头像区域 | 否 |
CopyWarn | 复印件告警 | 否 |
BorderCheckWarn | 边框和框内遮挡告警 | 否 |
ReshootWarn | 翻拍告警 | 否 |
DetectPsWarn | PS 检测告警 | 否 |
TempIdWarn | 临时身份证告警 | 否 |
InvalidDateWarn | 身份证有效日期不合法告警 | 否 |
Quality | 图片质量分数(评价图片的模糊程度) | 否 |
MultiCardDetect | 是否开启多卡证检测 | 否 |
请求示例2:上传时处理
key := "pic/idcard_0.png"filePath := "./idcard_0.png"query := &cos.IdCardOCROptions{Config: &cos.IdCardOCROptionsConfig{CropPortrait: true,CropIdCard: true,CopyWarn: true,BorderCheckWarn: true,ReshootWarn: true,DetectPsWarn: true,TempIdWarn: true,InvalidDateWarn: true,Quality: true,MultiCardDetect: true,},}res, _, err := c.CI.IdCardOCRWhenUpload(context.Background(), key, filePath, query, nil)
参数说明
参数名称 | 参数描述 |
key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/pic/pic.jpg 中,对象键为 pic/pic.jpg |
filePath | 本地文件路径 |
query | 身份证识别相关选项 |
header |
结果说明
type IdCardOCRResult struct {XMLName xml.Name `xml:"Response"`IdInfo *IdCardInfo `xml:"IdInfo,omitempty"`AdvancedInfo *IdCardAdvancedInfo `xml:"AdvancedInfo,omitempty"`}type IdCardInfo struct {Name string `xml:"Name,omitempty"`Sex string `xml:"Sex,omitempty"`Nation string `xml:"Nation,omitempty"`Birth string `xml:"Birth,omitempty"`Address string `xml:"Address,omitempty"`IdNum string `xml:"IdNum,omitempty"`Authority string `xml:"Authority,omitempty"`ValidDate string `xml:"ValidDate,omitempty"`}type IdCardAdvancedInfo struct {IdCard string `xml:"IdCard,omitempty"`Portrait string `xml:"Portrait,omitempty"`Quality string `xml:"Quality,omitempty"`BorderCodeValue string `xml:"BorderCodeValue,omitempty"`WarnInfos []string `xml:"WarnInfos,omitempty"`}
参数名称 | 参数描述 | |
Name | 姓名(人像面) | |
Sex | 性别(人像面) | |
Nation | 民族(人像面) | |
Birth | 出生日期(人像面) | |
Address | 地址(人像面) | |
IdNum | 身份证号(人像面) | |
Authority | 发证机关(国徽面) | |
ValidDate | 证件有效期(国徽面) | |
IdCard | 裁剪后身份证照片的 Base64 编码,设置 Config.CropIdCard 为 true 时返回 | |
Portrait | 身份证头像照片的 Base64 编码,设置 Config.CropPortrait 为 true 时返回 | |
Quality | 图片质量分数,设置 Config.Quality 为 true 时返回(取值范围:0~100,分数越低越模糊,建议阈值 ≥ 50) | |
BorderCodeValue | 身份证边框不完整告警阈值分数,设置 Config.BorderCheckWarn 为 true 时返回(取值范围:0~100,分数越低边框遮挡可能性越低,建议阈值≥50) | |
WarnInfos | 告警信息,Code 告警码列表和释义: 9100 身份证有效日期不合法告警 9101 身份证边框不完整告警 9102 身份证复印件告警 9103 身份证翻拍告警 9104 临时身份证告警 9105 身份证框内遮挡告警 9106 身份证 PS 告警 可能存在多个 WarnInfos | |
卡证识别
本接口支持中国大陆居民二代身份证正面(暂不支持背面)、驾驶证主页(暂不支持副页)所有字段的自动定位,暂不支持文本识别,用于对特定字段的抹除、屏蔽,以及进一步的文本识别。
方法原型
func (s *CIService) AILicenseRec(ctx context.Context, obj string, opt *AILicenseRecOptions) (*AILicenseRecResult, *Response, error)
请求示例
// 将 examplebucket-1250000000 和 COS_REGION 修改为真实的信息bu, _ := url.Parse("https://examplebucket-1250000000.cos.COS_REGION.myqcloud.com")b := &cos.BaseURL{BucketURL: bu}c := cos.NewClient(b, &http.Client{Transport: &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"),SecretKey: os.Getenv("SECRETKEY"),}})obj := "pic/carCard.jpeg"opt := &cos.AILicenseRecOptions{CardType: "DriverLicense",}res, _, err := c.CI.AILicenseRec(context.Background(), obj, opt)log_status(err)fmt.Printf("%+v\\n", res)
参数说明
type AILicenseRecOptions struct {DetectUrl string `url:"detect-url,omitempty"`CardType string `url:"CardType,omitempty"`}
参数名称 | 参数描述 | 类型 | 是否必填 |
DetectUrl | 您可以通过填写 detect-url 处理任意公网可访问的图片链接。不填写 detect-url 时,后台会默认处理 obj,填写了 detect-url 时,后台会处理 detect-url 链接,无需再填写 obj。 | string | 否 |
CardType | 卡证识别类型,默认为 DriverLicense。有效值有: IDCard:表示身份证。 DriverLicense:表示驾驶证。 | string | 是 |