MinerU 管線分析:PDF 解析的 Layout-OCR 二階段架構
前言
PDF 解析一直是文件處理領域的核心挑戰。不同於純文字檔案,PDF 內含複雜的版面配置——多欄排版、表格、圖片、數學公式——這些都讓自動化解析變得困難。
MinerU(又名 MagicPDF)是上海 AI Lab 開源的 PDF 解析工具,其核心採用 Layout-OCR 二階段架構。本文將拆解這個管線的設計思路與技術細節。
二階段架構總覽
MinerU 的處理流程分為兩個明確的階段:
- Layout Detection(版面偵測):辨識頁面上每個區域的類型——標題、段落、表格、圖片、公式等
- Content Recognition(內容辨識):對每個偵測到的區域進行對應的內容擷取——OCR 文字、表格結構化、公式轉 LaTeX
這種分治策略的好處是各階段可以獨立優化,且能根據區域類型選擇最適合的辨識模型。
Stage 1:Layout Detection
版面偵測的任務是在 PDF 頁面(渲染為圖片)上定位並分類各個元素。MinerU 使用的是基於 LayoutLMv3 和 YOLOv8 的混合方案。
偵測類別
模型需要區分的元素類型包括:
- Title / Section Header(標題)
- Text Block(文字段落)
- Figure(圖片)
- Table(表格)
- Formula(數學公式)
- Header / Footer(頁首頁尾)
- Caption(圖表說明)
閱讀順序推斷
偵測完各區域後,還需要推斷正確的閱讀順序。對單欄文件這很直覺,但多欄排版就需要額外的邏輯。MinerU 使用了基於幾何位置的排序演算法,結合欄位偵測來處理這個問題。
Stage 2:Content Recognition
根據 Stage 1 辨識出的區域類型,Stage 2 會啟動不同的辨識引擎:
文字 OCR
對文字區域,MinerU 支援兩種路徑:
- Text-based PDF:直接從 PDF 內部結構提取文字座標,不需要 OCR
- Image-based PDF:使用 PaddleOCR 進行光學字元辨識
這個分支判斷是自動的——MinerU 會偵測 PDF 頁面是否內含可提取的文字層。
表格結構化
表格辨識是最複雜的部分。MinerU 使用了 TableMaster 模型來辨識表格結構(行、列、合併儲存格),再結合 OCR 結果填入內容,最終輸出 HTML table 格式。
公式辨識
數學公式使用 UniMERNet 模型,將公式圖片轉換為 LaTeX 語法。支援行內公式和獨立公式兩種模式。
管線整合與輸出
兩個階段的結果最終被整合為結構化的 Markdown 或 JSON 輸出。每個元素都保留了:
- 在原始頁面上的位置座標(bounding box)
- 元素類型標記
- 辨識後的文字或結構化內容
- 閱讀順序編號
小結
MinerU 的二階段架構體現了「先定位再辨識」的設計哲學。相比端到端的方案,這種模組化設計更容易維護和調整。不過也有其限制——兩階段之間的錯誤會累積,Layout Detection 的失誤會直接影響後續辨識的品質。
對於需要處理大量 PDF 文件的場景(學術論文、技術文件、報告),MinerU 提供了一個開源且效果不錯的選擇。