跳到正文
V2EX·· 1 天前AI 评分67

scan-to-vector-skill 开源,将扫描件和手机拍摄文档重建为矢量 PDF

开源了一个 agent 技能,能把扫描件和手机拍的文档重建成矢量 PDF(附对照实验)

AI 导读

作者开源了供 Claude Code 和 Codex 使用的 scan-to-vector-skill,可将扫描件或手机斜拍文档重建为文字可搜索、复制且包含矢量图表的 PDF。

正文

做了一个给 Claude Code 和 Codex 用的技能,能把扫描件或手机斜拍的文档重新做成干净的 PDF:文字可以搜索、复制,图表和流程图是矢量图,放大不会糊,版式贴近原稿。它不是在图片上加一层 OCR 文字。

我还做了对照实验。测试页由程序生成,每页都有标准答案,类型有练习册、表格、图表、流程图、表单和双栏文章,其中一半是斜着拍、带阴影的手机照片。每页按标准答案给文字、版式、图形和矢量比例打分,1.0 为满分。同一个需求,每个模型做两次,一次不用技能,一次用。下面是两份 9 页文档上的结果,技能从没在这些页面上调过参:

模型 不用 用
Haiku 5.5 0.841 0.997
Fable 5.1 0.837 0.997
Sonnet 5.5 0.994 0.998
Opus 5.5 0.993 0.998

耗时:Sonnet 做 9 页从 25.7 分钟降到 16.2 分钟(快 37%),Haiku 基本持平( 9.4 → 9.0 ),Opus 和 Fable 变慢( 13.3 → 14.7 、10.0 → 14.7 )。每个模型只有两份文档,耗时仅供参考。

最早的版本只是一份详细的说明,效果不明显。起作用的是把 agent 容易出错的步骤交给脚本:

  • 模型看到的是缩小后的图,位置和小数字只能估。现在由脚本按像素测量,没把握的词裁出来放大,每页汇总成一张校对图。
  • 模型发现不了自己漏了什么。现在每次重建都会和原稿叠在一起比对,逐页报告还缺什么。
  • 模型倾向于少做步骤。现在起草所有页只要一条命令,改一个错字只要在 JSON 里写一行。

失败的版本也写在 README 里了,比如有一版让 Sonnet 退步,原因是照片比例算错了。评测代码也开源了,欢迎用别的模型试试。

安装:在 Claude Code 里依次执行 /plugin marketplace add 3351666087/scan-to-vector-skill 和 /plugin install scan-to-vector@scan-to-vector-skill,也可以用 README 里的一行命令安装(支持 Claude Code 和 Codex )。脚本需要 Python 3.10+ 和 tesseract 命令,依赖见 README 。MIT 协议。

GitHub: https://github.com/3351666087/scan-to-vector-skill

局限:测试集是合成的英文印刷页,手写和中文都没有测过。起草脚本调用 Tesseract 时不指定语言,只用英文模型,内置字体也只有西文,所以起草脚本目前处理不了中文页面,只装中文语言包不够。它按页消耗 agent 的时间,如果只需要能搜索的文字,直接用 OCRmyPDF 更省事。

来源:V2EX · v2ex.com