実行プログラムと拡張機能
最終更新
LightOnOCR-3でスキャンPDFと表をローカル抽出
grounding modeではテキストだけでなく、ページ領域のlabelと座標も残ります。表をRAGや検索indexへ入れる前に、行・列・単位を原本と照合してください。
LightOnOCR-3はplain modeとgrounding modeを提供します。plain modeはページ全体をMarkdownへ転記し、groundingはblock labelと0~1000の正規化座標を追加します。CLI1はPDFをout/<name>/page-NNN.mdにページ別保存し、groundingでは構造化.jsonも作成します。OCR2結果は原本の表と照合してから検索へ接続してください。
スキャンPDFから本文と表を抽出して検索や確認へつなげたいときに使います。PDFと必要なページ範囲を入力し、ページ別Markdownと、必要に応じて位置情報付きgrounding blockを出力します。
まず表のあるページと本文中心のページを1枚ずつ選びます。数値、列見出し、単位を原本と確認してからindexへ登録すると、レイアウトや小さな文字の誤りが検索結果へ伝わるのを防ぎやすくなります。
plainとgroundingから出力形式を選ぶ
plain modeは表や数式を読みやすいMarkdownとして抽出します。groundingを渡すと各領域の前にlabelと座標を含むmarkerが付き、座標はページサイズにかかわらず0~1000に正規化されます。.json blockはプログラム後処理に、.mdは素早い確認と保存に使えます。
表の多い資料ではgroundingが確認しやすい出発点です。表の位置とテキストを一緒に見られ、チャートの値はHTML tableになる場合があります。ページごとに空欄、列の切れ、header・footerの混入を確認してください。

vLLMとLightOnOCR CLIを接続する
Linux、CUDA3対応NVIDIA GPU4、Python 3.10以上を準備し、uv --versionでuvを確認します。未導入ならuv公式導入guideのLinux手順に従います。terminalを開き直してversionを確認してから、下のrepository導入へ進んでください。
uv --version
# If missing, the official Linux installer is:
# curl -LsSf https://astral.sh/uv/install.sh | sh
# Reopen the terminal and confirm uv --version before continuing.公式quick startはuv sync --extra vllmでCLIとサービング依存関係を導入します。LightOnOCR-3-1Bの例はport 8010、prompt5あたり画像1枚、最大model length 16,384、画像cache無効を使います。repositoryはvLLM 0.30.0とTransformers 5.16.1を固定し、Transformers 5.17とvLLM 0.27.1の問題を説明しています。
mkdir -p "$HOME/projects"
cd "$HOME/projects"
git clone https://github.com/lightonai/LightOnOCR.git
cd LightOnOCR
uv sync --extra vllm
source .venv/bin/activate
vllm serve lightonai/LightOnOCR-3-1B --limit-mm-per-prompt '{"image": 1}' --max-model-len 16384 --mm-processor-cache-gb 0 --no-enable-prefix-caching --port 8010 --host 127.0.0.1処理するPDFをrepository folderの$HOME/projects/LightOnOCR/report.pdfに置き、repository rootからCLIを実行します。serverは別terminalでforeground実行し、--host 127.0.0.1でローカルinterfaceにのみbindします。CLIは既定のhttp://127.0.0.1:8010/v1へ接続するため、初回はrepository既定のmodel名を使ってください。
cd "$HOME/projects/LightOnOCR"
source .venv/bin/activate
lightonocr report.pdf --mode grounding
ページ別出力から表を確認して保存する
正常に実行されるとCLIは既定のout/report/にページ別.mdと送信したページ画像を保存します。grounding modeでは各ページの.json blockも作成します。ファイルの生成、PDFと出力のページ番号、Markdown tableの行・列を確認してください。
out/report/
├── page-001.png
├── page-001.md
├── page-001.json # grounding mode
└── ...業務フローへ渡す前に、数値セル、通貨・単位、結合見出し、脚注を元PDFと照合します。grounding座標が0~1000の範囲か確認し、bboxが表を囲んでいても行・列・数値は別途検証してください。確認済みページだけを次の文書システムへ保存します。

表の誤りや空ページを切り分ける
出力directoryやページfileがない場合は、サーバー準備後にCLIを実行したか、port 8010のaddressを確認します。空ページやrequest errorでは、元PDFを画像にrenderして読めるか確認し、該当ページだけ--pagesで再実行します。出力が長すぎて切れる場合はPDF全体ではなく範囲を狭めてください。
表が崩れる場合は、まずplainとgroundingの出力を並べて確認します。--longest-edgeは入力画像サイズを調整する設定で、小さな文字が不鮮明な場合に変更できます。既定serverもmodel別にページサイズを選びますが、画像サイズを変えたときは少量のbatchで精度と処理量のバランスを確認してください。
用語の注釈
CLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。
本文に戻るOCR — 画像やスキャン文書の文字を認識してテキストにする処理です。表の配置や読み順は、元の画像を合わせて確認する必要があります。
本文に戻るCUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。
本文に戻るGPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻るプロンプト — モデルに送る入力文です。生成モデルでは作りたい結果を説明する文になり、出力の構成や内容を大きく左右します。
本文に戻る
よくある質問
- この記事で最初に確認すべきことは何ですか?
- LightOnOCR-3はplain modeと`grounding` modeを提供します。plain modeはページ全体をMarkdownへ転記し、groundingはblock labelと0~1000の正規化座標を追加します。CLIはPDFを`out/<name>/page-NNN.md`にページ別保存し、groundingでは構造化`.json`も作成します。OCR結果は原本の表と照合してから検索へ接続してください。
