使用Python接入OCR文字識(shí)別API的全教程
在開發(fā)過程中,我們經(jīng)常需要對(duì)圖片進(jìn)行文字識(shí)別,例如身份證識(shí)別、發(fā)票識(shí)別、文檔掃描等場(chǎng)景。使用 OCR(Optical Character Recognition,光學(xué)字符識(shí)別)API 可以快速實(shí)現(xiàn)這些功能。本文將以 Python 為例,帶你完成 OCR 文字識(shí)別 API 接入全過程,并提供在線體驗(yàn)和實(shí)用優(yōu)化建議。
一、準(zhǔn)備工作
注冊(cè) OCR API 服務(wù)
我們以石榴智能OCR接入API為示例,注冊(cè)后可獲得 API Key 和 Secret Key。
安裝 Python 依賴庫
pip install requests pillow
requests:用于發(fā)送 HTTP 請(qǐng)求Pillow:用于圖片處理,可選
準(zhǔn)備測(cè)試圖片
圖片可以是身份證、票據(jù)、文檔掃描件等。
二、API 請(qǐng)求方式簡(jiǎn)介
OCR API 通常需要發(fā)送以下參數(shù):
image:圖片 Base64 編碼或 URLtype:識(shí)別類型(如id_card、invoice、general)language:可選,多語言識(shí)別
示意請(qǐng)求格式:
請(qǐng)求URL:
POST http(s)://ocr-api.shiliuai.com/api/advanced_general_ocr/v1
請(qǐng)求方式:
請(qǐng)求頭
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| Authorization | string | 'APPCODE ' + 您的AppCode |
| Content-Type | string | application/json |
請(qǐng)求體
| 參數(shù) | 是否必填 | 類型 | 說明 |
|---|---|---|---|
| image_base64 | 選填 | string | 圖片Base64;與image_url二選一;像素[15,8192];小于20M |
| image_url | 選填 | string | 圖片URL;與image_base64二選一;像素[15,8192];小于20M |
| is_line | 選填 | bool | 是否為單行文字,默認(rèn)False |
返回信息:
返回結(jié)構(gòu)
| 參數(shù)名 | 類型 | 說明 |
|---|---|---|
| code | int | 錯(cuò)誤碼 |
| msg | string | 錯(cuò)誤信息(英文) |
| msg_cn | string | 錯(cuò)誤信息(中文) |
| success | bool | 識(shí)別是否成功 |
| image_id | string | 請(qǐng)求圖片ID |
| request_id | string | 唯一請(qǐng)求ID |
| data | data | 具體看下面 |
以下是返回示例
data 成功示例:
data = {
"content":
[
{
"text": "你好", // string, 文字內(nèi)容
"prob": 0.995, // float, [0, 1], 文字內(nèi)容置信度
"keypoints": [ // list, 文字區(qū)域四個(gè)角的位置,以文字的左上角為起點(diǎn),按順時(shí)針順序排列,單行文字沒有此項(xiàng)
{"x":50, "y":20},
{"x":150, "y":20},
{"x":150, "y":60},
{"x":50, "y":60}
]
},
......
]
}
data 失敗示例:
data = {}三、Python 接入示例
# API文檔:https://market.shiliuai.com/doc/advanced-general-ocr
# -*- coding: utf-8 -*-
import requests
import base64
import json
# 請(qǐng)求接口
URL = "https://ocr-api.shiliuai.com/api/general_ocr/v1"
# 圖片轉(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):
# 請(qǐng)求頭
headers = {
'Authorization': 'APPCODE %s' % appcode,
'Content-Type': 'application/json'
}
# 請(qǐng)求體
b64 = get_base64(file_path)
data = {"image_base64": b64}
# 請(qǐng)求
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)四、識(shí)別效果示例

五、常見優(yōu)化技巧
清晰圖片優(yōu)先
模糊、傾斜、反光的圖片識(shí)別率低,建議先做簡(jiǎn)單預(yù)處理。
裁剪或分區(qū)識(shí)別
對(duì)身份證、發(fā)票等圖片按區(qū)域識(shí)別,可提高精度。
批量或異步處理
對(duì)多張圖片,可使用隊(duì)列或多線程異步調(diào)用 API。
錯(cuò)誤處理
網(wǎng)絡(luò)異常、識(shí)別失敗或 API 錯(cuò)誤碼都需處理,保證程序穩(wěn)定。
六、在線體驗(yàn)與多語言文檔
- 在線體驗(yàn):https://market.shiliuai.com/general-ocr
- 文檔支持 Python、Java、PHP、C# 等多語言示例
- 提供身份證識(shí)別、發(fā)票識(shí)別、通用文字識(shí)別等多種接口
七、總結(jié)
本文介紹了 Python 調(diào)用 OCR API 的完整流程,包括:
- 注冊(cè) API 并獲取密鑰
- Python 依賴安裝及圖片準(zhǔn)備
- API 請(qǐng)求示例及識(shí)別結(jié)果處理
- 圖片優(yōu)化和錯(cuò)誤處理技巧
- 在線體驗(yàn)與文檔參考
通過 OCR API,你可以快速將文字識(shí)別能力集成到網(wǎng)站、桌面應(yīng)用或移動(dòng)端應(yīng)用中,實(shí)現(xiàn)身份證識(shí)別、票據(jù)識(shí)別、文檔掃描等多場(chǎng)景需求。
以上就是使用Python接入OCR文字識(shí)別API的全教程的詳細(xì)內(nèi)容,更多關(guān)于Python OCR文字識(shí)別API接入的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)區(qū)域填充的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)區(qū)域填充的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例
這篇文章主要介紹了python支持?jǐn)帱c(diǎn)續(xù)傳的多線程下載示例,大家參考使用吧2014-01-01
Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之快速排序詳解
這篇文章主要介紹了Python實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之快速排序,詳細(xì)分析了快速排序的原理與Python實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-04-04
Python使用numpy產(chǎn)生正態(tài)分布隨機(jī)數(shù)的向量或矩陣操作示例
這篇文章主要介紹了Python使用numpy產(chǎn)生正態(tài)分布隨機(jī)數(shù)的向量或矩陣操作,簡(jiǎn)單描述了正態(tài)分布的概念并結(jié)合實(shí)例形式分析了Python使用numpy模塊結(jié)合matplotlib繪制正態(tài)分布曲線圖相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
python數(shù)據(jù)結(jié)構(gòu)之圖的實(shí)現(xiàn)方法
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之圖的實(shí)現(xiàn)方法,實(shí)例分析了Python圖的表示方法與常用尋路算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-07-07

