AI问答开放平台 开发者文档 AI问答开放平台 开发者文档
首页
  • 简 介
  • 安 装
  • 快速开始
  • 返回响应码
  • AI接口

    • AI问答
    • AI画图
    • 通用文字识别
    • 身份证识别
    • AI识图
  • API接口

    • 随机毒鸡汤
    • 获取IP信息归属地
    • 随机土味情话
    • 每日星座运势
    • 获取天气信息
    • 随机壁纸
  • 使用配置
赞助
Demo (opens new window)
GitHub (opens new window)
首页
  • 简 介
  • 安 装
  • 快速开始
  • 返回响应码
  • AI接口

    • AI问答
    • AI画图
    • 通用文字识别
    • 身份证识别
    • AI识图
  • API接口

    • 随机毒鸡汤
    • 获取IP信息归属地
    • 随机土味情话
    • 每日星座运势
    • 获取天气信息
    • 随机壁纸
  • 使用配置
赞助
Demo (opens new window)
GitHub (opens new window)
  • 指南

    • 简 介
    • 安 装
    • 快速开始
    • 返回响应码
  • AI接口

    • AI问答
    • AI画图
    • 通用文字识别
    • 身份证识别
      • AI识图
    • API接口

      • 随机毒鸡汤
      • 获取IP信息归属地
      • 随机土味情话
      • 每日星座运势
      • 获取天气信息
      • 随机壁纸
    目录

    身份证识别

    # 接口信息

    • 接口状态 : 正常
    • 请求方式 :POST
    • 返回格式 :JSON
    • 扣除积分数 :10
    • 接口说明:身份证识别,通过OCR(光学字符识别 Optical Character Recognition)技术,对身份证正反面图片进行识别,返回身份证图片上的姓名、民族、住址、身份证号、签发机关和有效期等信息,可以省去用户手动录入的过程,自动完成身份证信息的结构化和图像数据的采集,可以很方便对接客户的后台数据系统,给用户带来极大的便利。采用特有的图像处理技术,在识别身份证图片过程中,还可以对身份证图片进行切边矫正,去除背景图片,并可以获取身份证图片上的头像,方便用户保存。不过请注意, 不支持同时识别身份证正反面,正反面需分开在不同的图片进行识别。

    # 请求地址

    http://api-gateway.tempeisite.xyz/api/ai/ocr/idcard
    
    1

    # 请求参数

    参数名 必选 类型 描述
    imageData 是 byte[] 身份证图片字节数组

    # 响应参数

    参数名称 类型 描述
    code int 响应码
    data json 详见data说明
    message string 响应描述

    data各字段说明如下:

    参数 说明 备注
    name 姓名 身份证上的姓名识别结果(正面)
    id_number 身份证号 身份证上的身份证号码识别结果(正面)
    birthday 出生日期 身份证上的出生日期识别结果(正面)
    sex 性别 身份证上的性别识别结果(正面)
    people 民族 身份证上的民族识别结果(正面)
    address 住址 身份证上的住址识别结果(正面)
    issue_authority 签发机关 身份证上的签发机关识别结果(反面)
    validity 有效期 身份证上的有效期识别结果(反面)
    head_covered 头像是否有遮挡 head_covered =true 则表示证件头像有遮挡
    cropped_image 身份证切边图片 身份证正面或反面的切边图片,base64编码
    id_number_image 身份证号码截图 身份证正面身份证号截图,base64编码
    head_portrait 身份证正面头像信息 身份证正面头像信息,json类型
    head_portrait.image 身份证正面头像截图 身份证正面头像截图,base64编码
    type 类型 身份证正反面类型
    当是身份证正面时,type=第二代身份证
    当是身份证背面时,type=第二代身份证背面
    当是临时身份证时,type=临时身份证。
    gray_image 黑白图像 gray_image=true 则表示证件判断为黑白
    complete 证件完整 该字段为保留字段,请忽略
    border_covered 边缘遮挡 border_covered=true 则表示证件边缘判断为不完整
    head_blurred 头像模糊 head_blurred =true 则表示证件头像判断模糊
    error_code 错误码 识别错误码
    error_msg 错误信息 错误原因描述
    time_cost 耗时
    time_cost.recognize 识别耗时
    time_cost.preprocess 图片预处理耗时

    其中的error_msg和error_code的取值范围及说明对照表如下:

    error_code error_msg 说明
    0 ok 正常返回
    40001 invalid parameter 参数不对
    40002 missing parameter 缺少参数
    40003 invalid user or password 账号或密码不对
    40004 missing request body 没有HTTP body
    40005 invalid image format HTTP body不是图像或者不支持该格式
    40006 invalid image size 图片太大或太小
    40007 fail to recognize 识别失败
    40008 invalid content type 通过HTTP form上传图片时,Content-Type无效
    40009 corrupted request body 请求body损坏
    40010 fail to extract image 提取图像裸数据失败
    50001 backend down 后台服务器宕机
    50004 timeout 识别超时
    90099 unknown 未知错误

    # 代码示例

    注意 🔔️ 没有开发者调用凭证无法调用接口哦!!! [前往获取开发者凭证](http://api.tempeisite.xyz)

    注入Service

    @Resource
    private ApiClient apiClient;
    
    1
    2
    • 示例一 :推荐👍

    通过yml配置开发者调用凭证

    @org.junit.jupiter.api.Test
    public void idCardRecognition1() throws IOException {
        String IMAGE_PATH = "src/main/resources/card_back.jpg";
        InputStream in = new FileInputStream(IMAGE_PATH);
        byte[] data = inputStream2ByteArray(in);
        in.close();
        String res = apiClient.idCardRecognition(data);
        System.out.println(res);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    响应示例: 失败结果:

    {
      "code": "10106",
      "desc": "invalid parameter|invalid X-Appid",
      "data": "",
      "sid": "wcr0000xxxxxxxxxxxxxxxxxxx"
    }
    
    1
    2
    3
    4
    5
    6

    成功结果:

    {
    	"code": "0",
    	"data": {
    		"address": "广东省清新县浸潭镇鸡见坑村委会下围村2号",
    		"birthday": "1992年8月22日",
    		"border_covered": false,
    		"complete": true,
    		"error_code": 0,
    		"error_msg": "ok",
    		"gray_image": false,
    		"head_blurred": false,
    		"head_covered": false,
    		"id_number": "666667777788888999",
    		"name": "张三",
    		"people": "汉",
    		"sex": "男",
    		"time_cost": {
    		    "preprocess":143,
    		    "recognize":277
    		},
    		"type": "第二代身份证"
    	},
    	"desc": "success",
    	"sid": "wcr0000xxxxxxxxxxxxxxxxx"
    	}
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    • 示例二:
    @org.junit.jupiter.api.Test
    public void idCardRecognition2() throws IOException {
        ApiClient apiClient = new ApiClient("1e4cd3ef6a8d2538044a027c07508488", "af5a11324adf26ae19d79a88b8e6cd08");
        String IMAGE_PATH = "src/main/resources/card_back.jpg";
        InputStream in = new FileInputStream(IMAGE_PATH);
        byte[] data = inputStream2ByteArray(in);
        in.close();
        String res = apiClient.idCardRecognition(data);
        System.out.println(res);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    • 通用方法:
    private static byte[] inputStream2ByteArray(InputStream in) throws IOException {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024 * 4];
        int n = 0;
        while ((n = in.read(buffer)) != -1) {
            out.write(buffer, 0, n);
        }
        return out.toByteArray();
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    # 常见问题

    身份证正反面能否放在一张图片上传

    答:不支持同时识别身份证正反面,正反面需分开在不同的图片进行识别。

    身份证识别支持哪些地区的身份证?

    答:目前身份证识别仅支持识别大陆居民身份证。

    身份证识别多图片有什么要求?

    答:图片要求是 jpg/jpeg 格式;建议图片最短边最小不低于 700 像素,最大不超过 4000 像素。

    # 更多示例详见:AI问答开放平台-SDK-Demo 示例项目 (opens new window)

    上次更新: 2024/05/15, 04:33:36
    通用文字识别
    AI识图

    ← 通用文字识别 AI识图→

    Theme by Vdoing | Copyright © 2023-2024 Faiz | 赣ICP备2022007945号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式