日本語版 | English
YomiToku は日本語に特化した AI 文章画像解析エンジン(Document AI)です。画像内の文字の全文 OCR およびレイアウト解析機能を有しており、画像内の文字情報や図表を認識、抽出、変換します。
- 🤖 日本語データセットで学習した 4 種類(文字位置の検知、文字列認識、レイアウト解析、表の構造認識)の AI モデルを搭載しています。4 種類のモデルはすべて独自に学習されたモデルで日本語文書に対して、高精度に推論可能です。
- 🇯🇵 各モデルは日本語の文書画像に特化して学習されており、7000 文字を超える日本語文字の認識をサーポート、縦書きなど日本語特有のレイアウト構造の文書画像の解析も可能です。(日本語以外にも英語の文書に対しても対応しています)。
- 📈 レイアウト解析、表の構造解析, 読み順推定機能により、文書画像のレイアウトの意味的構造を壊さずに情報を抽出することが可能です。
- 📄 多様な出力形式をサポートしています。html やマークダウン、json、csv のいずれかのフォーマットに変換可能です。また、文書内に含まれる図表、画像の抽出の出力も可能です。
- ⚡ GPU 環境で高速に動作し、効率的に文書の文字起こし解析が可能です。また、VRAM も 8GB 以内で動作し、ハイエンドな GPU を用意する必要はありません。
gallery.mdにも複数種類の画像の検証結果を掲載しています。
| 入力画像 | OCR の結果 |
|---|---|
![]() |
![]() |
| レイアウト解析の結果 | エクスポート (HTML で出力したものをスクショ) |
![]() |
![]() |
Markdown でエクスポートした結果は関してはリポジトリ内のstatic/out/in_demo_p1.mdを参照
赤枠: 図、画像等の位置緑枠: 表領域全体の位置ピンク枠: 表のセル構造(セル上の文字は [行番号, 列番号] (rowspan x colspan)を表します)青枠: 段落、テキストグループ領域赤矢印: 読み順推定の結果
画像の出典:「令和 6 年版情報通信白書 3 章 2 節 AI の進化に伴い発展するテクノロジー」:(総務省) を加工して作成
- 2024 年 11 月 26 日 YomiToku v0.5.1 (beta) を公開
pip install yomitoku
- pytorch はご自身の CUDA のバージョンにあったものをインストールしてください。デフォルトでは CUDA12.4 以上に対応したものがインストールされます。
- pytorch は 2.5 以上のバージョンに対応しています。その関係で CUDA11.8 以上のバージョンが必要になります。対応できない場合は、リポジトリ内の Dockerfile を利用してください。
yomitoku ${path_data} -f md -o results -v --figure --lite
${path_data}解析対象の画像が含まれたディレクトリか画像ファイルのパスを直接して指定してください。ディレクトリを対象とした場合はディレクトリのサブディレクトリ内の画像も含めて処理を実行します。-f,--format出力形式のファイルフォーマットを指定します。(json, csv, html, md をサポート)-o,--outdir出力先のディレクトリ名を指定します。存在しない場合は新規で作成されます。-v,--visを指定すると解析結果を可視化した画像を出力します。-l,--liteを指定すると軽量モデルで推論を実行します。通常より高速に推論できますが、若干、精度が低下する可能性があります。-d,--deviceモデルを実行するためのデバイスを指定します。gpu が利用できない場合は cpu で推論が実行されます。(デフォルト: cuda)--ignore_line_break画像の改行位置を無視して、段落内の文章を連結して返します。(デフォルト:画像通りの改行位置位置で改行します。)--figure_letter検出した図表に含まれる文字も出力ファイルにエクスポートします。--figure検出した図、画像を出力ファイルにエクスポートします。(html と markdown のみ)
その他のオプションに関しては、ヘルプを参照
yomitoku --help
NOTE
- GPU での実行を推奨します。CPU を用いての推論向けに最適化されておらず、処理時間が長くなります。
- 活字のみ識別をサポートしております。手書き文字に関しては、読み取れる場合もありますが、公式にはサポートしておりません。
- Yomitoku は文書 OCR 向けに最適化されており、情景 OCR(看板など紙以外にプリントされた文字の読み取り)向けには最適化されていません。
- AI-OCR の識別精度を高めるために、入力画像の解像度が重要です。低解像度画像では識別精度が低下します。最低でも画像の短辺を 720px 以上の画像で推論することをお勧めします。
開発用のAPIサーバーを起動する場合は、以下の手順で実行してください:
# 必要なパッケージのインストール
uv pip sync pyproject.toml
uv pip install fastapi uvicorn python-multipart
uv pip install -e .
# サーバーの起動
python app.pyサーバーは http://localhost:8000 で起動します。
もしくはdocker composeを利用して起動することも可能です。
DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose up --build- エンドポイント:
/analyze - メソッド: POST
- Content-Type: multipart/form-data
- パラメータ:
- file: 解析する画像ファイル
- format: 出力フォーマット(オプション、デフォルト: "json")
- "json": JSON形式で結果を返します
- "markdown": Markdown形式で結果を返します
- "vertical": 垂直方向のテキストのみを抽出して返します
- "horizontal": 水平方向のテキストのみを抽出して返します
curlでのリクエスト例:
# JSON形式で取得
curl -X POST -F "[email protected]" http://localhost:8000/analyze
# Markdown形式で取得
curl -X POST -F "[email protected]" "http://localhost:8000/analyze?format=markdown"
# 垂直方向のテキストのみを取得
curl -X POST -F "[email protected]" "http://localhost:8000/analyze?format=vertical"
# 水平方向のテキストのみを取得
curl -X POST -F "[email protected]" "http://localhost:8000/analyze?format=horizontal"レスポンスは指定されたフォーマットで返されます。verticalとhorizontalフォーマットの場合は、指定された方向のテキストのみが文字列として返されます。
パッケージの詳細はドキュメントを確認してください。
本リポジトリ内に格納されているソースコードおよび本プロジェクトに関連する HuggingFaceHub 上のモデルの重みファイルのライセンスは CC BY-NC-SA 4.0 に従います。 非商用での個人利用、研究目的での利用はご自由にお使いください。 商用目的での利用に関しては、別途、商用ライセンスを提供しますので、https://www.mlism.com/ にお問い合わせください。
YomiToku © 2024 by Kotaro Kinoshita is licensed under CC BY-NC-SA 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/




