扫描版 PDF 如何方便做笔记:阿里云 ECS 上的 OCR 与并发测试

简介: 本文介绍如何用阿里云ECS部署OCRmyPDF+Tesseract,为扫描版PDF(如《爱因斯坦文集》)自动添加可选中文文字层,解决Zotero中无法选中文字的痛点。通过并发优化,20页处理耗时降低63%,实现高效、可复现的阅读笔记 workflow。(239字)

想解决的,是做笔记时的一点不方便

我平时在 Zotero 里读资料,看到值得记下来的内容就做个标注,再到 Obsidian 里整理。但是碰到扫描版 PDF 就有点不方便:页面上的字能看得见,却选不中,只能用 Zotero 框选批注的功能曲线救国。

这次拿来处理的是扫描版《爱因斯坦文集》。给测试样本做完 OCR 后,我就可以在 Zotero 中直接选中文字、做高亮了。我的目标很具体:让扫描资料也能方便地做阅读笔记。

把 OCR 放到云服务器上跑

组成 本次作用
阿里云 ECS 运行 OCR 和并发实验,提供计算、内存及磁盘资源
OCRmyPDF / Tesseract 识别扫描页,为 PDF 增加文字层
Python 程序 调度文件,记录耗时、处理状态和失败日志
Zotero 阅读处理后的 PDF,选取文字并添加批注

实例规格为 ecs.u2a-c1m2.xlarge,配备 4 vCPU、约 8 GB 内存,系统为 Ubuntu 24.04.5 LTS。软件版本分别为 OCRmyPDF 15.2.0+dfsg1、Tesseract 5.3.4、Ghostscript 10.02.1,识别语言使用简体中文和英文。

OCRmyPDF / Tesseract 用于“增加文字层”,就是把识别出来的文字放到原页面对应的位置。打开 PDF 时,看到的仍然是扫描图像,但现在可以选中文字,也可以搜索了。

部署和处理过程

服务器上安装 OCRmyPDF、中英文识别模型和 PDF 检查工具后,将样本与 Python 批处理程序上传到 /opt/cloud-pdf-ocr。程序编写、远程部署和实验执行由 AI 助手协助完成。

安装依赖使用的是:

sudo apt-get update
sudo apt-get install -y python3 ocrmypdf tesseract-ocr-chi-sim tesseract-ocr-eng poppler-utils

程序保留原文件,把生成的 PDF 放到新的结果目录,并记录每份文件的耗时、状态和错误日志。后面要复查某次结果时,可以找到对应的输入和参数,不用只凭终端里一闪而过的输出判断。

以单份 PDF 内部四页并发为例,在项目目录执行:

python3 batch_ocr.py input-single runs/test-single-4 --workers 1 --jobs-per-file 4

其中,--workers 1 表示同时只处理一份 PDF,--jobs-per-file 4 设置这份文件内部的页作业并发上限。每次运行需要换一个新的结果目录,避免覆盖已有记录。

并发处理能快多少?

原文件共 883 页,这次先从中抽取 20 页,分成四份 5 页 PDF,再将同样内容合成一份文件作补充测试。所有测试都在同一台阿里云 ECS 上进行,每种设置运行三次,取整批耗时的中位数。

测试保持语言、输出格式等参数一致,关闭图像优化,并固定 OMP_THREAD_LIMIT=1。计时不包含安装、上传下载、样本准备和输入哈希计算;计时前会读取文件计算哈希,因此结果不代表冷启动表现。

处理方式 耗时中位数
四份文件依次处理 42.51 秒
两份文件同时处理 22.16 秒
四份文件同时处理 15.65 秒
单份 PDF,内部逐页处理 41.47 秒
单份 PDF,内部四页并发 15.85 秒

四文件并发将整批耗时从 42.51 秒缩短到 15.65 秒,加速比约为 2.72,耗时减少约 63.2%;单文件内部四页并发也从 41.47 秒降到 15.85 秒,加速比约为 2.62。

两种四路并发的结果很接近,暂时不能判断谁稳定更快。之后处理整本书,我倾向于直接使用单文件内部页并发,省去拆分文件的步骤。这里的提速来自同一台服务器上的并发设置调整,不能据此判断云端比本地快多少,或某一代 CPU 比上一代快多少。

实际使用效果

处理后,可以直接选中文字并进行标注,下面是实际操作截图:
SCR-20261031-tawz.png

反思

两组共十五次正式测试都处理成功,每次输出的 20 页都有非空文字层。对首次输出和最终单文件四页并发输出进行逐页检查时,两批结果各自全部 20 页在最长边 800 像素的渲染条件下,都与原扫描页像素一致。

两组共十五次正式测试都处理成功,每次输出的 20 页都有非空文字层。对首次输出和最终单文件四页并发输出进行逐页检查时,两批结果各自全部 20 页在最长边 800 像素的渲染条件下,都与原扫描页像素一致。

文字识别仍有错误,比如“振动”被认成了“振功”,导出的文字里也有多余空格。但是对我来说,这些问题目前影响不大:我一般会读懂内容,再在 Obsidian 中用自己的话整理笔记,不会直接整段复制原文。

相关文章
|
云安全 安全 网络安全
|
2天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
|
16天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3973 1
|
9天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2060 2
|
15天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2616 46
|
3天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
530 1
|
12天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1512 3
|
10天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
2089 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
8天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!

热门文章

最新文章