上一节我们配置了视觉模型,让 Hermes 能看懂图片。但很多时候,我们只是想识别图片里的文字,不需要理解图片内容。这时候用 OCR 就够了,不需要浪费 token 走视觉模型。这一节介绍怎么用 Tesseract 在本地完成文字识别。
12.1 视觉模型和 OCR 的区别
视觉模型和 OCR 都能处理图片,但做的事情完全不同。
视觉模型理解图片内容。你给它一张截图,它能告诉你"这是一张错误日志,显示数据库连接失败"。它看懂了图片表达的意思,能推理、能分析、能回答问题。
OCR只做一件事:把图片里的文字提取出来。你给它一张截图,它返回"数据库连接失败:无法连接到 127.0.0.1:3306"。它不告诉你这句话意味着什么,只是把文字从图片里抠出来。
两者的成本和速度差别很大。视觉模型需要调用 API,每次识别都要消耗 token,一张截图可能花掉几千 token。OCR 可以本地运行,不消耗 token,识别速度也快得多。
12.2 什么时候该用 OCR
如果你的需求是下面这些,用 OCR 就够了:
- 从截图里提取错误日志
- 把扫描件里的文字转成可编辑文本
- 识别图片里的表格数据
- 批量提取多张图片里的文字
如果你的需求是下面这些,必须用视觉模型:
- 理解图片内容并回答问题
- 分析图表趋势
- 判断图片里的物体或场景
- 根据图片内容做推理
简单说:要理解,用视觉模型;要提取,用 OCR。
12.3 安装 Tesseract (已过时)
我自己实测Tesseract 在图片比较模糊时,识别效率非常低。群里的同学昨天讨论了一个叫做Rapid OCR 的,实测效果非常棒。
Tesseract 是一个开源的 OCR 引擎,Google 在 2006 年接手并开源,现在 5.x 版本用 LSTM 神经网络做识别,精度比早期版本高很多。
它的优势是免费、开源、可离线运行。劣势是对复杂排版和手写体的识别不如商业方案。
macOS 安装
brew install tesseract
brew install tesseract-lang # 安装中文语言包
Ubuntu / Debian 安装
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-chi-sim # 中文简体包
Windows 安装
去 https://github.com/UB-Mannheim/tesseract/wiki 下载安装包,按提示安装即可。
建议都丢给 Hermes 来决定安装方案。无需自己手动安装。
12.4 Rapid OCR (推荐)
Rapid OCR 是目前群里实测效果最好的开源 OCR 方案。它基于 PaddleOCR 深度学习模型,中文识别准确率比 Tesseract 高很多,尤其是对模糊图片、小字体、复杂排版的场景。
和 Tesseract 相比,Rapid OCR 的优势非常明显: - 中文识别准确率高:专门针对中文场景训练,手写体、艺术字体也能认 - 开箱即用:不需要额外装语言包,pip 安装就自带中文模型 - 速度快:用 ONNXRuntime 推理,普通笔记本一秒钟就能出结果 - 输出格式好:自动保留换行和段落结构,不会把多行文字混成一团
让 Hermes 帮你安装
你不需要输入任何命令。 直接告诉 Hermes:
帮我安装 RapidOCR 到 Python 环境里,以后提取图片文字就用这个。
Hermes 会自己检测你的 Python 环境,选合适的方式安装(pip install rapidocr-onnxruntime),装完还会自动测试一下能不能用。
告诉 Hermes 可以用 RapidOCR
安装完后,跟 Hermes 说一句:
我装了 RapidOCR,以后只要是提取图片里的文字,优先用这个本地 OCR,不要调用视觉模型。
就这么简单。下次你丢一张截图给 Hermes,说"提取这里面的文字",它会自动用 RapidOCR 在本地完成识别,不消耗任何 token。
12.5 案例:提取错误日志(待修改)
你在终端看到一条错误信息,截图保存到桌面。想让 Hermes 帮你分析这个错误,但又不想浪费视觉模型的 token。
帮我使用 本地 OCR 提取桌面错误截图里的文字,然后分析这个错误怎么解决
Hermes 会先用 Tesseract 提取文字,得到错误日志,然后再用主模型分析错误原因。整个过程只消耗了分析逻辑的 token,识别部分没花钱。
12.6 ■ 学点英语
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 光学字符识别 | Optical Character Recognition | /ˈɑːptɪkl ˈkærəktər ˌrekəɡˈnɪʃən/ | 从图片中识别文字内容的技术 |
| 文本提取 | Text Extraction | /tekst ɪkˈstrækʃən/ | 从图片、网页或文档中抽取可处理文本的过程 |
| 识别准确率 | Recognition Accuracy | /ˌrekəɡˈnɪʃən ˈækjərəsi/ | OCR 或模型识别结果正确的比例 |
| 扫描图像 | Scanned Image | /skænd ˈɪmɪdʒ/ | 由扫描或截图得到、需要识别处理的图片 |