爱意满满的作品展示区。
3351666087abc
1.23D

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

  •  
  •   3351666087abc · 3h 23m ago · 125 views

    做了一个给 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 更省事。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1628 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    ♥ Do have faith in what you're doing.