OCRFlux」是什么?

      它是一款轻量级多模态大语言模型的工具包,主要功能是把PDF转换为Markdown文件,它的优势是可以解决复杂的排版解析、复杂的表格解析和跨页内容合并这些难点问题,同时它的识别准确率也尤为突出。受到广大用户的喜爱。

二、为什么我们要OCRFlux
     相信在大家在日常工作中肯定会用到将PDF转换为Markdown的场景,也许在看到今天这个工具之前,大家一定也会使用过其他的OCR识别工具。其实我也用过,比如olmOCR、Nanonets-OCR,MonkeyOCR等等。
     
     但是今天为什么推荐这个OCRFlux工具呢?因为它确实可以应对更复杂的PDF资料文件,并且准确率也更高。口说无凭,先看官方测评数据。
     
     单页面内容的测试(OCRFlux-bench-single)
用工具生成的Markdown与真实的Markdown之间的相似度(EDS)为指标。可以看出OCRFlux工具比其他的常用OCR识别工具更准确,达到了96.7%的分数。
Language
Model
Avg EDS ↑
English
olmOCR-7B-0225-preview
0.885
Nanonets-OCR-s
0.870
MonkeyOCR
0.828
OCRFlux-3B
0.971
Chinese
olmOCR-7B-0225-preview
0.859
Nanonets-OCR-s
0.846
MonkeyOCR
0.731
OCRFlux-3B
0.962
Total
olmOCR-7B-0225-preview
0.872
Nanonets-OCR-s
0.858
MonkeyOCR
0.780
OCRFlux-3B
0.967
    单页面复杂表格的测试(OCRFlux-pubtabnet-single)
同样使用工具生成HTML的表格与真实的HTML表格之间的相似度(TEDS)为指标。可以看出OCRFlux的结果总体分数也是最高的,达到86.1%的分数。
Type
Model
Avg TEDS ↑
Simple
olmOCR-7B-0225-preview
0.810
Nanonets-OCR-s
0.882
MonkeyOCR
0.880
OCRFlux-3B
0.912
Complex
olmOCR-7B-0225-preview
0.676
Nanonets-OCR-s
0.772
MonkeyOCR
0.826
OCRFlux-3B
0.807
Total
olmOCR-7B-0225-preview
0.744
Nanonets-OCR-s
0.828
MonkeyOCR
0.853
OCRFlux-3B
0.861
下面再来看看,跨页面的测试数据结果。

    跨页面内容的测试(OCRFlux-bench-cross)
使用的指标包括,精确率(Precision)、召回率(Recall)、准确率(Accuracy)和F1分数。它的总体准确率达到99.6%
Language
Precision ↑
Recall ↑
F1 ↑
Accuracy ↑
English
0.992
0.964
0.978
0.978
Chinese
1.000
0.988
0.994
0.994
Total
0.996
0.976
0.986
0.986

    跨页面复杂表格的测试OCRFlux-pubtabnet-cross
指标包括表格复杂度,和平均TEDS,同样可以看出它准确率都在90%以上。
Table type
Avg TEDS ↑
Simple
0.965
Complex
0.935
Total
0.950

    也许对于这些指标没有直观感受,只是一些数字,那么下面我们看看它真实识别效果。
     

三、核心功能包括哪些?

1、单页面识别场景:

1.1   跨列表格,当PDF中存在跨多列时,就难以准确判定单元格边界,容易导致识别不准确。可以直观地看出,OCRFlux识别的效果是比较准确的。

1.2合并单元格

当PDF中存在合并单元格的时候,特别容易识别出歧义,OCRFlux支持复杂表格结构的还原,因此可以准确识别其中的内容。

1.3多列

当PDF中存在多列的时候,经常会打乱常规的从左至右的阅读顺序,因此容易识别有误差,可以看下OCRFlux可以识别的结果,给出了正确的阅读顺序。

1.4多表格

单页pdf中的多表格,也会增加识别解析的复杂度,必须做出正确的切割,才能保证展示的正确,OCRFlux的识别也是没有问题的。

1.5多语言

一个PDF中混合多种语言,同样会增加识别难度,OCRFlux具备强大的语言识别和处理能力,可以精准识别这种混合语言的文档。

2、跨页段落/表格合并场景

2.1跨页表格

每天节省2小时!打工人都在用的开源OCR工具OCRFlux。

PDF中经常遇到表格跨页分离,增加了OCR的识别难度,OCRFlux可以自动检测合并表格元素,无缝对接上下页的内容,输出正确的结果。

2.2表格垂直拆分

多列表格的PDF中,经常出现纵向分离,导致理解数据和重组数据存在困难,OCRFlux可以精确的识别出这种场景,可以看下效果。

2.3表头重复

在跨页表格的PDF中,表格的页眉重复也会导致OCR识别错误,OCRFlux可以智能合并跨页内容,自动删除多余的页眉。

2.4单元格多行拆分

内容跨页超长单元格特别容易导致识别错误,OCRFlux也可以智能合并保留完整的数据内容。


四、主要应用场景?

学术研究:对于学术文档、复杂的文献都可以使用OCRFlux转换为Markdown进行修改。

技术文档:对于PDF格式技术文档,特别是英文的文档,可以可以使用OCRFlux转换为Markdown文件。

单据的识别:比如财务单据、票据等PDF格式,都可以转换为Markdown格式进行修改存储。

五、如何部署?
部署方式:
1、源码部署
通过Conda创建一个Python环境来安装。
conda create -n ocrflux python=3.11conda activate ocrflux
git clone https://github.com/chatdoc-com/OCRFlux.gitcd ocrflux
pip install -e . --find-links https:///whl/cu124/torch2.5/flashinfer/
2、本地使用方式
PDF转Markdown:
python -m ocrflux.pipeline ./localworkspace --data test.pdf --model /model_dir/OCRFlux-3B
图片转Markdown
python -m ocrflux.pipeline ./localworkspace --data test_page.png --model /model_dir/OCRFlux-3B
批量PDF转Markdown:
python -m ocrflux.pipeline ./localworkspace --data test_pdf_dir/* --model /model_dir/OCRFlux-3B
结果都会保存./localworkspace/results目录中。也可以设置–skip_cross_page_merge 跳过解析过程的跨页面合并,把各个页面的解析结果快速拼接起来,生成一个Markdown文件。

3、Docker部署
docker run -it --gpus all   -/path/to/localworkspace:/localworkspace   -/path/to/test_pdf_dir:/test_pdf_dir/   -/path/to/OCRFlux-3B:/OCRFlux-3B   chatdoc/ocrflux:latest /localworkspace --data /test_pdf_dir/* --model /OCRFlux-3B/
使用下面命令生成Markdown文件,生成的文件默认保存在./localworkspace/markdowns/DOCUMENT_NAME目录里。
python -m ocrflux.jsonl_to_markdown ./localworkspace
五、项目地址

https://github.com/chatdoc-com/OCRFlux

https://ocrflux./

今天的分享就到这里,感谢大家的阅读。如果你最近也要使用PDF转换为Markdown格式,可以试试这个工具。