🚀 TrOCR(基礎大小模型,在IAM數據集上微調)
TrOCR是一個基於Transformer的光學字符識別(OCR)模型,它在IAM數據集上進行了微調。該模型由Li等人在論文TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models中提出,並首次在這個倉庫中發佈。
⚠️ 免責聲明:TrOCR的發佈團隊並未為該模型撰寫模型卡片,此卡片由Hugging Face團隊編寫。
🚀 快速開始
你可以使用這個原始模型對單行文本圖像進行光學字符識別(OCR)。可以訪問模型中心查找針對你感興趣的任務進行微調的版本。
✨ 主要特性
TrOCR模型是一個編碼器 - 解碼器模型,由一個圖像Transformer作為編碼器,一個文本Transformer作為解碼器組成。圖像編碼器的權重初始化為BEiT的權重,而文本解碼器的權重初始化為RoBERTa的權重。
圖像以固定大小的圖像塊序列(分辨率為16x16)的形式輸入到模型中,並進行線性嵌入。在將序列輸入到Transformer編碼器的各層之前,還會添加絕對位置嵌入。然後,Transformer文本解碼器自迴歸地生成標記。
💻 使用示例
基礎用法
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import requests
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-base-handwritten')
model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-handwritten')
pixel_values = processor(images=image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values)
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
🔧 技術細節
TrOCR模型是一個編碼器 - 解碼器架構。編碼器部分是一個圖像Transformer,它將輸入的圖像轉換為特徵表示。解碼器部分是一個文本Transformer,它根據編碼器的輸出自迴歸地生成文本。
圖像輸入時會被分割成固定大小的圖像塊(16x16),並進行線性嵌入。在輸入到編碼器之前,會添加絕對位置嵌入,以保留圖像中各部分的位置信息。解碼器則根據編碼器的輸出逐步生成文本標記。
📚 詳細文檔
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}
}
📄 許可證
本項目採用MIT許可證。