🚀 TrOCR(小型模型,僅預訓練)
TrOCR是一個僅經過預訓練的模型。它由Li等人在論文TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models中提出,並首次在此倉庫中發佈。
🚀 快速開始
TrOCR模型可用於單文本行圖像的光學字符識別(OCR)。你可以在模型中心查找針對你感興趣的任務進行微調的版本。
✨ 主要特性
- TrOCR是一個編碼器 - 解碼器模型,由作為編碼器的圖像Transformer和作為解碼器的文本Transformer組成。
- 圖像編碼器使用DeiT的權重進行初始化,文本解碼器使用UniLM的權重進行初始化。
- 圖像以固定大小的圖像塊(分辨率為16x16)序列的形式輸入模型,並進行線性嵌入。在將序列輸入到Transformer編碼器層之前,還會添加絕對位置嵌入。然後,Transformer文本解碼器自迴歸地生成標記。
📚 詳細文檔
模型描述
TrOCR模型是一個編碼器 - 解碼器模型,由作為編碼器的圖像Transformer和作為解碼器的文本Transformer組成。圖像編碼器使用DeiT的權重進行初始化,而文本解碼器使用UniLM的權重進行初始化。
圖像以固定大小的圖像塊(分辨率為16x16)序列的形式呈現給模型,並進行線性嵌入。在將序列輸入到Transformer編碼器層之前,還會添加絕對位置嵌入。接下來,Transformer文本解碼器自迴歸地生成標記。
預期用途和限制
你可以使用原始模型對單文本行圖像進行光學字符識別(OCR)。請查看模型中心,以查找針對你感興趣的任務進行微調的版本。
如何使用
以下是在PyTorch中使用此模型的方法:
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
import torch
url = 'https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg'
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
processor = TrOCRProcessor.from_pretrained('microsoft/trocr-small-stage1')
model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-small-stage1')
pixel_values = processor(image, return_tensors="pt").pixel_values
decoder_input_ids = torch.tensor([[model.config.decoder.decoder_start_token_id]])
outputs = model(pixel_values=pixel_values, decoder_input_ids=decoder_input_ids)
BibTeX引用和引用信息
@misc{li2021trocr,
title={TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models},
author={Minghao Li and Tengchao Lv and Lei Cui and Yijuan Lu and Dinei Florencio and Cha Zhang and Zhoujun Li and Furu Wei},
year={2021},
eprint={2109.10282},
archivePrefix={arXiv},
primaryClass={cs.CL}
}