PP-OCRv5_server_rec 是 PaddleOCR 团队开发的最新一代文本行识别模型 PP-OCRv5_rec 中的一员。其目标是通过单一模型高效、准确地支持简体中文、繁体中文、英文和日文四大语言的识别,以及手写体、竖排文本、拼音、生僻字等复杂文本场景。关键准确率指标如下:
| 手写中文 | 手写英文 | 印刷中文 | 印刷英文 | 繁体中文 | 古籍文本 | 日文 | 通用场景 | 拼音 | 旋转 | 扭曲 | 艺术字 | 平均值 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0.5807 | 0.5806 | 0.9013 | 0.8679 | 0.7472 | 0.6039 | 0.7372 | 0.5946 | 0.8384 | 0.7435 | 0.9314 | 0.6397 | 0.8401 |
注:若一行文本中存在任何字符(包括标点符号)错误,则整行标记为错误。这确保了实际应用中的更高准确率。
import requests
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForTextRecognition
model_path="PaddlePaddle/PP-OCRv5_server_rec_safetensors"
model = AutoModelForTextRecognition.from_pretrained(model_path, device_map="auto")
image_processor = AutoImageProcessor.from_pretrained(model_path)
image = Image.open(requests.get("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png", stream=True).raw).convert("RGB")
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)
results = image_processor.post_process_text_recognition(outputs)
for result in results:
print(result)