🏠

OCRファインチューニング入門 — 日本語不動産契約書を読む自分のモデル作り

TrOCR + Trainer.train() — 感情分析ファインチューニングと全く同じパターン

感情分析 vs OCR — 構造は同じ

以前学んだ感情分析:

データ:テキスト+ラベル
モデル:DistilBERT
trainer.train() → 自分のモデル

OCRファインチューニング:

データ:画像+正解テキスト(契約書写真→「甲は乙に対して...」)
モデル:TrOCR
trainer.train() → 自分のモデル

inputがテキストから画像に変わっただけ。 Trainer.train()は同一。

なぜTrOCRが最も簡単か

TrOCRは標準的なVisionEncoderDecoderModel。HuggingFace Trainerとそのまま互換。

シナリオ:日本語不動産契約書OCR

一般OCRの誤認識:「甲」→「申」、「賃貸借」→「賃貸偕」、「㎡」→「m2」。ファインチューニングで契約書特有の文字・用語を教える。

ステップ

  1. データ準備:契約書画像+正解テキストのペア
  2. Dataset作成:画像→ピクセルテンソル、テキスト→トークンID
  3. ファインチューニング:Seq2SeqTrainer.train()
  4. 推論:自分のモデルで新しい契約書画像→認識テキスト

より簡単な代替:manga-ocrのファインチューニング

manga-ocrは既に日本語を理解。契約書へのファインチューニングに必要なデータが少ない(英語TrOCRの数万個 vs 数百個)。

キーコンセプト

1

データ準備 — 契約書画像を行単位クロップ+正解テキストCSV

2

Datasetクラス — 画像→pixel_values、テキスト→labels(トークンID)

3

TrOCRロード — VisionEncoderDecoderModel.from_pretrained()

4

Seq2SeqTrainer.train() — 感情分析のTrainer.train()と同じもの

5

自分のモデルで推論 — 新しい契約書画像→正確なテキスト

ユースケース

不動産契約書OCR — 甲/乙、賃貸借、㎡などの専門用語認識精度向上 医療文書OCR — 処方箋・診断書の医学用語特化 古文書デジタル化 — 特定時代/書体の文書に特化