Hacker News 中文摘要

RSS订阅

OCR It – 从不可复制的文档中提取文本,供你的大语言模型使用 -- OCR It – pull text out of un-copyable documents for your LLM

文章摘要

这是一个Chrome扩展,可固定屏幕区域并通过热键逐页OCR识别文档内容,完全离线运行,基于Tesseract引擎。

文章总结

好的,这是根据您的要求,对原文进行中文重述后的版本:

标题: OCR It:一款Chrome扩展程序,用于将分页文档中的文字提取出来

核心功能: 只需固定一次屏幕上的文字区域,然后在每一页按下快捷键,即可将整本书的内容转换为文本。

主要特点:

  • 操作流程: 用户首先在屏幕上框选一个需要识别的区域(例如,扫描书、幻灯片或PDF中的文字区域)。之后,每次按下快捷键(⌥⇧S),扩展程序就会截取该区域的屏幕截图,进行OCR识别,并将识别出的文本追加到一个运行记录中。用户也可以启动自动运行模式(⌥⇧A),扩展程序会自动完成“截图-翻页-再截图”的循环,直到文档结束。
  • 完全离线: OCR识别完全在本地进行,使用的是内置的Tesseract引擎。这意味着无需API密钥、无需网络连接,图片不会离开用户的电脑,扩展程序不会发出任何网络请求。
  • 隐私安全: 安装时不会请求任何网站访问权限。单次截图依赖于activeTab权限,仅在用户按下快捷键或打开弹出窗口时授予。对于需要跨页面运行的自动模式或操作跨域iframe中的内容,扩展程序会提供一个“允许”按钮,让用户手动授权。
  • 安装与使用:
    • 下载或克隆代码仓库后,在Chrome的扩展管理页面(chrome://extensions)开启“开发者模式”,然后“加载已解压的扩展程序”并选择文件夹即可。无需构建步骤。
    • 快捷键:⌥⇧S(单次截图)、⌥⇧A(开始/停止自动运行)、⌥⇧R(绘制或重绘截图区域)。
  • 翻页机制:
    • 用户可以设置自动翻页。有两种方式:点击一个“选取控件”按钮,然后点击文档阅读器中的“下一页”按钮(存储的是屏幕上的坐标点,而非CSS选择器,因此更稳定);或者设置一个键盘事件(默认是右箭头键)。
    • 使用坐标点而非CSS选择器的优势在于,它能应对DOM重新渲染,并能触及跨域iframe和Shadow DOM中的元素。
    • 如果翻页失败,扩展程序会给出明确的提示,例如“尚未选取下一页控件”、“控件位置已移动”等。
  • 自动运行:
    • 自动运行模式会等待每一页的OCR识别完成后再进行翻页,这能可靠地检测文档是否结束(例如,连续两页内容相同则判定为结束)。
    • 用户可以通过按Esc键、再次按下快捷键或点击弹出窗口来停止自动运行。当文本停止变化、无法翻页、OCR失败或达到页数上限(默认300页)时,运行也会自动停止。
  • PDF支持: Chrome内置的PDF阅读器可以正常使用,但自动翻页功能不适用,因为PDF阅读器是一个插件,扩展程序无法注入脚本。用户需要手动翻页。
  • 设置选项:
    • 语言: 内置英语、葡萄牙语和西班牙语。用户可以通过命令行工具添加Tesseract支持的其他约100种语言。
    • 布局: 选择Tesseract的页面分割模式,如“单块”(适合单列正文)或“自动”(处理混合布局)。
    • 锐化: 在OCR前对截图进行放大和灰度拉伸,有助于提高非视网膜屏幕上的识别效果。
    • 重复检测: 标记与前一页内容相同的页面。
    • 自动运行参数: 设置页面暂停时间、结束运行的重复次数和页数上限。
  • 导出: 每一页的识别结果都会显示缩略图、字符数和OCR置信度。文本可以就地编辑。用户可以“复制全部”或“下载为.txt”文件,导出的文本会按顺序排列,并用--- page N ---分隔。
  • 工作原理: 扩展程序使用MV3的Service Worker和离屏文档(offscreen document)来处理截图、裁剪和OCR任务。截图区域以相对于视口的CSS像素存储,以应对缩放和不同屏幕分辨率。截图前会隐藏扩展程序自身的界面元素,避免干扰。
  • 测试: 项目包含一套完整的端到端测试,使用真实的Chrome浏览器和DevTools协议,模拟用户操作来验证各项功能。
  • 许可: 采用MIT许可证。

评论总结

根据评论内容,总结如下:

主要观点:OCR It 是一款解决“无法选中文本”场景的 Chrome 扩展,用于从扫描件、幻灯片、PDF 图片中提取文字,并直接用于 LLM 上下文。

支持观点(高认可度): - 解决实际痛点:用户常遇到无法从扫描件、幻灯片等复制文本的困境,该工具填补了这一空白。 - 引用:"Half the context I want to give a model is locked inside something I can't select from... Copy-paste gets you nothing"(评论1) - 引用:"I've hit this exact issue prepping documents for LLM context"(评论2) - 本地运行、无网络请求:所有 OCR 处理在本地完成,无需 API 密钥或主机权限,保护隐私。 - 引用:"Everything runs locally... no network requests at all, no API key"(评论1) - 引用:"the pages you're capturing are often exactly the ones you don't want to ship to a third party"(评论1)

技术亮点(评论1详细说明): - 自动翻页与连续捕获:支持单页截图 OCR 或自动运行,直到文档结束。 - 跨域 iframe 支持:通过 postMessage 传递偏移量,解决跨域 iframe 中的定位问题。 - 自动运行依赖 OCR 完成后再翻页,避免计时器循环导致的重复捕获。

局限性(评论1提及): - Chrome 原生 PDF 查看器无法自动翻页(插件无法注入)。 - 固定矩形区域,缩放或调整窗口大小会破坏捕获。 - 准确率依赖源质量:清晰文本 93-95%,扫描件需预处理。

用户疑问(评论2、3): - 低质量扫描件的准确率如何?(评论2) - 如何 OCR 大量手写数学笔记和图表?(评论3,未获直接回答)