第16讲:OCR 文字识别 Skill 开发
掌握 OCR 文字识别技能,实现图片、扫描件、PDF 的文字提取,让纸质文档数字化变得简单高效。
一、场景分析
1.1 用户痛点
在日常办公中,经常需要处理无法直接复制的文字内容:
- 纸质文档录入:合同、发票、证件等纸质文件需要手动录入,效率低且容易出错
- 图片文字提取:截图、照片中含有重要文字信息,无法直接复制
- 扫描件处理:扫描的 PDF 无法搜索和复制,需要 OCR 识别
- 表格识别困难:图片中的表格结构复杂,手动重建耗时
- 批量处理需求:大量图片需要统一识别,人工处理不现实
1.2 典型应用场景
| 场景 | 需求描述 | Skill 价值 |
|---|---|---|
| 发票识别 | 识别发票图片中的金额、日期、税号等信息 | 自动提取结构化数据 |
| 名片识别 | 提取名片上的姓名、电话、公司等信息 | 一键录入通讯录 |
| 合同扫描 | 将纸质合同扫描件转为可编辑文本 | 数字化存档 |
| 证件识别 | 识别身份证、营业执照等证件信息 | 自动填写表单 |
| 表格识别 | 识别图片中的表格并转为 Excel | 保留表格结构 |
二、核心功能设计
2.1 Skill 功能架构
1 | 👁️ OCR 智能识别 |
2.2 技术选型
OCR 处理的核心技术栈:
| 功能 | 技术方案 | 说明 |
|---|---|---|
| 开源 OCR | Tesseract / PaddleOCR | 免费,可离线使用 |
| 云端 OCR | 百度/腾讯/阿里云 OCR API | 精度高,支持复杂场景 |
| 表格识别 | PaddleOCR-Table / ExcelNet | 专门用于表格识别 |
| 图像处理 | OpenCV / Pillow | 图像预处理和优化 |
三、技术实现
3.1 Coze 平台实现
3.1.1 基础 OCR 代码
使用 Tesseract:
1 | import pytesseract |
使用 PaddleOCR(推荐):
1 | from paddleocr import PaddleOCR |
3.1.2 结构化识别代码
发票识别:
1 | import re |
名片识别:
1 | def recognize_business_card(image_path): |
3.1.3 表格识别代码
1 | def recognize_table(image_path): |
3.1.4 PDF OCR 代码
1 | from pdf2image import convert_from_path |
3.2 OpenClaw 平台实现
OpenClaw 的 OCR Skill 示例:
1 | from openclaw import Skill, Tool |
四、Prompt 设计
4.1 系统 Prompt
1 | 你是 OCR 智能识别助手,专门帮助用户从图片和文档中提取文字信息。 |
4.2 意图识别示例
| 用户输入 | 识别意图 | 提取参数 |
|---|---|---|
| “识别这张图片里的文字” | 通用 OCR | 图片路径 |
| “提取这张发票的信息” | 发票识别 | 图片路径 |
| “把这张表格转成 Excel” | 表格识别 | 图片路径、输出路径 |
| “识别这个 PDF 扫描件” | PDF OCR | PDF 路径 |
| “批量识别这些图片” | 批量 OCR | 文件夹路径 |
五、实战案例
5.1 案例一:发票自动录入
场景:财务部门需要批量处理发票,提取信息录入系统。
解决方案:
1 | def batch_process_invoices(image_folder): |
5.2 案例二:名片信息录入
场景:销售团队参加展会后,需要整理收集到的名片。
解决方案:
1 | def batch_process_business_cards(image_folder): |
六、实战练习
练习 1:通用 OCR 工具
创建一个 Skill,实现以下功能:
- 接收用户上传的图片
- 进行 OCR 识别
- 返回识别的文字内容
- 显示每个文字的置信度
练习 2:发票识别助手
创建一个 Skill,实现以下功能:
- 识别发票图片
- 提取发票代码、号码、金额、日期
- 验证发票信息完整性
- 导出为 Excel 格式
练习 3:表格识别导出
创建一个 Skill,实现以下功能:
- 识别图片中的表格
- 保留表格结构
- 导出为 Excel 文件
- 支持批量处理多张图片
七、常见问题
Q1:识别准确率不高怎么办?
解决方案:
- 提高图片分辨率(建议 300 DPI 以上)
- 进行图像预处理(去噪、二值化、倾斜校正)
- 使用云端 OCR API(如百度、腾讯)获得更高精度
- 对于特定场景使用专门的识别模型
Q2:手写体识别效果差?
解决方案:
- 使用专门的手写体 OCR 模型
- 提醒用户书写工整
- 考虑使用云端手写识别服务
- 对于重要内容建议人工校对
Q3:表格识别后格式错乱?
解决方案:
- 使用专门的表格识别模型(如 PaddleOCR-Table)
- 确保表格线条清晰
- 识别后人工检查并调整
- 复杂表格建议分段识别
八、下节预告
下一讲我们将学习 邮件自动化 Skill 开发,包括:
- 邮件自动发送
- 邮件内容模板化
- 附件自动处理
- 邮件批量发送
加入学习群

本讲是《AI Skills 从入门到实践》系列课程的第16讲。