OCRFlux:一個基于LLM的復雜布局與跨頁合并的PDF文檔解析 原創
在數字化辦公和信息處理的浪潮中,文檔解析技術一直是關鍵的幕后英雄。無論是學術研究、金融分析,還是日常辦公,我們都需要將紙質文檔或PDF文件中的內容高效、準確地轉化為可編輯、可理解的格式。然而,現有的文檔解析工具雖然眾多,卻仍存在諸多痛點。今天,我們要介紹的OCRFlux,正是為了解決這些問題而生。
一、現有文檔解析工具的局限性
現有的文檔解析工具雖然吸引了眾多用戶,但在實際使用中,它們的局限性也逐漸暴露出來。首先,對于復雜布局的頁面和結構復雜的表格,現有方法常常力不從心。例如,當表格中存在跨行或跨列的單元格時,解析后的輸出往往不完整且錯位。其次,PDF文檔通常以分頁形式呈現,這導致表格或段落可能被分割到連續的兩頁上,但現有的工具卻無法處理跨頁的段落和表格合并,它們只是簡單地將每一頁的內容拼接起來,完全忽略了邏輯上的連貫性,從而導致表格和段落的碎片化。此外,許多最先進的工具依賴于擁有超過70億參數的模型,這使得它們在推理效率和部署效率上受到極大限制。
二、OCRFlux的創新與優勢
為了克服上述問題,OCRFlux應運而生。它是一個基于多模態大型語言模型的工具包,旨在將PDF和圖像轉換為清晰、可讀的純Markdown文本,并將當前的技術水平提升到一個全新的高度。OCRFlux具有以下關鍵特性,使其在眾多工具中脫穎而出。
(一)單頁解析的卓越品質
在單頁解析方面,OCRFlux表現出色。與現有的基準模型olmOCR-7B-0225-preview、Nanonets-OCR-s和MonkeyOCR相比,它在我們發布的基準測試OCRFlux-bench-single上分別實現了0.095(從0.872到0.967)、0.109(從0.858到0.967)和0.187(從0.780到0.967)的更高編輯距離相似性(EDS)。這些改進主要來自于對復雜表格的高質量解析,尤其是在需要跨行和跨列合并單元格的情況下。具體細節可以參考我們的評估和交互式比較部分。
(二)原生支持多頁文檔解析
與現有工具簡單地按頁拼接內容不同,據我們所知,OCRFlux是第一個能夠自動檢測并合并跨頁元素以產生連貫文檔結構的文檔解析工具。在我們的基準測試中,它以98.3%的高準確率實現了這一點。它甚至能夠在頁面分割的情況下重建完整的表格,即使在諸如表頭重復、多行單元格分割和表格垂直分割等復雜場景中也是如此。我們在交互式比較部分提供了一些真實世界的跨頁表格。此外,實驗表明,在我們的基準測試中,參考表格和重建表格之間的樹編輯距離相似性(TEDS)得分平均達到0.950。更多詳情請參考我們的評估部分。
(三)高效率與緊湊模型尺寸
OCRFlux僅包含30億參數,這使其在實現更好性能的同時具有極高的效率。與70億參數的基準模型相比,OCRFlux在GTX 3090 GPU上實現了約3倍的更高吞吐量,從而在實際應用中,尤其是在計算資源有限的情況下,能夠實現更快的推理和更廣泛的應用。
三、OCRFlux的交互式比較
(一)單頁解析

- 列跨表與合并單元格:當表格單元格跨越多列時,確定單元格邊界和關系變得十分困難。跨行或跨列合并的單元格模糊了底層結構,導致識別單個單元格及其內容時出現歧義。OCRFlux能夠精確地恢復它們,因為它在訓練數據中使用HTML格式來表示表格,這自然支持表示復雜表格。
- 多欄布局:具有多欄的文檔會破壞典型的從左到右的閱讀順序,需要復雜的算法來重建跨欄的文本元素之間的正確順序和關系。OCRFlux能夠準確識別多欄布局,并將其轉換為具有自然閱讀順序的清晰Markdown。
- 多表:單頁上的多個表格增加了表格檢測和解析的復雜性,要求系統能夠區分不同的表格并正確地對每個表格進行分割。OCRFlux的整文件解析能力在解析過程中通過識別和分離它們來有效處理多個表格。
- 多語言:處理同一文檔中的不同語言需要強大的語言識別和處理能力,因為不同書寫系統的特性可能差異很大。OCRFlux支持解析包含混合英語和中文內容的文檔。
(二)跨頁段落/表格合并

- 跨越三頁的表格:標準的PDF分頁通常會將表格分割到不同的頁面上,這使得OCR系統難以準確地重建它們。OCRFlux通過自動檢測和合并碎片化的表格元素并匹配其表頭,從而實現了無縫且準確的輸出。
- 表格垂直分割:具有眾多列的表格通常會垂直分割到多個頁面上,這給理解和準確地重新連接邏輯上相關的片段帶來了挑戰。OCRFlux通過其先進的跨頁表格合并能力有效地解決了這一問題。
- 表頭重復:當表格跨越多個頁面時,表頭通常會在每一頁上重復,這可能會混淆OCR系統并導致誤解。OCRFlux通過無縫合并跨頁內容,刪除多余的表頭,同時保留必要的表格數據來解決這一問題。
- 多行單元格分割:內容較多的單元格可能會跨越多個頁面,這給正確合并這些碎片化的行以保持數據完整性帶來了挑戰。OCRFlux有效地確保了完整的、準確的單元格內容在最終輸出中得以保留。
四、構建OCRFlux
(一)單頁解析訓練
為了確保OCRFlux-3B模型在單頁解析方面的高質量,我們使用我們的私有文檔數據集來訓練模型。這些數據集包含大約110萬頁,主要來自金融和學術文件。它們都經過多輪人工標注和檢查,以確保標注質量。此外,我們還使用了公共olmOCR-mix-0225數據集中的部分數據(約25萬頁)。特別地,我們發現GPT-4o在包含表格的頁面上的真實標簽質量較差,因此我們在訓練中過濾掉了它們。
與olmOCR等先前的工作不同,我們的模型僅使用頁面圖像作為輸入,而不是任何元數據,如文本塊及其位置。這一決定與RolmOCR中的決策一致。這不會損害我們模型的準確性,反而會顯著減少提示長度,從而降低處理時間和內存消耗。此外,它還可以避免因損壞的元數據或OCR結果(如錯誤讀取的字符、錯誤的閱讀順序和內容缺失)而可能引起的潛在錯誤。
由于Markdown本身無法自然地表示具有rowspan和colspan單元格的復雜表格,我們在訓練數據中使用HTML格式來表示表格。表格解析的示例可以在交互式比較部分找到。
(二)跨頁段落/表格合并訓練
PDF文檔通常以分頁形式呈現,這常常導致表格或段落被分割到連續的頁面上。準確地檢測并合并這些跨頁結構對于避免生成不完整或碎片化的內容至關重要。
檢測任務可以表述如下:給定兩個連續頁面的Markdowns——每個都結構化為Markdown元素(例如,段落和表格)的列表——目標是識別出應該跨頁合并的元素的索引。
然后對于合并任務,如果要合并的元素是段落,我們可以簡單地將它們連接起來。然而,對于兩個表格片段,它們的合并要復雜得多。詳細的示例可以參考交互式比較部分。
為了訓練模型執行檢測和合并任務,我們在訓練中使用了大約45萬份樣本用于檢測任務,10萬份樣本用于合并任務。它們都來自我們的私有數據集。
我們沒有分別訓練單頁解析和跨頁合并任務,而是將它們一起在同一個多模態LLM中聯合訓練,使用不同的提示。這有助于將這兩種能力整合到一個單一模型中,使其在推理時更加強大和高效。
五、評估
(一)單頁解析評估
在單頁解析評估中,我們將OCRFlux-3B模型與olmOCR-7B-0225-preview和Nanonets-OCR-s作為基線進行比較。我們使用了兩個基準測試:
- OCRFlux-bench-single:包含2000個PDF頁面(1000個英文頁面和1000個中文頁面)及其真實Markdowns(經過多輪人工標注和檢查)。
- OCRFlux-pubtabnet-single:從公共PubTabNet基準測試中衍生而來,經過一些格式轉換。它包含9064個HTML表格樣本,根據它們是否具有rowspan和colspan單元格,被分為簡單表格和復雜表格。
我們強調,發布的基準測試數據并未包含在我們的訓練和評估數據中。以下是主要結果:
在OCRFlux-bench-single中,我們計算生成的Markdowns與真實Markdowns之間的編輯距離相似性(SED)作為評估指標。
語言 | 模型 | 平均EDS↑ |
英語 | olmOCR-7B-0225-preview | 0.885 |
Nanonets-OCR-s | 0.870 | |
MonkeyOCR | 0.828 | |
OCRFlux-3B | 0.971 | |
中文 | olmOCR-7B-0225-preview | 0.859 |
Nanonets-OCR-s | 0.846 | |
MonkeyOCR | 0.731 | |
OCRFlux-3B | 0.962 | |
總計 | olmOCR-7B-0225-preview | 0.872 |
Nanonets-OCR-s | 0.858 | |
MonkeyOCR | 0.780 | |
OCRFlux-3B | 0.967 |
在OCRFlux-pubtabnet-single中,我們計算生成的HTML表格與真實HTML表格之間的基于樹編輯距離的相似性(TEDS)作為評估指標。
類型 | 模型 | 平均TEDS↑ |
簡單 | olmOCR-7B-0225-preview | 0.810 |
Nanonets-OCR-s | 0.882 | |
MonkeyOCR | 0.880 | |
OCRFlux-3B | 0.912 | |
復雜 | olmOCR-7B-0225-preview | 0.676 |
Nanonets-OCR-s | 0.772 | |
MonkeyOCR | 0.826 | |
OCRFlux-3B | 0.807 | |
總計 | olmOCR-7B-0225-preview | 0.744 |
Nanonets-OCR-s | 0.828 | |
MonkeyOCR | 0.853 | |
OCRFlux-3B | 0.861 |
您可以在交互式比較部分查看olmOCR-7B-0225-preview和OCRFlux-3B輸出的比較示例。
(二)跨頁段落/表格合并評估
在跨頁段落/表格合并評估中,由于olmOCR-7B-0225-preview和Nanonets-OCR-s沒有相應的功能,我們僅報告OCRFlux-3B的結果。我們同樣使用了兩個基準測試:
- OCRFlux-bench-cross:包含1000個樣本(500個英文樣本和500個中文樣本),每個樣本包含兩個連續頁面的Markdown元素列表,以及需要合并的元素的索引(經過多輪人工檢查后標注)。如果沒有表格或段落需要合并,則注釋數據中的索引為空。
- OCRFlux-pubtabnet-cross:包含9064對分割的表格片段,以及它們對應的合并后的版本。
發布的基準測試數據同樣未包含在我們的訓練和評估數據中。以下是主要結果:
在OCRFlux-bench-cross中,我們計算了準確率、精確率、召回率和F1分數作為評估指標。注意,只有當它準確判斷出兩個頁面之間是否有需要合并的元素并輸出正確的索引時,檢測結果才算正確。
語言 | 精確率↑ | 召回率↑ | F1↑ | 準確率↑ |
英語 | 0.992 | 0.964 | 0.978 | 0.978 |
中文 | 1.000 | 0.988 | 0.994 | 0.994 |
總計 | 0.996 | 0.976 | 0.986 | 0.986 |
在OCRFlux-pubtabnet-cross中,我們計算生成的合并表格與真實合并表格之間的基于樹編輯距離的相似性(TEDS)作為評估指標。
表格類型 | 平均TEDS↑ |
簡單 | 0.965 |
復雜 | 0.935 |
總計 | 0.950 |
您也可以在交互式比較部分查看我們OCRFlux-3B模型的跨頁段落/表格合并示例。
六、獲取OCRFlux
OCRFlux的首次發布包括演示、模型權重、我們的基準測試、博客文章,最重要的是,一個高效的推理管道。
訪問我們的GitHub倉庫以安裝olmOCR并探索文檔。然后,在帶有GPU的機器上,只需運行以下命令:
python -m ocrflux.pipeline ./localworkspace --data test.pdf --model /model_dir/OCRFlux-3BOCRFlux的出現,無疑為文檔解析領域帶來了新的曙光。它不僅解決了現有工具在復雜布局和跨頁合并方面的不足,還以更高效的模型尺寸和出色的性能,為用戶提供了更優質的選擇。無論是學術研究、金融分析,還是日常辦公,OCRFlux都能幫助你更高效地處理文檔,釋放更多時間和精力去專注于核心任務。趕快去GitHub體驗一下吧,讓OCRFlux成為你文檔處理的得力助手!
本文轉載自???Halo咯咯??? 作者:基咯咯

















