Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【测试】Umi-OCR 支持PDF文档识别啦 #333

Closed
hiroi-sora opened this issue Jan 26, 2024 · 28 comments
Closed

【测试】Umi-OCR 支持PDF文档识别啦 #333

hiroi-sora opened this issue Jan 26, 2024 · 28 comments

Comments

@hiroi-sora
Copy link
Owner

预览截图:

image

扫描件转为双层可搜索PDF 示例:

image

测试下载:

https://github.com/hiroi-sora/Umi-OCR/releases/tag/alpha%2F2.1.0

有任何与测试版文档识别有关的问题,可以在本issue下回复。如果有需要,请上传你的PDF文件,以供问题定位。

@hiroi-sora hiroi-sora pinned this issue Jan 26, 2024
@dapaning
Copy link

dapaning commented Jan 27, 2024

可以支持GPU加速吗?ocrpdf时,CPU跑满了,运行其他任务会很卡
image

@hiroi-sora
Copy link
Owner Author

hiroi-sora commented Jan 27, 2024

现在我手上没显卡😂等我过段时间买张显卡,再研究下GPU加速怎么弄。

在本地进行大批量OCR,本来就是高负载型任务。建议在空闲时间进行。

@WXH-qingmei
Copy link

大佬。什么时候整表单识别生成excel之类的呀

@Fred2998
Copy link

转换PDF文件时,会报一个错误。PDF文件来源:在.txt文件中输几个字然后打印成PDF。
image
Uploading a002.pdf…

@hiroi-sora
Copy link
Owner Author

@Fred2998 你的PDF没有上传成功,麻烦重新上传一次。

我在本地按照你的方法,txt用WPS转为PDF,没有复现相同问题。

@Fred2998
Copy link

是按Ctrl + P 打印成PDF。PDF已打包附加
pdf.zip

@hiroi-sora
Copy link
Owner Author

hiroi-sora commented Jan 30, 2024

@Fred2998 感谢提供样例,已确认是“构建字体子集”步骤的报错。

PDF会内嵌字体文件,完整的中文字体会占用大量空间。Umi在输出PDF时,会删减字体,仅留下出现过的字符,以便节省存储空间。

但是直接用txt按 Ctrl+P 打印为PDF,我估计PDF内嵌的字体文件格式不标准(甚至根本没有内嵌字体),导致Umi该步骤出错。

按正常方式渲染出来的PDF(如WPS或Adobe)则不会这个问题。

我暂时为该步骤加了个try,以避免非标准格式的影响。构建字体子集失败 不会影响双层PDF文件保存了。

如有需要,你可以更新补丁:用记事本打开 UmiOCR-data/py_src/ocr/output/output_pdf_layered.py ,替换为 这里的代码

@Fred2998
Copy link

替换成新代码后可以了。我这里做了一个带表格的采购订单PDF,识别后顺序都错乱了。PDF已打包附加
pdf采购订单.zip

@shenhuxiad
Copy link

大佬,能整一个GPU加速识别的功能吗,我的16核吃满了,200多M的pdf,7百多页,花了十多分钟。

@qwedc001
Copy link
Contributor

大佬,能整一个GPU加速识别的功能吗,我的16核吃满了,200多M的pdf,7百多页,花了十多分钟。

GPU 和 CPU 用的完全不是一套模型,然后在代码的处理上也会有一些区别,不能直接把 CPU 版本的代码套用到 GPU 上。
我正在着手适配 rapidOCR 的 GPU版本,如果适配成功了会发在我的repo上。

@trial03
Copy link

trial03 commented Jan 31, 2024

可支持指定区域识别吗?

@hiroi-sora
Copy link
Owner Author

可支持指定区域识别吗?

支持忽略区域功能(黑名单机制),可以划定多个矩形区域,忽略区域内的文本。也就是“指定区域识别”的倒过来。

@Mingxiangyu
Copy link

大佬,可以整一个GPU加速识别的功能吗

现在我手上没显卡😂等我过段时间买张显卡,再研究下GPU加速怎么弄。

在本地进行大批量OCR,本来就是高负载型任务。建议在空闲时间进行。

大佬,可以试试GPU加速,这种任务如果用GPU来解决对比CPU的话能实现质的飞跃,是不是可以尝试租GPU服务器,或者用Google 的 colab (免费的深度学习GPU环境)https://blog.csdn.net/qq_43961619/article/details/123430413

@hiroi-sora
Copy link
Owner Author

colab和GPU服务器我都用过。但本项目的定位是面向个人大众的、简便易用的工具软件,而不是一个服务端组件。我们需要个人电脑GPU环境来开发和调试Umi,而不是服务器环境。

已有开发者正在着手GPU版OCR引擎插件的开发,可关注: https://github.com/qwedc001/RapidOCR-json-gpu

@xiaoye-520
Copy link

image
批量文档的这个折叠无效,你们会有吗

@xiaoye-520
Copy link

大佬,可以整一个GPU加速识别的功能吗

现在我手上没显卡😂等我过段时间买张显卡,再研究下GPU加速怎么弄。
在本地进行大批量OCR,本来就是高负载型任务。建议在空闲时间进行。

大佬,可以试试GPU加速,这种任务如果用GPU来解决对比CPU的话能实现质的飞跃,是不是可以尝试租GPU服务器,或者用Google 的 colab (免费的深度学习GPU环境)https://blog.csdn.net/qq_43961619/article/details/123430413

火绒那种利用cpu集显加速的那种可以吗
image

@qwedc001
Copy link
Contributor

大佬,可以整一个GPU加速识别的功能吗

现在我手上没显卡😂等我过段时间买张显卡,再研究下GPU加速怎么弄。
在本地进行大批量OCR,本来就是高负载型任务。建议在空闲时间进行。

大佬,可以试试GPU加速,这种任务如果用GPU来解决对比CPU的话能实现质的飞跃,是不是可以尝试租GPU服务器,或者用Google 的 colab (免费的深度学习GPU环境)https://blog.csdn.net/qq_43961619/article/details/123430413

火绒那种利用cpu集显加速的那种可以吗 image

你好,我正在研究GPU方向加速,如果感兴趣的话你可以联系我。

集显加速的第一个问题是,我不清楚集显加速所调用的接口是什么,他的依赖是什么,这些和现有引擎项目已经提供的内容几乎无关,开发要从头开始。而独显方面在原项目上已经完成对GPU的开发,理论上来说只需要编译并且加入对应依赖即可使用。

集显加速效率肯定不如独显,目前能测试出来独显的识别速度为0.2s/张,不过我这里需要额外帮助。目前我编译出来的文件原因不明的只能在我本人的电脑上运行。解决了这个问题我们就可以发布独显版本的Umi-OCR插件(目前只支持N卡,因为原项目也只提供了N卡支持)

@WXH-qingmei
Copy link

大佬 新年快乐 我想我下你电脑CPU几代的 上次问了你 你说有可能cpu不兼容的问题。。然后我配了个I 5 146K 这个cpu能OK吗

@WXH-qingmei
Copy link

还是初始化环境失败 是不是需要将模型按照才可以呢 大佬。。

@qwedc001
Copy link
Contributor

还是初始化环境失败 是不是需要将模型按照才可以呢

你好,如果不确定PaddleOCR能否在你的机器上使用,请优先尝试使用RapidOCR。
(同时,建议在提出问题的时候附带报错截图,这样能方便可以提供帮助的开发者定位出现的问题。)

@xiaoye-520
Copy link

大佬,可以整一个GPU加速识别的功能吗

现在我手上没显卡😂等我过段时间买张显卡,再研究下GPU加速怎么弄。
在本地进行大批量OCR,本来就是高负载型任务。建议在空闲时间进行。

大佬,可以试试GPU加速,这种任务如果用GPU来解决对比CPU的话能实现质的飞跃,是不是可以尝试租GPU服务器,或者用Google 的 colab (免费的深度学习GPU环境)https://blog.csdn.net/qq_43961619/article/details/123430413

火绒那种利用cpu集显加速的那种可以吗 image

你好,我正在研究GPU方向加速,如果感兴趣的话你可以联系我。

集显加速的第一个问题是,我不清楚集显加速所调用的接口是什么,他的依赖是什么,这些和现有引擎项目已经提供的内容几乎无关,开发要从头开始。而独显方面在原项目上已经完成对GPU的开发,理论上来说只需要编译并且加入对应依赖即可使用。

集显加速效率肯定不如独显,目前能测试出来独显的识别速度为0.2s/张,不过我这里需要额外帮助。目前我编译出来的文件原因不明的只能在我本人的电脑上运行。解决了这个问题我们就可以发布独显版本的Umi-OCR插件(目前只支持N卡,因为原项目也只提供了N卡支持)

因为是笔记本使用独显很麻烦,可以看看插件源码吗

@qwedc001
Copy link
Contributor

因为是笔记本使用独显很麻烦,可以看看插件源码吗

请参考 hiroi-sora/RapidOCR-json/issues/13

@zwh1625
Copy link

zwh1625 commented Feb 27, 2024

设置保存为双层可搜索文档,但是保存的文件仍然只有原图,没有文字,记录里是识别出来文字的
image
image
image

@hiroi-sora
Copy link
Owner Author

@zwh1625

将这本PDF随便切几页,保存成小一点的pdf,上传上来看看。

@zwh1625
Copy link

zwh1625 commented Feb 28, 2024

@zwh1625

将这本PDF随便切几页,保存成小一点的pdf,上传上来看看。

切分之后能保存为双层文档,但是我又发现了一个问题,当我不切分而改为选定OCR范围时,保存的双层文档没问题但是它将整个文档全部进行了保存,而不是只保存我选定的那一部分
image
image

@hiroi-sora
Copy link
Owner Author

不切分而改为选定OCR范围时,将整个文档全部进行了保存

已修复该Bug。

切分之后能保存为双层文档

会不会是某一页程序无法处理,而切分后恰好去除了那一页?如果能找到这样一页,发上来我看看

@zwh1625
Copy link

zwh1625 commented Mar 1, 2024

不切分而改为选定OCR范围时,将整个文档全部进行了保存

已修复该Bug。

切分之后能保存为双层文档

会不会是某一页程序无法处理,而切分后恰好去除了那一页?如果能找到这样一页,发上来我看看

我又试了下,发现这个只有文件是这样,新版本选定OCR范围后,其他的文件都会只保存选定的范围,但是这个文件还是会保存整个文档并且没有二层的文字。我再用本软件保存的该文件尝试就可以正常保存指定范围且有二层文字,应该是原始文件的问题,但我没找到问题的原因,文件是这个
顾随诗词讲记.pdf

@hiroi-sora
Copy link
Owner Author

@zwh1625 感谢提供的样例。

经过测试,发现问题出在第7页。P7是个空白页,页面上似乎没有元素。只要OCR范围内包含P7,如 6~9 ,就会引发上述问题:保存整个文档且不含叠加层文字。

尝试用别的PDF文件插入一张空白页,没有复现该问题,依然功能正常。

我检查了我的代码,确信写法没有任何问题。因此,暂时只能将此问题归类为 “玄学” 了😂

@hiroi-sora hiroi-sora unpinned this issue Mar 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants