🚀 TrOCR-LaTeX (手書き数学に対するファインチューニング版)
手書きの数学式を美しいLaTeXコードに変換します。これは、microsoft/trocr-base-handwritten
をファインチューニングしたバージョンで、トランスフォーマーベースの光学文字認識モデルを手書き数学画像と構造化された数学構文に適応させています。
✨ 主な機能
- 手書きの数学式をLaTeXコードに変換することができます。
- トランスフォーマーベースの光学文字認識モデルを手書き数学画像に適応させています。
📦 インストール
このREADMEには具体的なインストール手順が記載されていないため、このセクションは省略されます。
💻 使用例
基本的な使用法
from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from PIL import Image
def open_PIL_image(image_path: str) -> Image.Image:
image = Image.open(image_path)
if image_path.split('.')[-1].lower() == 'png':
image = Image.composite(image, PIL.Image.new('RGB', image.size, 'white'), image)
return image
processor = TrOCRProcessor.from_pretrained('tjoab/latex_finetuned')
model = VisionEncoderDecoderModel.from_pretrained('tjoab/latex_finetuned')
images = [open_PIL_image(path) for path in paths]
preproc_image = processor.image_processor(images=images, return_tensors="pt").pixel_values
pred_ids = model.generate(preproc_image, max_length=128)
latex_preds = processor.batch_decode(pred_ids, skip_special_tokens=True)
📚 詳細ドキュメント
データ
GoogleのMathWriting
データセットでファインチューニングされています。手動ラベリングまたはプログラムによる生成を通じて取得された50万以上の手書き数学式のデジタルインクが含まれています。
想定される使用方法と制限
このモデルは、単一の数学式に対するOCRに使用できます。
非常に長い式では性能が低下します(画像の前処理によるもので、3:2のアスペクト比が最適なようです)。
- 式のチャンキングスキームを作成して、画像をサブ画像に分割し、それぞれを処理することでこの制限を回避できます。
- 複数の式を処理するには、グループを単一の式に分割する必要があります。
🔧 技術詳細
- ミニバッチサイズ: 8
- オプティマイザ: Adam
- LRスケジューラ: cosine
fp16
混合精度
torch.cuda.amp
を使用した自動混合精度 (AMP) で訓練され、メモリ使用量が削減されています。
- 勾配蓄積
- 1ステップあたりのメモリ消費を抑えながら、より大きな有効バッチサイズをシミュレートするために使用されます。
- オプティマイザのステップは、8つのミニバッチごとに行われます。
評価
性能は、Character Error Rate (CER) を使用して評価されました。CERは以下のように定義されます。
CER = (置換 + 挿入 + 削除) / 正解データの総文字数
-
⚠️ なぜCERを使用するのか?
- 数学式は構造的に敏感です。たった1文字でも入れ替えると、意味が完全に変わってしまいます。
x^2
と x_2
\frac{a}{b}
と \frac{b}{a}
- CERは、構文の小さなエラーにペナルティを与えます。
-
評価の結果、CERは14.9%でした。
📄 ライセンス
このREADMEにはライセンス情報が記載されていないため、このセクションは省略されます。
引用
元のTrORCモデルは、以下の論文で紹介されています。
TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models by Li et al.
ソースコードは彼らのリポジトリで見つけることができます。
@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}
}