目前是否有任何服务或软件工具使用 Google Cloud Vision 作为 OCR 扫描 PDF 文件的后端?
如果没有,如何使用 Google Cloud Vision 将 PDF 转换为 OCRed PDF?据我所知,Cloud Vision 目前支持 PDF 文件,但它只会将识别的文本输出为 JSON 文件。因此,似乎需要执行额外的步骤,将转换后的文本放置在 Google Cloud Vision 之外的 PDF 内的图像顶部,这是一个单独的步骤。
背景:
我经常需要将扫描文档 PDF 文件转换为包含 ORed 文本图层的 PDF 文件。到目前为止,我一直在使用 OCRKit 或 ABBYY FineReader 等软件。我根据 Google Cloud Vision 的文本识别能力测试了这些解决方案的准确性,后者遥遥领先。
正如其他人提到的,您需要使用第三方工具来执行此操作。
首先使用 gcv2hocr 将 google 云视觉响应 json 转换为 hocr 文件:
gcv2hocr test.jpg.json output.hocr
然后使用hocr-tools将hocr数据拼接到pdf文件中。以下命令将查找“imgdir”文件夹并将同名的 .hocr 和 .jpg 合并到 out.pdf 中的页面中。
hocr-pdf --savefile out.pdf <imgdir>
正如您提到的,由 Vision API 检索的响应仅适用于 JSON 格式;因此,需要通过使用第三方库在您的解决方案中包含一个额外的步骤,以便根据响应的内容创建 PDF 文件。
如果此功能不能满足您当前的需求,您可以使用位于服务公共文档左下角和右上角的发送反馈按钮,以及查看问题跟踪器 工具,以便提出 Vision API 功能请求 并向 Google 通知此所需功能。
从 PDF 开始并使用 Vision 的 文档文本检测的解决方案:
gcv2hocr 适用于非常具体的视觉 json 格式,而不是文档文本检测的输出。我重构了该代码以创建正确的 hocr。
第二个问题是 hocr-pdf 首先采用 jpeg 图像而不是 pdf。我重构了 hocr-pdf 并包含了 pdf2image。
image=convert_from_path(imageFilePath)[0]
image_obj=io.BytesIO()
image.save(image_obj,format='jpeg')
image_obj.seek(0)
image_obj=ImageReader(image_obj)
can=Canvas(savefile,pagesize=letter)
width,height=image.size
width *= (72 / 200)
height *= (72 / 200)
can.setPageSize((width, height))
can.drawImage(image_obj, 0, 0, width=width, height=height)
load_invisible_font()
add_text_layer(can,height)
can.showPage()
can.save()
这比 pypdf2 解决方案更好,因为它首先通过将其转换为图像来删除任何现有的隐藏文本层。
我是新手,但有能力安装 python 并运行 pip 命令。
我很期待这样的事情。 我有一堆 PDF,我想使用 google Vision 完成 OCR。 我启用了谷歌云帐户和视觉 API。 我还能够获取 json 格式的信用文件。已检查,工作正常。
我可以请求您提供完整的 pyhton 脚本,该脚本会将原始 PDF 发送到 OCR 并下载完成 OCR 后的最终 PDF。
提前致谢。