最近項目裏需要做圖片文字識別,調研了幾種方案,整理分享一下。
方案一: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快速驗證需求,後期量大了再考慮本地部署。