🚀 表セル画像の手書き文字認識モデル
このモデルは、テキスト行画像から手書き文字を認識することができます。国立公文書館のMulticentury HTRモデルとMicrosoftのTrOCRモデルをファインチューニングし、1930年代のフィンランドの死亡記録と国勢調査記録の表から取得したテキスト行画像を使用して学習されました。
🚀 クイックスタート
モデルの概要
このモデルは、特定の種類の表セルデータから手書き文字を認識するように学習されており、他のデータセットに対する汎化能力は低い可能性があります。入力としてテキスト行画像を受け取り、他のタイプの入力の使用は推奨されません。
モデルの使用方法
以下のコードを使用して、画像のテキスト内容を予測することができます。可能であれば、推論に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/tablecell-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/
に保存されます。
✨ 主な機能
- テキスト行画像からの手書き文字認識
- 特定の表セルデータに対する高精度な認識
📦 インストール
このモデルはHuggingFace Hubから直接ダウンロードできます。上記のコードを実行することで自動的にダウンロードされます。
💻 使用例
基本的な使用法
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/tablecell-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)
📚 ドキュメント
学習データ
このモデルは、6704枚のテキスト行画像を使用して学習され、検証データセットには836枚のテキスト行画像が含まれています。
学習手順
このモデルは、NVIDIA RTX A6000 GPUを使用して、以下のハイパーパラメータで学習されました。
属性 |
详情 |
バッチサイズ |
16 |
エポック数 |
15 |
オプティマイザ |
AdamW |
テキストシーケンスの最大長 |
64 |
その他のパラメータには、デフォルト値が使用されています(詳細はこちらを参照)。学習コードはtrain_trocr.py
ファイルにあります。
評価結果
検証データセットを使用した評価結果は以下の通りです。
検証損失 |
検証文字誤り率(CER) |
検証単語誤り率(WER) |
0.903 |
0.107 |
0.237 |
これらのメトリクスは、Evaluateライブラリを使用して計算されています。CERメトリクスの詳細はこちら、WERメトリクスの詳細はこちらを参照してください。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。