モデル別実行レシピ

PaddleOCR-VL 1.6でPDFを構造化する方法

PDFから文字と文書構造を抽出し、Markdown・JSONで保存します。

PaddleOCR-VL 1.6はPDFページから文字や文書要素を読み取り、MarkdownまたはJSONに整理します。解析結果を原本と照合してから、検索インデックスや後続の確認に利用できます。

実行条件と要点
  • 例のコマンドはv1.6パイプラインを明示します。
  • JSONとMarkdownの出力をPDF原本と照合します。

文書解析が作る出力

PaddleOCR-VL 1.6はPDFページから文字や文書要素を読み取り、MarkdownまたはJSONで返すパーサーです。Markdownは人による内容確認や検索インデックスに、JSONはページ・要素単位の後処理に利用できます。

スキャン契約書を1件解析し、条項番号・表の行・ページを原本と照合します。2026年5月公開のv1.6を指定し、v1.5の数値を混在させません。

スキャンPDFから文字が抽出される様子
解析結果ではページ番号と読み順を確認します。

導入して最初の文書を実行します

Linux CPU1またはApple Silicon CPU経路の例です。PDFを作業folderにcontract_scan.pdfとして置き、--save_path ./outputを指定すると、CLI2が構造化JSONを表示し、結果fileもoutput folderに保存します。

公式docsはApple Siliconで--device cpuを示します。Linux CPU環境にはpaddlepaddle>=3.2.1とpaddleocr[doc-parser]>=3.6.0を導入します。このrecipeはGPU3専用導入を扱いません。

PaddleOCR-VL 1.6を導入してPDFを解析
python -m venv .venv
source .venv/bin/activate
python -m pip install -U "paddlepaddle>=3.2.1" "paddleocr[doc-parser]>=3.6.0"
# Put your PDF at ./contract_scan.pdf
paddleocr doc_parser -i ./contract_scan.pdf --pipeline_version v1.6 --device cpu --save_path ./output
Linux CPUまたはApple Silicon CPUの例です。PDFを`contract_scan.pdf`に置き、結果は`./output`に保存します。
長文書が文脈を重ねたチャンクに分割された様子
表と本文を検索用に分割する前に原本と照合します。

抽出品質と検索品質を分けます

原本PDFから20ページを抽出し、本文・表・読み順を確認して欠落文字や結合セルを記録します。その後、同じchunk規則で索引化すれば、解析と埋め込みの問題を分けられます。

モデルカードのOmniDocBench v1.6スコアはその評価条件での結果であり、手元の契約書やスキャンの保証値ではありません。自分の文書で解析成功率・修正時間・JSON/Markdown容量を比べます。

検索の問題を抽出テキストと段落順で確認する様子
抽出エラーと検索エラーを分けて診断します。

用語の注釈

  1. CPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。

    本文に戻る
  2. CLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。

    本文に戻る
  3. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
PaddleOCR-VL 1.6はPDFページから文字や文書要素を読み取り、MarkdownまたはJSONに整理します。解析結果を原本と照合してから、検索インデックスや後続の確認に利用できます。
条件と出典はどこで確認できますか?
モデルカードのOmniDocBench v1.6スコアはその評価条件での結果であり、手元の契約書やスキャンの保証値ではありません。自分の文書で解析成功率・修正時間・JSON/Markdown容量を比べます。