🚀 芬兰19世纪法庭记录手写文本识别模型
该模型用于从文本行图像中进行手写文本识别。它通过对微软的TrOCR模型进行微调训练,使用了数字化的19世纪芬兰语和瑞典语法庭记录文档。
🚀 快速开始
此模型可按以下代码预测图像中的文本内容。若有可用的GPU,建议在推理时使用。
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model_checkpoint = "Kansallisarkisto/court-records-htr"
line_image_path = "/path/to/textline_image.jpg"
processor = TrOCRProcessor.from_pretrained(model_checkpoint)
model = VisionEncoderDecoderModel.from_pretrained(model_checkpoint).to(device)
image = Image.open(line_image_path).convert("RGB")
pixel_values = processor(image, return_tensors="pt").pixel_values
generated_ids = model.generate(pixel_values.to(device))
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(generated_text)
从HuggingFace Hub下载的模型会本地保存到 ~/.cache/huggingface/hub/
。
✨ 主要特性
- 该模型针对特定类型的19世纪数据进行手写文本识别训练。
- 输入为文本行图像。
📚 详细文档
预期用途与限制
- 该模型针对特定类型的19世纪数据进行手写文本识别训练,对其他数据集的泛化能力可能较差。
- 模型输入为文本行图像,不建议使用其他类型的输入。
训练数据
模型使用了来自19世纪法庭记录的314,228张文本行图像进行训练,验证数据集包含39,042张文本行图像。
训练过程
该模型使用NVIDIA RTX A6000 GPU进行训练,使用了以下超参数:
- 训练批次大小:24
- 训练轮数:13
- 优化器:AdamW
- 文本序列最大长度:64
其他参数使用默认值(更多信息请见此处)。训练代码可在 train_trocr.py
文件中找到。
评估结果
使用验证数据集的评估结果如下:
验证损失 |
验证字符错误率(CER) |
验证词错误率(WER) |
0.248 |
0.024 |
0.113 |
这些指标使用 Evaluate 库计算得出。关于CER指标的更多信息可在此处找到,关于WER指标的更多信息可在此处找到。
🔧 技术细节
属性 |
详情 |
基础模型 |
microsoft/trocr-base-handwritten |
任务类型 |
图像转文本 |
评估指标 |
字符错误率(CER)、词错误率(WER) |
📄 许可证
本项目采用MIT许可证。