yomitoku

kotaro-kinoshita活跃维护

面向日语文档的 AI 图像解析 Python 包,可完成版面分析和 OCR,把扫描件或照片里的日文内容结构化提取出来。

YomiTokuはAIを活用した日本語文書解析エンジンを提供するPythonパッケージです。 Yomitoku is an AI-powered document image analysis package designed specifically for the Japanese language.

v0.16.2发布于 2026-11-10 02:47 UTC1,699star +4 / 7 天67fork同步于 2026-11-11 05:45 UTC

怎么上手

由 README 提炼,执行前请确认
pip install yomitoku
yomitoku ${path_data} -f md -o results -v --figure
硬件要求按 README 说明

GPU 推理显存需求在 8GB 以内,无需高端显卡;轻量模型(--lite)可在 CPU 上高速推理,普通模型在 CPU 上较慢。需 PyTorch 2.5 以上、CUDA 11.8 以上,支持 Linux、Mac、Windows。

需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

面向日语文档的 AI 图像解析引擎,一次完成 OCR、版面与表格结构识别

面向日语文档的 AI 图像解析 Python 包,可完成版面分析和 OCR,把扫描件或照片里的日文内容结构化提取出来。

核心能力

  • 内置文字检测、文字识别、版面解析、表格结构识别四个自研模型
  • 支持超 7000 个日文字符,覆盖手写与竖排等日文特有版式
  • 输出 JSON、HTML、Markdown、CSV 及可检索 PDF 多种格式
  • 用 --dewarp 对拍摄文档做页面检测与非线性弯曲、倾斜校正
  • 提供 --lite 轻量模型,可在 CPU 上快速推理

容易踩的坑

PyTorch 需按自身 CUDA 版本单独安装,默认装的是 CUDA 12.4 以上版本,不匹配时可用仓库内 Dockerfile。首次运行会下载模型权重,需保证网络可用。--dewarp 只适合手机拍摄的文档,扫描件或 PDF 等平整图像不要使用,否则可能被轻微扭曲。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.16.2
  1. v0.16.2最新正式版2026-11-10 · 2026-11-10 02:47 UTC

    変更

    🚀 機能追加

    • Feat/download dewarper model @kotaro-kinoshita (#280)
  2. v0.16.12026-11-06 · 2026-11-06 13:27 UTC
    查看更新说明

    変更

    • perf: PARSeq のデコードでエンコーダ出力の K/V 射影をバッチごとに 1 回だけ計算する @privatenumber (#274)

    🚀 機能追加

    • 複数枚/複数ページに対応する幾何補正モデルへ更新 @kotaro-kinoshita (#277)
  3. v0.16.02026-11-04 · 2026-11-04 07:21 UTC
    查看更新说明

    変更

    • chore: bump certifi to 2026.10.19 in uv.lock @kotaro-kinoshita (#265)

    🚀 機能追加

    • feat: add geometric correction (dewarping) preprocessing for photogra… @kotaro-kinoshita (#267)
  4. v0.15.12026-10-20 · 2026-10-20 05:41 UTC
    查看更新说明

    変更

    🚀 機能追加

    • feat(cli): add --split_text_across_cells option @kotaro-kinoshita (#257)
    • feat(recognizer): organize repetition stop / orientation fallback options and unify defaults @kotaro-kinoshita (#258)
    • YomiToku StudioテンプレートのPytyhon APIのサポート @kotaro-kinoshita (#254)

    🐛 バグ修正

    • test: TableSemanticParserの段落ID重複によるOCR混入を回帰テストで防ぐ @kotaro-kinoshita (#253)

    📖 ドキュメント

    • docs: list AWS Marketplace products and link the YomiToku-Client README @kotaro-kinoshita (#263)
    • docs: expand configuration guide and document all tunable parameters @kotaro-kinoshita (#261)
  5. v0.15.02026-09-14 · 2026-09-14 06:33 UTC
    查看更新说明

    変更

    • 文字認識モデルをv5へ更新し、可変幅・resize policyをconfig駆動化 @kotaro-kinoshita (#249)

    🚀 機能追加

    • YomiToku Studioの帳票テンプレートをCLIでサポート @kotaro-kinoshita (#251)
    • feat: 図表エクスポート時にJSONへ画像の相対パスを格納 @kotaro-kinoshita (#241)

    🐛 バグ修正

    • migrate BaseSchema to pydantic v2 model_config @xyf5432 (#248)
    • ci: changelog自動更新の無限ループを修正 @kotaro-kinoshita (#242)

    📖 ドキュメント

    • docs: add FAQ page with CUDA-enabled PyTorch installation guide @kotaro-kinoshita (#245)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    日本語版 | English

    Python PyTorch CUDA OS Document PyPI Downloads Web Demo

    🌐 インストール不要でブラウザから試せます → YomiToku Studio 推論はすべてブラウザ内(WebAssembly / WebGPU)で実行され、画像はどこにも送信されません。まずは手元の画像で精度を確かめてみてください。

    🌟 概要

    YomiToku は日本語に特化した AI 文章画像解析エンジン(Document AI)です。画像内の文字の全文 OCR およびレイアウト解析機能を有しており、画像内の文字情報や図表を認識、抽出、変換します。

    • 🤖 日本語データセットで学習した 4 種類(文字位置の検知、文字列認識、レイアウト解析、表の構造認識)の AI モデルを搭載しています。4 種類のモデルはすべて独自に学習されたモデルで日本語文書に対して、高精度に推論可能です。
    • 🇯🇵 各モデルは日本語の文書画像に特化して学習されており、7000 文字を超える日本語文字の認識をサポート、手書き文字、縦書きなど日本語特有のレイアウト構造の文書画像の解析も可能です。(日本語以外にも英語の文書に対しても対応しています)。
    • 📈 レイアウト解析、表の構造解析, 読み順推定機能により、文書画像のレイアウトの意味的構造を壊さずに情報を抽出することが可能です。
    • 📄 多様な出力形式をサポートしています。html やマークダウン、json、csv のいずれかのフォーマットに変換可能です。また、文書内に含まれる図表、画像の抽出の出力も可能です。文書画像をサーチャブルPDFに変換する処理もサポートしています。
    • ⚡ GPU 環境で高速に動作し、効率的に文書の文字起こし解析が可能です。また、VRAM も 8GB 以内で動作し、ハイエンドな GPU を用意する必要はありません。軽量モデルを用いれば CPU でも高速に推論が可能です。
    • 📷 カメラで撮影した画像から複数の書類(見開きの左右のページ、並べたレシートなど)の領域を検知し、それぞれの湾曲・カール・傾き・台形の歪みを補正して、ページごとにドキュメント解析を行うページ検知・幾何補正(歪み補正)の前処理を搭載しています(オプション)。非線形な補正のため湾曲・カールにも対応し、紙が見切れた写真や照明条件の悪い写真にもロバストです。補正に失敗したと判定したページは補正せずに解析を続行します。

    処理パイプライン

    flowchart LR
        IN[/入力画像/] --> PRE
        subgraph PRE["前処理(オプション)"]
            DW["幾何補正<br>Dewarper"]
        end
        PRE --> OCR
        PRE --> LA
        subgraph OCR["OCR"]
            direction TB
            TD["文字検出<br>Text Detector"] --> TR["文字認識<br>Text Recognizer"]
        end
        subgraph LA["レイアウト解析"]
            direction TB
            LP["レイアウト解析<br>Layout Parser"] --> TSR["表構造認識<br>Table Structure Recognizer"]
        end
        OCR --> RO["読み順推定"]
        LA --> RO
        RO --> OUT[/"出力<br>JSON / HTML / Markdown / CSV / PDF"/]
    
    • 前処理(幾何補正): --dewarp を指定したときのみ実行します。画像内のページ(見開きの左右、並べたレシートなど)を検出し、ページごとに歪みを推定して平らな文書画像に補正します。
    • OCR: 文字の位置を検出し、検出した各行の文字列を認識します。
    • レイアウト解析: 段落・図・表の領域を検出し、表についてはセルの構造(行・列・結合)を認識します。
    • 読み順推定: OCR とレイアウト解析の結果を統合し、文書の読み順を推定します。

    🖼️ デモ

    インストール前に、ブラウザ版 YomiToku Studio で手元の画像を試せます(画像は外部送信されません)。

    gallery.mdにも複数種類の画像の検証結果を掲載しています。

    入力画像OCR の結果
    レイアウト解析の結果エクスポート(HTML で出力したものをスクショ)

    Markdown でエクスポートした結果は関してはリポジトリ内のstatic/out/in_demo_p1.mdを参照

    • 赤枠 : 図、画像等の位置
    • 緑枠 : 表領域全体の位置
    • ピンク枠 : 表のセル構造(セル上の文字は [行番号, 列番号] (rowspan x colspan)を表します)
    • 青枠 : 段落、テキストグループ領域
    • 赤矢印 : 読み順推定の結果

    画像の出典:「令和 6 年版情報通信白書 3 章 2 節 AI の進化に伴い発展するテクノロジー」:(総務省) を加工して作成

    ページ検知・幾何補正(歪み補正)

    --dewarp を指定すると、カメラで撮影した画像から複数の書類(見開きの左右のページ、並べたレシートや名刺など)の領域を検知し、書類ごとに湾曲・カール・傾き・台形の歪みを補正したうえで、ページごとにドキュメント解析(OCR・レイアウト解析)を行います。1 枚の写真に複数の書類が写っていても、撮影し直したり切り出したりすることなく、それぞれを独立した平らな文書として解析できます。紙の輪郭を抽出して四隅を射影変換するだけの単純な補正ではなく、紙面全体の歪みを推定する非線形な補正のため、紙の湾曲やカールも平らに戻せます。紙の一部が画像の外に見切れている写真や、影・照明ムラのある写真にもロバストです。

    補正の推定(検出したページと Grid)補正後の画像に対する解析結果解析結果を元の画像に逆投影

    1 行目は並べて撮影した 3 枚のレシートに対する OCR(文字検出・認識)の結果です。レシートを 1 枚ずつ別のページとして検出し、ページごとに補正・解析します(補正後の画像は 3 ページを並べて表示しています)。2 行目は冊子の見開きに対するレイアウト解析の結果です。見開きは左右 2 ページとして検出し、ページごとに補正・解析します(補正後の画像は 2 ページを並べて表示しています)。

    • 細線 : 検出したページ全体の Grid(補正後の画像の行・列が元の画像のどこに対応するか。画像の外に見切れた部分も含む)
    • 太線 : 補正して切り出す範囲(ページのうち画像に写っている部分)
    • 数字 : ページ番号(左から右、上から下の順)と検出スコア
    • 逆投影(--dewarp_coordinate photo)では、補正後の画像で得た矩形が元の画像上の曲がった多角形として出力されます。

    📣 リリース情報

    • 2026 年 11 月 4 日 YomiToku v0.16.0 撮影文書の幾何補正(歪み補正)の前処理をサポート
    • 2026 年 7 月 30 日 YomiToku v0.14.0 Table Semantic Parser(表の意味構造解析: Key-Value・グリッド抽出と yomitoku_table コマンド)を正式リリース
    • 2026 年 7 月 15 日 軽量モデル(--lite)が手書き文字の読み取りに対応し、1 行あたりの最大文字列長を 100 文字に拡張
    • 2025 年 11 月 5 日 YomiToku v0.10.1 CPU推論向けに最適化したGPU Free OCRモデルのサポート
    • 2025 年 4 月 4 日 YomiToku v0.8.0 手書き文字認識のサポート
    • 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オプションを使用してください。

    yomitoku ${path_data} -f md --lite -d cpu -o results -v --figure
    
    Python API から軽量モードを利用する

    CLI の --lite オプションに相当する軽量モードは、configs でテキスト認識モデルに parseq-tiny-dynw-v4 を指定し、dynamic_width と batch_bucketing を有効化することで Python API からも利用できます。CPU 環境ではテキスト検出を ONNX 推論にすると、さらに高速化できます。

    import cv2
    from yomitoku import DocumentAnalyzer
    
    if __name__ == "__main__":
        configs = {
            "ocr": {
                "text_recognizer": {
                    "model_name": "parseq-tiny-dynw-v4",  # 動的幅対応の軽量モデル
                    "dynamic_width": True,                 # 切り出し画像を実際の幅で処理
                    "batch_bucketing": True,               # 幅の近い画像をまとめてバッチ化
                    "device": "cpu",
                },
                "text_detector": {
                    "device": "cpu",
                    "infer_onnx": True,                    # CPU ではテキスト検出を ONNX 化すると高速
                },
            },
        }
    
        analyzer = DocumentAnalyzer(configs=configs, device="cpu")
    
        img = cv2.imread("sample.jpg")
        results, ocr_vis, layout_vis = analyzer(img)
        results.to_json("output.json")
    

    OCR モジュール単体で利用する場合も、同じオプションを text_recognizer に渡します。

    import cv2
    from yomitoku import OCR
    
    if __name__ == "__main__":
        configs = {
            "text_recognizer": {
                "model_name": "parseq-tiny-dynw-v4",
                "dynamic_width": True,
                "batch_bucketing": True,
            },
        }
    
        ocr = OCR(configs=configs, device="cpu")
    
        img = cv2.imread("sample.jpg")
        results, ocr_vis = ocr(img)
    

    [!NOTE] parseq-tiny-dynw-v4 は動的幅バッチング推論を前提に学習されたモデルです。dynamic_width=True(および batch_bucketing=True)と組み合わせて使用してください。ONNX 推論(infer_onnx=True)は入力サイズが固定されるため、dynamic_width は自動的に無効化されます。

    幾何補正(歪み補正)付きの推論

    スマートフォン等で撮影した文書画像には--dewarpオプションを使用してください。補正後の画像(*_dewarped.jpg)も出力されます。

    yomitoku ${path_data} -f md -o results -v --dewarp
    

    スキャン画像や PDF など、もともと平らな文書画像には使用しないでください(紙の輪郭がないため補正の効果がなく、わずかに歪む場合があります)。

    コマンドライン引数一覧

    引数名説明
    ${path_data}解析対象の画像が含まれたディレクトリか画像ファイルのパスを直接指定します。ディレクトリを対象とした場合はサブディレクトリ内の画像も含めて処理を実行します。
    --format(-f)出力形式のファイルフォーマットを指定します。(json, csv, html, md, pdf(searchable-pdf) をサポート)
    --outdir(-o)出力先のディレクトリ名を指定します。存在しない場合は新規で作成されます。
    --vis(-v)解析結果を可視化した画像を出力します。
    --lite(-l)軽量モデルで推論を実行します。通常より高速に推論できますが、若干、精度が低下する可能性があります。
    --device(-d)モデルを実行するためのデバイスを指定します。gpu が利用できない場合は cpu で推論が実行されます。(デフォルト: cuda)
    --ignore_line_break画像の改行位置を無視して、段落内の文章を連結して返します。(デフォルト:画像通りの改行位置で改行します。)
    --figure_letter検出した図表に含まれる文字も出力ファイルにエクスポートします。
    --figure検出した図、画像を出力ファイルにエクスポートします。
    --encodingエクスポートする出力ファイルの文字エンコーディングを指定します。サポートされていない文字コードが含まれる場合は、その文字を無視します。(utf-8, utf-8-sig, shift-jis, enc-jp, cp932)
    --combinePDFを入力に与えたときに、複数ページが含まれる場合に、それらの予測結果を一つのファイルに統合してエクスポートします。
    --ignore_meta文章のheader, footerなどの文字情報を出力ファイルに含めません。
    --split_text_across_cells表のセル境界をまたいで検出されたテキスト行を、セル単位に分割してから認識します。
    --ignore_rubyふりがな(ルビ)テキストを出力から除外します。
    --ruby_thresholdルビ判定の閾値を指定します(デフォルト: 0.5)。--ignore_ruby と併用します。
    --disable-repetition-stop文字認識で同じ文字・文字列が繰り返されるループを検出して打ち切る機能(デフォルト: 有効)を無効化します。
    --dewarp撮影した文書の湾曲・カール・傾き・台形の歪みを補正してから解析します。補正後の画像を *_dewarped.jpg として出力し、--vis を指定した場合は補正の推定結果(検出したページと Grid)を *_dewarp_grid.jpg として出力します。補正に失敗したと判定したページは補正せずに解析します。
    --dewarp_coordinate--dewarp 使用時の出力座標を指定します。dewarped: 補正後の画像の座標(デフォルト)、photo: 元の画像の座標(各要素に曲がった多角形 polygon を付与)。
    --dewarp_model--dewarp 使用時の補正モデルを指定します。pagenet_v1: 画像内のすべてのページを検出し、ページごとに *_p{ページ番号}_{k}.* として出力(デフォルト)、uvdoc_v1: 画像全体を 1 ページとして補正。

    その他のオプションに関してはヘルプを参照してください。

    yomitoku --help
    

    NOTE

    • 通常モデルでは GPU での実行を推奨します。CPU を用いての推論向けに最適化されておらず、処理時間が長くなります。
    • 軽量モデルでは CPU でも高速に推論できます。
    • YomiToku は文書 OCR 向けに最適化されており、情景 OCR(看板など紙以外にプリントされた文字の読み取り)向けには最適化されていません。
    • AI-OCR の識別精度を高めるために、入力画像の解像度が重要です。低解像度画像では識別精度が低下します。最低でも画像の短辺を 720px 以上の画像で推論することをお勧めします。

    📊 Table Semantic Parser(表の意味構造解析)

    Table Semantic Parserは、帳票画像やPDFから表を検出し、セルの役割(ヘッダー/値)や Key-Value(項目名→値)・グリッド(行列データ) といった意味構造を自動で推定する機能です。yomitoku_table コマンドで、ドキュメント全体の解析結果をページ単位の構造化JSONとして出力できます。

    yomitoku_table ${path_data} -o results -v
    

    デフォルトの出力は、Key-Value・グリッドのテキストに由来セルのIDと座標を埋め込んだ構造化JSONです。段落(paragraphs)も含まれます。

    オプション説明
    --simple座標などのメタ情報を持たない、テキストのみの構造化JSONを出力します。
    --raw正規化スキーマ(TableSemanticParserSchema)のまま出力します(テンプレート往復用)。
    --lite軽量モデルで実行します(CPU向け)。
    --studio-template FILEYomiToku Studioの帳票テンプレート(v2/v3)を使い、OCRのみでバッチ解析します。
    --grid_only / --kv_onlyグリッドのみ / Key-Valueのみを解析します。

    その他のオプション(モデル・Configの個別指定、テンプレート適用、ページ指定など)はTable Semantic Parser CLIのドキュメントを参照してください。Python APIの詳細はTable Semantic Parserのドキュメントを参照してください。

    gallery_table_semantic_parser.mdに複数種類の帳票に対する解析結果の可視化を掲載しています。

    ※ 区切り罫線が存在する帳票のみをサポートしています。

    📋 Extractor(構造化データ抽出)

    YomiToku Extractorは、帳票画像やPDFからYAMLスキーマに基づいて構造化データを抽出する機能です。OCR・レイアウト解析の結果から、指定したフィールドの値を自動で抽出しJSONとして出力します。

    抽出方式

    コマンド方式特徴
    yomitoku_extractルールベースLLM不要。KV検索・グリッド照合・正規表現で高速に抽出
    yomitoku_extract_with_llmLLMベースvLLM等のLLMサーバーを利用してより柔軟に抽出
    • ルールベース: 定型帳票(申請書、報告書、伝票など)に適しています。抽出対象の位置やテキストパターンが決まっている場合に高速かつ高精度に抽出できます。
    • LLMベース: 非定型帳票(名刺、レシート、請求書など)に適しています。レイアウトや値のパターンが不定の場合でも、文脈を理解して柔軟に抽出できます。

    インストール

    pip install yomitoku[extract]
    

    スキーマ定義例

    fields:
      - name: phone_number
        description: 電話番号
        type: string
        normalize: phone_jp
    
      - name: invoice_number
        regex: 'T\d{13}'
        type: string
    
      - name: order_items
        structure: table
        columns:
          - name: product
            description: 商品名
          - name: price
            description: 金額
            normalize: numeric
    

    実行例

    # ルールベース抽出
    yomitoku_extract input.jpg -s schema.yaml -o results -v
    
    # LLMベース抽出(vLLMサーバー使用)
    yomitoku_extract_with_llm input.jpg -s schema.yaml -m Qwen/Qwen3-8B-Instruct
    

    詳細はExtractor ドキュメントを参照してください。

    📝 ドキュメント

    パッケージの詳細はドキュメントを確認してください。

    LICENSE

    本リポジトリ内のソースコードおよび本プロジェクトに関連する HuggingFace Hub 上のモデルの重みファイルは、CC BY-NC-SA 4.0 ライセンスの下で提供されています。
    非商用での個人利用・研究目的での利用は自由に行っていただけます。

    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/

    商用化/非商用の判断は以下のガイドラインに従い、判断いたします。


    商用利用について

    YomiToku を商用環境でご利用いただく場合、以下の方法で 製品版の商用ライセンス を提供しています。
    手書き認識の精度向上、画像の自動向き補正、レイアウト解析の強化など、製品版のみで利用可能な追加機能 を多数搭載しています。

    オンプレミス環境・ローカル PC での商用利用

    オンプレミス環境やローカル PC での商用利用をご希望の場合は、専用の オンプレ向け商用ライセンス をご用意しています。
    詳細は以下よりお問い合わせください。

    クラウド上での商用利用(AWS Marketplace)

    YomiToku の商用版は AWS Marketplace でも提供しています。
    すべての解析処理は お客様の AWS 環境内で完結 し、外部ネットワークや第三者サーバーへの送信は一切発生しません。
    機密文書・社内資料・個人情報を扱うワークロードでも安心してご利用いただけます。

    提供している製品は次のとおりです。いずれも別の AWS Marketplace 製品のため、利用する製品をそれぞれサブスクライブしてください。

    製品内容
    YomiToku-Pro - Document Analyzer文書画像の OCR・レイアウト解析(通常版)
    YomiToku-Pro Lite - Document AnalyzerDocument Analyzer の軽量版(通常版との精度・処理時間の比較は技術記事を参照)
    YomiToku-Pro - Table Semantic Parser帳票の表構造(セル・キーと値・グリッド)の抽出

    製品の一覧は AWS Marketplace の検索結果 からも確認できます。

    デプロイや解析の手順は、専用のクライアントライブラリ YomiToku-Client の案内を参照してください。