最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

身份證OCR識別API接入實例詳解(Python?/?Java?示例)

 更新時間:2026年04月20日 10:51:11   作者:石榴樹下的七彩魚  
OCR技術(shù)是一種通過掃描、拍照等光學(xué)輸入方式將各種印刷品上的文字轉(zhuǎn)化為圖像信息,再利用文字識別技術(shù)將圖像信息轉(zhuǎn)化為可使用的計算機輸入技術(shù)的過程,這篇文章主要介紹了身份證OCR識別API接入的相關(guān)資料,文中以Python/Java為例,需要的朋友可以參考下

前言

在很多互聯(lián)網(wǎng)應(yīng)用中,經(jīng)常需要對身份證信息進行自動識別,例如:

  • 用戶實名認證

  • 金融開戶

  • 電商實名認證

  • 政務(wù)系統(tǒng)資料錄入

傳統(tǒng)手動錄入效率低且容易出錯,而 身份證 OCR 識別 API 可以自動識別圖片中的身份證信息,大幅提升系統(tǒng)自動化能力。

本文將通過 Python 和 Java 示例,詳細介紹如何快速接入身份證 OCR 識別接口。

一、身份證 OCR 識別是什么

身份證 OCR(Optical Character Recognition)是一種 基于圖像識別技術(shù)的文字識別能力,可以自動從身份證圖片中提取關(guān)鍵信息,例如:

姓名
性別
民族
出生日期
身份證號
住址
簽發(fā)機關(guān)
有效期限
附加:身份證的頭像處理

開發(fā)者只需要上傳身份證圖片,OCR API 就可以返回結(jié)構(gòu)化 JSON 數(shù)據(jù)。

常見應(yīng)用場景:

  • 用戶實名認證系統(tǒng)中的信息獲取

  • 金融 KYC 認證

  • 酒店入住登記

  • 政務(wù)系統(tǒng)信息錄入

二、身份證 OCR API 接入流程

一般 OCR API 接入流程如下:

準備身份證圖片
        ↓
圖片轉(zhuǎn) Base64
        ↓
調(diào)用 OCR API
        ↓
返回 JSON 識別結(jié)果
        ↓
解析字段信息

接口請求說明:

 詳細接入可以參考說身份證OCR接入文檔:https://market.shiliuai.com/doc/id-card-ocr

請求地址(URL):

POST http(s)://ocr-api.shiliuai.com/api/id_card_ocr/v2

請求方式:POST

請求頭(Header):

參數(shù)類型說明
Authorizationstring'APPCODE ' + 您的AppCode (注意英文空格)
Content-Typestringapplication/json

請求體(Body)

參數(shù)是否必填類型說明
image_base64必填stringbase64編碼的圖片文件,像素范圍:[15,8192],小于20M
return_rectified_card選填bool是否返回裁剪并矯正的身份證圖片,默認為False
card_margin_ratio選填float裁剪時的邊距比例,等于邊距/長邊,默認為0
card_width選填int裁剪后的證件圖片的寬度
card_height選填int裁剪后的證件圖片的高度(如果card_width和card_height都不傳,或者都傳-1,那么用原圖中證件大小 如果其中一個>0, 另一個不傳或傳-1,那么表示該長度按比例縮放得到)
return_rectified_head選填bool是否返回裁剪并矯正的頭像圖片,默認為False,頭像圖片里,頭頂和上邊會有一些距離( 長寬比是441:358 )
head_width選填int裁剪后的頭像圖片的寬度,如果head_width和head_height都不傳,或者都傳-1,那么用原圖中頭像大小,如果其中一個>0, 另一個不傳或傳-1,那么表示該長度按比例縮放得到
head_height選填int裁剪后的頭像圖片的高度

返回信息

返回類型:

JSON

返回碼:

參數(shù)名類型說明
codeint返回碼,0表示成功
messagestring返回信息

返回信息:

參數(shù)參數(shù)類型說明
codeint錯誤碼
msgstring錯誤信息(英文)
msg_cnstring錯誤信息(中文)
successbool識別是否成功
image_idstring圖片ID
request_idstring唯一請求ID
datadata具體看下面

其中data信息:

參數(shù)參數(shù)類型說明舉例
is_frontbool是否正面
complete_scorefloat完整度[0, 1]0.8
is_completebool是否完整,當complete_score==1時,為TrueTrue
unoccluded_scorefloat無遮擋程度[0, 1]
is_unoccludedbool是否無遮擋,當unoccluded_score>0.99時,為True
clear_scorefloat[0, 1],清晰度,用文字可識別度計算0.9
is_clearbool是否清晰,當clear_score>0.5時,為True
rectified_card_base64string裁剪并矯正的身份證圖片, 當return_rectified_card=True時有該項
rectified_head_base64string裁剪并矯正的頭像圖片, 當return_rectified_head=True且是正面時有該項

返回示例:

{
  "code": 200,
  "msg": "success",
  "msg_cn": "成功",
  "success": true,
  "image_id": "xxxx",
  "request_id": "req_xxxx",
  "data": {
    "is_front": true,
    "complete_score": 0.98,
    "is_complete": true,
    "clear_score": 0.92,
    "is_clear": true,
    "name": "張三",
    "sex": "男",
    "ethnicity": "漢",
    "birthDate": "1990年01月01日",
    "address": "北京市朝陽區(qū)XXX",
    "idNumber": "110101199001011234"
  }
}

三、Python 調(diào)用身份證 OCR API 示例

首先安裝 Python 依賴:

pip install requests

示例代碼:

# API文檔:https://market.shiliuai.com/doc/id-card-ocr
# -*- coding: utf-8 -*-
import requests
import base64
import json
# 請求接口
URL = "https://ocr-api.shiliuai.com/api/id_card_ocr/v2"
# 圖片轉(zhuǎn)base64
def get_base64(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
    b64 = base64.b64encode(data).decode('utf8')
    return b64
def demo(appcode, file_path):
    # 請求頭
    headers = {
        'Authorization': 'APPCODE %s' % appcode,
        'Content-Type': 'application/json'
    }
    # 請求體
    b64 = get_base64(file_path)
    data = {"image_base64": b64}
    # 請求
    response = requests.post(url=URL, headers=headers, json=data)
    content = json.loads(response.content)
    print(content)
if __name__=="__main__":
    appcode = "你的APPCODE"
    file_path = "本地圖片路徑"
    demo(appcode, file_path)

四、Java 調(diào)用身份證 OCR API 示例

Java 可以使用 HttpURLConnectionOkHttp 調(diào)用接口。

示例代碼:

//=====================================================
// API文檔:https://market.shiliuai.com/doc/id-card-ocr
//=====================================================
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Base64;
public class Main {
    public static String get_base64(String path) {
        String b64 = "";
        try {
            // 使用Commons IO簡化文件讀取
            byte[] content = FileUtils.readFileToByteArray(new File(path));
            // 使用JDK自帶的Base64
            b64 = Base64.getEncoder().encodeToString(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return b64;
    }
    public static void main(String[] args) {
        String url = "https://ocr-api.shiliuai.com/api/id_card_ocr/v2"; // 請求接口
        String appcode = "你的APPCODE";
        String imgFile = "本地圖片路徑";
        Map headers = new HashMap<>();
        headers.put("Authorization", "APPCODE " + appcode);
        headers.put("Content-Type", "application/json");
        // 請求體
        JSONObject requestObj = new JSONObject();
        requestObj.put("image_base64", get_base64(imgFile));
        String bodys = requestObj.toString();
        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            // 創(chuàng)建POST請求
            HttpPost httpPost = new HttpPost(url);
            // 設(shè)置請求頭
            for (Map.Entry entry : headers.entrySet()) {
                httpPost.addHeader(entry.getKey(), entry.getValue());
            }
            // 設(shè)置請求體
            StringEntity entity = new StringEntity(bodys, "UTF-8");
            httpPost.setEntity(entity);
            // 執(zhí)行請求
            HttpResponse response = httpClient.execute(httpPost);
            int stat = response.getStatusLine().getStatusCode();
            if (stat != 200) {
                System.out.println("Http code: " + stat);
                return;
            }
            String res = EntityUtils.toString(response.getEntity());
            JSONObject res_obj = JSON.parseObject(res);
            System.out.println(res_obj.toJSONString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

五、身份證 OCR 識別示例效果

示例身份證圖片:

識別結(jié)果:

開發(fā)者可以直接將返回 JSON 存入數(shù)據(jù)庫或用于實名認證流程。

六、身份證 OCR 識別常見問題

1 圖片模糊識別率低

建議:

  • 分辨率 ≥ 800px

  • 避免反光

  • 身份證完整入鏡

2 身份證傾斜

可以在識別前做簡單圖像處理:

  • 自動旋轉(zhuǎn)

  • 邊緣檢測

  • 裁剪身份證區(qū)域

3 批量識別效率問題

對于批量識別場景,可以:

  • 使用多線程調(diào)用 API

  • 異步隊列處理

  • 批量任務(wù)系統(tǒng)

七、在線體驗身份證 OCR

如果想快速測試身份證識別效果,可以先通過在線工具進行測試,然后再接入 API。

在線體驗:https://market.shiliuai.com/id-card-ocr

支持:

  • 身份證正面識別

  • 身份證反面識別

  • 自動信息提取

  • 人像提取與優(yōu)化調(diào)整操作

開發(fā)者可以根據(jù)測試效果再接入 API。

八、總結(jié)

身份證 OCR 是 OCR 技術(shù)中非常常見的應(yīng)用場景,通過 API 接口可以快速實現(xiàn):

  • 用戶實名認證

  • 自動信息錄入

  • 身份證信息提取

本文介紹了 身份證 OCR API 接入流程,并提供 Python 和 Java 示例代碼,開發(fā)者可以根據(jù)自己的項目需求快速接入。

如果你正在開發(fā) 實名認證系統(tǒng)、金融系統(tǒng)或自動化信息錄入系統(tǒng),OCR API 可以大幅減少人工輸入成本,提高系統(tǒng)效率。

到此這篇關(guān)于身份證OCR識別API接入的文章就介紹到這了,更多相關(guān)身份證OCR識別API接入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python逆序打印各位數(shù)字的方法

    python逆序打印各位數(shù)字的方法

    今天小編就為大家分享一篇python逆序打印各位數(shù)字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python格式化css文件的方法

    Python格式化css文件的方法

    這篇文章主要介紹了Python格式化css文件的方法,實例分析了Python操作文件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 使用Python創(chuàng)建一個簡單的任務(wù)管理器應(yīng)用程序

    使用Python創(chuàng)建一個簡單的任務(wù)管理器應(yīng)用程序

    本文主要介紹了使用Python創(chuàng)建一個簡單的任務(wù)管理器應(yīng)用程序,這個應(yīng)用程序?qū)⒃试S用戶添加、編輯、刪除和完成任務(wù),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Python之列表的append()方法最容易踩的坑

    Python之列表的append()方法最容易踩的坑

    這篇文章主要介紹了Python之列表的append()方法最容易踩的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python編程基礎(chǔ)之運算符重載詳解

    Python編程基礎(chǔ)之運算符重載詳解

    這篇文章主要為大家詳細介紹了Python運算符重載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python3 類型標注支持操作

    Python3 類型標注支持操作

    這篇文章主要介紹了Python3 類型標注支持操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 跟老齊學(xué)Python之大話題小函數(shù)(1)

    跟老齊學(xué)Python之大話題小函數(shù)(1)

    今天本講要講什么呢?今天要介紹幾個python中的小函數(shù),這幾個函數(shù)都是從函數(shù)式編程借鑒過來的,它們就是:filter、map、reduce、lambda、yield 有了它們,最大的好處是程序更簡潔
    2014-10-10
  • Python基于python-docx實現(xiàn)的本科畢業(yè)論文自動排版工具

    Python基于python-docx實現(xiàn)的本科畢業(yè)論文自動排版工具

    寫本科畢業(yè)論文的時候,你是不是也遇到過這些崩潰的問題:改格式改到凌晨?標題、正文、圖表、頁眉頁腳,調(diào)了半天還是不符合學(xué)校要求?今天給大家分享一個我寫的本科畢業(yè)論文自動生成工具,基于python-docx實現(xiàn),一鍵生成標準格式論文,需要的朋友可以參考下
    2026-06-06
  • tensorflow2.0保存和恢復(fù)模型3種方法

    tensorflow2.0保存和恢復(fù)模型3種方法

    今天小編就為大家分享一篇tensorflow2.0保存和恢復(fù)模型3種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實現(xiàn)得到一個給定類的虛函數(shù)

    python實現(xiàn)得到一個給定類的虛函數(shù)

    這篇文章主要介紹了python實現(xiàn)得到一個給定類的虛函數(shù)的方法,以wx的PyPanel類為例講述了打印以base_開頭的方法的實例,需要的朋友可以參考下
    2014-09-09

最新評論

天津市| 彭泽县| 张家川| 宁城县| 大悟县| 柳江县| 会东县| 兴仁县| 千阳县| 搜索| 上高县| 会同县| 济南市| 惠来县| 泾阳县| 忻城县| 慈利县| 黑山县| 洪雅县| 合山市| 阿巴嘎旗| 正蓝旗| 小金县| 康平县| 察隅县| 年辖:市辖区| 沙坪坝区| 农安县| 田东县| 和顺县| 喀什市| 深州市| 黄陵县| 平度市| 宾阳县| 保定市| 白城市| 资阳市| 宜川县| 淳化县| 靖边县|