Umi-OCR icon indicating copy to clipboard operation
Umi-OCR copied to clipboard

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

Open hiroi-sora opened this issue 5 months ago • 12 comments

预览截图:

image

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

image

测试下载:

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

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

hiroi-sora avatar Jan 26 '24 15:01 hiroi-sora

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

dapaning avatar Jan 27 '24 08:01 dapaning

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

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

hiroi-sora avatar Jan 27 '24 11:01 hiroi-sora

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

WXH-qingmei avatar Jan 28 '24 16:01 WXH-qingmei

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

Fred2998 avatar Jan 29 '24 01:01 Fred2998

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

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

hiroi-sora avatar Jan 29 '24 09:01 hiroi-sora

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

Fred2998 avatar Jan 30 '24 02:01 Fred2998

@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 ,替换为 这里的代码

hiroi-sora avatar Jan 30 '24 03:01 hiroi-sora

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

Fred2998 avatar Jan 30 '24 06:01 Fred2998

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

shenhuxiad avatar Jan 30 '24 12:01 shenhuxiad

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

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

qwedc001 avatar Jan 31 '24 01:01 qwedc001

可支持指定区域识别吗?

trial03 avatar Jan 31 '24 07:01 trial03

可支持指定区域识别吗?

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

hiroi-sora avatar Jan 31 '24 07:01 hiroi-sora

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

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

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

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

Mingxiangyu avatar Feb 07 '24 01:02 Mingxiangyu

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

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

hiroi-sora avatar Feb 08 '24 03:02 hiroi-sora

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

xiaoye-520 avatar Feb 13 '24 06:02 xiaoye-520

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

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

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

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

xiaoye-520 avatar Feb 13 '24 06:02 xiaoye-520

大佬,可以整一个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 avatar Feb 13 '24 12:02 qwedc001

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

WXH-qingmei avatar Feb 17 '24 01:02 WXH-qingmei

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

WXH-qingmei avatar Feb 17 '24 08:02 WXH-qingmei

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

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

qwedc001 avatar Feb 17 '24 09:02 qwedc001

大佬,可以整一个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卡支持)

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

xiaoye-520 avatar Feb 23 '24 06:02 xiaoye-520

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

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

qwedc001 avatar Feb 23 '24 14:02 qwedc001

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

zwh1625 avatar Feb 27 '24 08:02 zwh1625

@zwh1625

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

hiroi-sora avatar Feb 27 '24 09:02 hiroi-sora

@zwh1625

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

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

zwh1625 avatar Feb 28 '24 13:02 zwh1625

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

已修复该Bug。

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

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

hiroi-sora avatar Feb 28 '24 14:02 hiroi-sora

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

已修复该Bug。

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

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

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

zwh1625 avatar Mar 01 '24 09:03 zwh1625

@zwh1625 感谢提供的样例。

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

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

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

hiroi-sora avatar Mar 01 '24 12:03 hiroi-sora