opendatalab / MinerU

A one-stop, open-source, high-quality data extraction tool, supports PDF/webpage/e-book extraction.一站式开源高质量数据提取工具,支持PDF/网页/多格式电子书提取。
https://opendatalab.com/OpenSourceTools
GNU Affero General Public License v3.0
13.67k stars 1.02k forks source link

图片PDF识别遗漏表格中间的文字 #384

Closed albertshx closed 1 month ago

albertshx commented 3 months ago

Description of the bug | 错误描述

对于一个图片型pdf, 一页中间有表格也有文字的. minerU 把表格提取成了图片, 却遗漏了表格中间的文字. 效果截图(线上demo) lQLPKIIQ0YeosD_NA4bNBx2wdJxHAVSnnQoGn0Eea-_RAA_1821_902

对应的PDF文件 origin (dragged).pdf

How to reproduce the bug | 如何复现

线上官方demo.

本地运行 magic-pdf -p xx.pdf -o output 结果一样

Operating system | 操作系统

Linux

Python version | Python 版本

3.10

Software version | 软件版本 (magic-pdf --version)

0.6.x

Device mode | 设备模式

cuda

myhloli commented 3 months ago

测试这篇文档比较特殊,中间看到的那部分字其实是张贴图,程序使用api没有从pdf中提取到任何文本,最后画框的时候只圈到了唯一的一个文本“/”。 对于这种pdf,可以使用命令行中增加 --method ocr 参数,手动强制使用ocr模式。 线上demo目前是使用的auto模式,手动ocr开关在以后的版本会规划添加。 付:ocr解析样本 ocr.zip

myhloli commented 3 months ago

画框的逻辑后期也会更新,会尽量按照原始的识别区域绘制,减少对用户的误导。

albertshx commented 2 months ago

@myhloli 感谢! 我查看了OCR模式生成的md文件,想请教一下, 为什么小段落标题会当作图片的替换项目出现? 比如1.1待测设备描述
1.1待测设备描述 应该是正常文本. 观察到1.1 ~ 1.4小节都是这种情况。 但是1.5小节的标题,是解析成文本的。

另外想咨询一下, 对于这种纯图片型的文档, 能做到自动探测么?因为文档种类比较多, 不清楚哪些需要手动设置OCR模式?

myhloli commented 2 months ago

1.这个例子中,1.1~1.4是因为离表格太近了,被模型识别成为了table_caption,在上个版本发布时,恰好table_caption从[]外被调整到[]内,变成了你现在看到的替代文字的样式。 2.目前默认使用的auto模式,就是自动探测文档属性并判断是否需要开启ocr的,但是通常条件下需要更多页面信息的采样分析,对于一页两页的demo属性分析不一定很准。即便是获取了更多信息的情况下,分类也不是100%准确的,所以在遇到效果不佳(通常需要人来对结果检测)的情况需要将这部分pdf手动开启ocr来重跑流程并分析效果。 如果你的某一批文档大都是这种类型,可以在解析前提前手动强制开启ocr,通过--method ocr 参数即可。

albertshx commented 2 months ago

好的. 感谢!