TrOCR(Transformer-based Optical Character Recognition)是微软提出的一种端到端基于 Transformer 架构的光学字符识别(OCR)模型,由预训练的图像 Transformer 编码器(如 DeiT)和文本 Transformer 解码器(如 RoBERTa 或 UniLM)组成,用于文本识别任务 。其架构将图像调整为 384×384 分辨率,分割成 16×16 的 patches 后输入图像 Transformer,解码器则生成词片级文本序列,无需 CNN 或 RNN,也无需外部语言模型 。

TrOCR 的优势包括:

  • 端到端流程:结合文本检测和识别,无需复杂前后处理 。
  • 多语言支持:预训练模型支持英语、法语、德语等,可针对其他语言微调 。
  • 鲁棒性:对字体、方向、背景噪声变化具有鲁棒性,适用于手写体、印刷体甚至弯曲文本(通过微调) 。

使用示例(基于 Hugging Face):

from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image

processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-handwritten")
model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-handwritten")
image = Image.open("handwritten_note.jpg").convert("RGB")
pixel_values = processor(image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"提取文本:{text}")
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐