最近項目裏需要做圖片文字識別,調研了幾種方案,整理分享一下。

方案一:Tesseract OCR(本地部署)

開源老牌方案,需要本地安裝。

import pytesseract
from PIL import Image

text = pytesseract.image_to_string(Image.open('test.jpg'), lang='chi_sim')
print(text)

優點: 免費開源,離線可用 缺點: 中文識別效果一般,需要自己裝環境和語言包

方案二:PaddleOCR(本地部署)

百度開源的方案,識別效果比 Tesseract 好。

from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
result = ocr.ocr('test.jpg')
for line in result[0]:
print(line[1][0])

優點: 中文識別準確率高 缺點: 依賴多,首次運行要下載模型(幾百MB)

方案三:在線OCR API(免部署)

不想折騰環境的話,直接調API最省事。

import requests
files = {'file': open('test.jpg', 'rb')}
response = requests.post('https://api.easyocr.org/ocr', files=files)
result = response.json()
for word in result['words']:
print(word['text'])

優點: 無需部署,開箱即用,識別速度快 缺點: 依賴網絡

總結

方案

部署難度

中文效果

適用場景

Tesseract

一般

簡單英文場景

PaddleOCR

對準確率要求高

在線API

快速開發、不想折騰

個人建議:先用在線API快速驗證需求,後期量大了再考慮本地部署。