PaddleOCR:三行代码搞定中文 OCR
目标
用 PaddleOCR 一键识别图片中的中文/英文文字,体验飞桨产业级套件的开箱即用。
完整代码
from paddleocr import PaddleOCR
import cv2
import numpy as np
# ─── 1. 初始化(自动下载模型) ───
ocr = PaddleOCR(
use_angle_cls=True, # 文字方向分类
lang='ch', # 中英文混合
use_gpu=False, # CPU
)
# ─── 2. 识别图片 ───
result = ocr.ocr("test_chinese.jpg", cls=True)
# ─── 3. 输出结果 ───
for line in result[0]:
bbox, (text, confidence) = line
print(f"[{confidence:.2%}] {text}")
print(f" 位置: ({int(bbox[0][0])}, {int(bbox[0][1])}) → ({int(bbox[2][0])}, {int(bbox[2][1])})")
# ─── 画框可视化 ───
img = cv2.imread("test_chinese.jpg")
for line in result[0]:
bbox, (text, confidence) = line
pts = np.array(bbox, dtype=np.int32).reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 0), 2)
cv2.putText(img, text, (int(bbox[0][0]), int(bbox[0][1]) - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)
cv2.imwrite("result.jpg", img)
print("结果已保存到 result.jpg")
运行步骤
pip install paddlepaddle paddleocr opencv-python
python paddleocr_demo.py
首次运行自动从 PaddleHub 下载检测 + 识别模型(~100 MB)。
预期输出
[2024/06/01 10:23:45] ppocr INFO: 检测模型加载完成
[2024/06/01 10:23:48] ppocr INFO: 识别模型加载完成
[99.87%] 人工智能正在改变世界
位置: (120, 35) → (580, 85)
[98.52%] PaddleOCR 是最佳中文 OCR 工具
位置: (100, 120) → (620, 170)
[97.31%] PaddlePaddle 飞桨框架
位置: (140, 210) → (500, 260)
结果已保存到 result.jpg
高级用法
# 仅检测文字位置(不识别)
ocr = PaddleOCR(use_angle_cls=True, lang='ch', det=True, rec=False)
# 英文
ocr = PaddleOCR(use_angle_cls=True, lang='en')
# GPU 加速
ocr = PaddleOCR(use_angle_cls=True, lang='ch', use_gpu=True)