完全在浏览器中运行 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
楼主辛苦了,内容很有参考价值。
看完了,收获满满,期待更多更新。
有没有更详细的教程,期待后续。
这个观点很中肯,深有同感。
内容翔实,正好需要,先收藏再看。
整理得太全面了,省了我不少时间。
支持作者,持续关注中。
实话,说的不明不白
写得挺用心的,支持一下。
这个观点很中肯,深有同感。
路过
不错不错,已加入书签。