完全在浏览器中运行 OCR(并让扫描 PDF 变得可编辑)

星海拾光AI 前沿📡 BestBlogs·AI高分精选⭐ 862026-10-14173 阅读💛 30 收藏
完全在浏览器中运行 OCR(并让扫描 PDF 变得可编辑)

📌 One-Sentence Summary

作者描述了 PDFkind 的构建过程,这是一个客户端 PDF 应用,利用 PaddleOCR 和 Tesseract 在浏览器中完全进行 OCR,从而使扫描文档变得可编辑。

📝 Summary

本文详细介绍了创建一个注重隐私的 PDF 编辑器的技术历程,该编辑器文档永远不会离开用户设备。文章比较了 Tesseract.js 与 PaddleOCR,最终选择了使用 ONNX Runtime Web 和 WebAssembly 的混合方法来处理真实照片。作者还涵盖了诸多挑战,如处理倾斜文本、在 TypeScript 中实现自定义后处理,以及通过匹配字体和颜色将输出结果转换为可编辑文本框的逻辑。

💡 Main Points

通过客户端 OCR 实现最大化保护

为了确保合同或护照等敏感文档不会离开设备,该应用避免了云端 API,并在浏览器本地运行所有图像处理。

PaddleOCR 在真实场景中优于 Tesseract.js

虽然 Tesseract.js 适用于平面扫描,但在处理带有阴影和倾斜的手机时会失效。PaddleOCR 的神经网络检测器能更好地处理这些不规则情况。

通过 ONNX Runtime Web 和 WASM 进行实现

作者将 PaddleOCR 模型转换为 ONNX 以在 WebAssembly 中运行,这需要约 20MB 的下载,并使用单线程执行以避免复杂的 SharedArrayBuffer 需求。

支持多语言的混合方法

作者使用 PaddleOCR 进行文本检测,使用 Tesseract 进行文本识别(特别是针对阿拉伯语),因为 PaddleOCR 的识别器在某些脚本上表现不佳。

将输出转换为可编辑文本需要精确测量

为了让文本变得可编辑,应用使用 `actualBoundingBoxAscent` 计算纸张颜色、墨水颜色和字体大小,以便在视觉上匹配原始扫描布局。

💬 Key Quotes

文档永远不会离开设备。

Tesseract 在手机照片上几乎完全失效了。

PaddleOCR 先使用神经网络寻找文本行,这种检测器在处理真实照片时要好得多。

📊 Article Meta

AI Screening: 86

Source: DEV Community: machinelearning

Author: Madhi Omar

Category: 人工智能

Language: 英文

Read Time: 10 min

Word Count: 2328

Tags:

AI 与智能应用 , AI 工程 , 机器学习 , 文档解析 , 前端与 Web

#AI 与智能应用# AI 工程# 机器学习# 文档解析# 前端与 Web

文章评论(12)

杨丽华4 小时前

楼主辛苦了,内容很有参考价值。

回复
白向阳6 小时前

看完了,收获满满,期待更多更新。

回复
拾贝者4 小时前

有没有更详细的教程,期待后续。

回复
南山客4 小时前

这个观点很中肯,深有同感。

回复
山问津4 小时前

内容翔实,正好需要,先收藏再看。

回复
风倚栏4 小时前

整理得太全面了,省了我不少时间。

回复
星观澜5 小时前

支持作者,持续关注中。

回复
墨向阳4 小时前

实话,说的不明不白

回复
墨向阳5 小时前

写得挺用心的,支持一下。

回复
风倚栏3 小时前

这个观点很中肯,深有同感。

回复
星寻梦3 小时前

路过

回复
雪影2 小时前

不错不错,已加入书签。

回复