跳到主要內容

【2026 最新】Indra OCR 繁中怎麼用?CPU 首跑、文字層分流與版面錯誤六步教學

最後更新: ·
Indra OCR 繁中教學:文字層分流與版面區塊核對

想用 Indra OCR 把繁中 PDF 變成 AI 能讀的文字,結果字看似正確,兩欄卻接錯了?也可能剛好相反:Auto 模式很漂亮,改成 OCR 就開始漏字。你看到的是同一頁,程式走的卻可能是不同路。

這篇專為剛接觸文件擷取的讀者寫。從本機 CPU 安裝、第一張文件到 JSON 核對,一步步教你找出問題落在哪一層。你不必先懂機器學習;會開終端機、找到檔案,就能照著做。本文以 2026 年 10 月 19 日查核的 0.3.2 版為操作基準。

先說結論:繁中可以試,但要分開驗

可靠的文件擷取=文字來源選對+區塊框對+順序對+字讀對。把它想成整理書桌:先決定是直接抄電子筆記,還是對照片看字;再把紙張分堆、排順,最後才是逐字抄寫。前一步錯了,後一步再努力也可能接出錯的文章。

官方把繁簡中文列入掃描與圖片的 OCR 支援範圍,同時明列直排文字不支援。這是能力範圍,不是繁中準確率保證。乾淨橫排文件可先做小樣本;直排報紙則應先規劃其他擷取路線。完整邊界見 官方語言說明 與 限制清單。

一、Indra OCR 在文件管線裡做什麼?

OCR 是「光學字元辨識」,也就是從圖片讀出文字。Indra 還會提供行的位置、版面區塊與閱讀順序,並輸出 Markdown、純文字或 JSON。CPU 是一般電腦負責運算的處理器;這套工具透過 ONNX Runtime 跑模型,適合先在現有電腦嘗試。

但 PDF 不一定是一張照片。由文書軟體匯出的 PDF,可能已經帶有可選取的文字層;掃描 PDF 才通常需要從像素重新認字。Auto 會在檢查通過時採用文字層,必要處才走 OCR。官方 CLI 原始碼 將模式分成 auto、ocr、text 三種。

所以「Auto 抽到正確繁中」不等於「繁中辨識模型認得準」。它可能直接讀到了原有文字。要把資料接入 RAG 檢索問答,先保留來源與頁碼,比立刻把所有文字送進聊天視窗更有用。

二、Indra OCR 安裝:先固定版本,再跑一張

①「把工具放進自己的抽屜」:建立隔離環境

怕套件互相影響?先用虛擬環境,讓這次安裝有獨立的套件目錄。需要已安裝的 Python 3.10 以上;以下啟用方式適用 macOS/Linux。官方列出的測試環境包括 Linux 與 Apple silicon Mac;Windows 讀者可先選現有 WSL 環境依 Linux 步驟操作,本文不把它當作已驗證的原生 Windows 流程。

python3 --version

python3 -m venv .venv

source .venv/bin/activate

python -m pip install "indra-ocr==0.3.2"

indra-ocr --version

驗收點很簡單:最後一行應顯示 indra-ocr 0.3.2。版本依 PyPI 0.3.2 與 變更紀錄 固定;GitHub Releases 的發行標籤與 PyPI 套件版本未必同步,別只看頁面上那個 Latest。

②「先下載字典」:啟動本機 Viewer

indra-ocr-viewer --port 8765

第一次會從 Hugging Face 下載模型;官方說基本模型約 18 MB。等終端機出現網址後,在同一台電腦開啟 http://localhost:8765。這個 Viewer 是本機檢視器;程式綁定 127.0.0.1。先用自製練習文件,讓模型下載與首次載入發生在正式量測以前。

點 Drop a PDF or an image 選檔,左側 Source 先選 Auto。右側檢查文字,再開啟 Lines、Layout blocks、Reading order;改選 OCR 後按 Read again with these options,比較同一頁。

Indra OCR 本機 Viewer:Auto、行框、版面區塊與閱讀順序操作位置
Step 2.1 — 本機 Viewer 與自製繁中練習頁;左側選來源及框線,右側核對文字。畫面由 AlphaLab 執行 0.3.2 版擷取。

三、Indra OCR 文字層分流:用同一份 PDF 做兩次

擔心不知道輸出在哪?先把一張自己有權使用、可人工核對的文件命名為 paper.pdf,放在終端機目前所在目錄。以下各跑一頁、一個 worker,結果分別放進兩個資料夾,避免覆蓋:

indra-ocr paper.pdf --mode auto --format json --max-pages 1 --cores 1 --timings --out results-auto

indra-ocr paper.pdf --mode ocr --format json --max-pages 1 --cores 1 --timings --out results-ocr

用文字編輯器開啟兩個資料夾裡的 paper.jsonl。JSONL 是「每行一筆 JSON」,這裡每頁一筆;不是整份檔案外面再包一對方括號。CLI 的 page 欄位從 0 起算,第一頁是 0。這些細節可直接對照 輸出組裝方式。

  • 先讀 source:text 表示文字層,ocr 表示辨識,hybrid 表示文字層加圖片內 OCR,error 是頁面失敗。先看它,再評論準確率。
  • lines:每行有 box、text、conf;box 是 x0、y0、x1、y1。
  • blocks:每個區塊有 label、bbox、text;清單順序就是要核對的閱讀順序。
  • rotation、skew、timings、note:記下轉向、校斜、分段耗時與分流原因。框座標以影像像素表示;有旋轉時,先對齊轉正後頁面,別直接當 PDF 點數。

走一遍例子:看到文字正確,仍要檢查區塊

我們用五行自製文件跑過上述兩條路:標題是「文件擷取驗收練習」,內文含「品項:測試筆記本,數量:三本。」與一行英文。這張 Apple silicon Mac、0.3.2、預設 200 DPI、單 worker 的乾淨樣本,在 Auto 輸出 source=text,強制 OCR 輸出 source=ocr;兩者取得相同五行文字。

但輸出的第一個 Text 區塊合併了標題與前兩行內文,並未把標題獨立標成 Section-Header。若任務只是搜尋全文,這可能可接受;若要按照章節切資料,就需要另一條驗收規則。同一份輸出能不能用,取決於下游要它做什麼。這張示範不涵蓋雙欄、複雜表格或直排,也不代表繁中整體品質。

四、繁中辨識差?按四層找原因

③「先看抄哪一份」:文字來源

Auto 正確、OCR 錯得多時,先保留前者,查清楚它是否來自文字層。若 Auto 已有亂碼,再用 OCR 對照。--mode text 會在檢查未通過時仍採文字層,適合診斷,不能當成修復亂碼的開關。

④「框有沒有框到」:行與區塊偵測

漏掉整段、把兩欄框在一起時,先把框線疊回頁面。漏框屬於偵測問題;框得正確卻讀錯字,才進到辨識問題。2026 年 10 月 17 日的 Issue #6 有使用者回報中文內容區域定位不準,但未附足夠版本與樣本資訊;它是排查線索,不是全體中文表現的統計。

⑤「先讀左欄還是右欄」:閱讀順序

雙欄中英混排時,逐行對照左右欄的銜接,尤其圖說、頁首頁尾與跨欄標題。文字層預設可沿用 PDF 內容順序;想測試模型排序,可在 Auto 指令加 --model-order,另存結果後比較。不要先把所有框按 y 座標排序,那會把左右欄同一高度的句子交錯。

⑥「最後才逐字校對」:字元辨識

框和順序正確後,再數錯字、漏字、插入字。conf 是模型信心,不是人工正確率;0.3.0 變更紀錄也說低信心行可能保留框、文字卻為空。空字串因此值得記成失敗事件,不能當空白行直接丟掉。

若你要點選單字、逐詞標註,先確認輸出粒度。當日查到的 Line 資料結構 提供行框,區塊另有框;Issue #7 是詞級框需求。這篇流程只把行框與區塊框接入管線,不把需求單當成功能交付。

五、做四類小樣本,決定保留、前處理或換路線

先各準備一頁橫排繁中、雙欄中英混排、表格、直排,加上人工逐字對照稿。每份記下來源權利、是否帶文字層、頁面方向、版本與模型檔案。橫排練基本辨識;雙欄測排序;表格核對每格歸屬;直排用來確認邊界,別把它列成預期通過的 OCR 任務。

先訂任務門檻:例如搜尋筆記可以接受標題分類不準,但金額、姓名或條文編號可能要求逐項完全一致。這是你選的驗收條件,不是官方保證。字元錯誤率可用「替換+刪除+插入」除以人工稿字元數;比較前要固定空白、標點與全半形的處理方式,順序錯誤另外記,別全部揉成一個平均分。

測速度時,分開記下載與冷啟動,再對同樣檔案、DPI、核心數與模式重跑,記錄每頁 total_ms 及整批牆鐘時間。官方吞吐量是特定 CPU 與資料的結果,不能換算成你電腦的繁中品質;本篇不把一張短文件換算成每秒幾十頁的承諾。

  • 保留:任務所需的文字、順序與結構都過關,連同來源、頁碼、框與設定一起保存。
  • 改前處理:影像過暗或小字模糊,保留原檔,另做一份改善對比或解析度的版本;一次只改一項,再跑同一批樣本。提高 DPI 會增加影像像素,未必修得好區塊歸屬。
  • 換路線:直排、合併儲存格或跨列複雜表格不符合任務門檻時,改選對應能力的工具,再用同一份人工稿驗收;不以「安裝成功」當作完成。

公司要把結果接到 Agent 或文件服務,還有授權問題:程式碼是 Apache 2.0,模型則是修改版 OpenRAIL-M,兩者不同。部署前讀 模型授權全文,特別核對自己的商業用途與競爭性服務限制。把模型檔案另存、記錄雜湊;只固定 Python 套件版本,仍不足以證明兩次使用完全相同的權重。

常見問題:八個直接答案

Indra OCR 繁體中文能用嗎?

可以先評估。官方列入支援清單的是辨識能力範圍;先讓你的橫排樣本、關鍵字與閱讀順序通過,再接正式管線。

沒有 GPU 可以跑嗎?

可以。這套工具主打 CPU 管線;本篇的安裝與兩模式示範也走 CPU。先用一頁、一個 worker 起跑,觀察完成狀態。

Auto 全對,是不是 OCR 很準?

不一定。先看 source;text 表示使用文字層,只有同頁強制 OCR 對照,才是在看辨識路徑。

繁中直排能靠旋轉頁面解決嗎?

不能當作已支援。官方明列不支援直排;把橫排的倒置頁面轉正,和理解直排字序,是不同問題。

表格輸出成功就能匯入資料庫嗎?

不一定。仍要逐格核對欄名與值是否對齊,尤其合併儲存格與跨行文字。先用 帳單 OCR 證據與算術驗收 的思路檢查關鍵欄位。

行框可以直接當每個中文字的框嗎?

不可以直接這樣推。行框描述整行;若應用需要字或詞的座標,應先驗證那個粒度的實際輸出,不能把行寬平均切開就當準確標註。

模型下載後就完全不連網嗎?

不宜這樣假設。0.3.2 的變更紀錄說快取模型資料夾至多每日向 Hub 檢查一次;需要受控環境時,先備齊模型,再用 --model-dir 指向本機資料夾。

什麼時候適合接 AI 問答?

當來源、框、順序與關鍵字都達到你的門檻時。保留原頁證據,並把 source=error 或重要欄位缺漏送進明確的失敗流程,再送往下游。

給新手的三個重點

  • 先辨認文字來自哪條路,再評判工具。
  • 逐層核對來源、區塊、順序、字元;一個總分無法告訴你該修哪裡。
  • 先保存可回頭核對的原頁與 JSON,再擴大文件量。

接著閱讀

左右滑動查看更多推薦

下一步:先交出一頁能解釋的結果

今天先拿一張你能逐字核對的橫排文件,用 Auto 與 OCR 各跑一次。說清楚它走哪條路、哪個框有問題、順序是否合理,比一次處理一千頁更有價值。記住那個公式:來源選對+框對+順序對+字讀對。想繼續把文件擷取接成工作流,可以到 AlphaLab 課程;也可從 AI 專題 找下一個練習。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週最多三封:一封 Weekly 週報與最多兩封關鍵 Alpha Signal。

我們不會 spam,隨時可退訂。已訂閱?管理主題偏好(會寄登入連結到你的信箱)