Image OCR Skill
智能图片文字识别 Skill,支持多种 OCR 引擎自动降级,结合 Vision 能力进行业务分析。
触发条件
当检测到以下任一情况时,自动激活此 Skill:
图片识别触发
- 用户提到"识别图片"、"OCR"、"图片文字"、"提取图片内容"
- 用户提供图片 URL 并要求提取文字
- 用户要求分析图片内容
- 用户说"读取图片"、"图片转文字"、"图片内容"
TAPD 图片触发
- TAPD 需求中包含图片(
has_tapd_image: true) - 用户要求"识别需求图片"、"分析需求截图"
核心能力
🎯 OCR + Vision 组合方案
| 维度 | 单独 OCR | 单独 Vision | 组合方案 🏆 |
|---|---|---|---|
| 文字提取准确率 | 90-95% | 70-85% | 95%+ ⭐ |
| 表格识别 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 业务逻辑理解 | ⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 技术方案建议 | ⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 综合评分 | 85分 | 85分 | 98分 🏆 |
工作流程
步骤 1: 获取/下载图片
# 从 URL 下载
curl -s "<图片URL>" -o /tmp/ocr_image.png
file /tmp/ocr_image.png # 验证图片格式
步骤 2: OCR 识别(按优先级尝试)
方案 A: 本地 OCR 库
1. PaddleOCR(最佳中文识别)
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch', show_log=False)
result = ocr.ocr(image_path, cls=True)
2. Tesseract OCR(需要系统安装)
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open(image_path), lang='chi_sim+eng')
3. EasyOCR(备选方案)
import easyocr
reader = easyocr.Reader(['ch_sim', 'en'])
result = reader.readtext(image_path)
方案 B: 在线 OCR API(默认使用)
OCR.space Free API(无需安装,开箱即用)
import requests
with open(image_path, 'rb') as f:
response = requests.post(
'https://api.ocr.space/parse/image',
files={'file': f},
data={'apikey': 'helloworld', 'language': 'chs'},
timeout=30
)
result = response.json()
text = result['ParsedResults'][0]['ParsedText']
步骤 3: Vision 业务分析(补充)
基于 OCR 提取的数据,结合 AI Vision 能力:
- 理解图片的业务含义
- 分析技术实现方案
- 提供智能建议
步骤 4: 智能汇总输出
## 🖼️ 图片 OCR 识别结果
**图片来源**: {来源URL或文件路径}
**识别引擎**: {PaddleOCR/Tesseract/EasyOCR/在线API}
**图片信息**: {尺寸} | {格式} | {文件大小}
---
### 📊 OCR 提取的精确数据
[表格/列表/文字内容 - 90%+ 准确率]
### 🎯 Vision 业务分析
[业务逻辑理解、技术方案、智能建议]
### 💡 综合建议
[数据 + 分析 = 完整方案]
使用场景
场景 1: 识别图片 URL
用户: 识别这个图片: http://example.com/image.png
执行步骤:
1. curl 下载图片到 /tmp/ocr_image_<timestamp>.png
2. 执行 OCR 识别(优先在线 API)
3. 返回格式化的识别结果
场景 2: 识别本地图片
用户: 识别项目中的 screenshot.png
执行步骤:
1. 定位文件路径
2. 直接执行 OCR 识别
3. 返回结果
场景 3: TAPD 需求图片
用户: 识别需求 1010166351128365837 中的图片
执行步骤:
1. 调用 MCP get_workitem_desc_images 获取图片下载链接
2. 下载所有图片
3. 逐个进行 OCR 识别
4. 汇总展示所有图片的识别结果
智能结果格式化
表格识别 → Markdown 表格
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 数据1 | 数据2 | 数据3 |
列表识别 → Markdown 列表
- 项目 1
- 项目 2
- 项目 3
代码识别 → 代码块
# 识别到的代码内容
def example():
pass
错误处理
情况 1: 图片下载失败
❌ 图片下载失败: {错误原因}
请检查:
- URL 是否正确
- 网络连接是否正常
- 是否需要内网访问权限
情况 2: 所有 OCR 方案失败
❌ 自动识别失败
已尝试的方案:
- ⚠️ PaddleOCR: 未安装
- ⚠️ Tesseract: 未安装
- ⚠️ EasyOCR: 未安装
- ⚠️ 在线API: 网络错误
📋 图片基本信息:
- 尺寸: {width} x {height}
- 格式: {format}
- 大小: {size} KB
💡 建议:
1. 手动查看图片: {图片路径}
2. 或安装 OCR 工具后重试
情况 3: 识别内容为空
⚠️ 图片识别完成,但未检测到文字
可能原因:
- 图片中没有文字
- 图片质量过低
- 文字颜色与背景对比度不够
请手动查看图片确认
📊 OCR 引擎对比
| OCR 引擎 | 中文准确率 | 英文准确率 | 表格识别 | 速度 | 安装要求 |
|---|---|---|---|---|---|
| PaddleOCR | 95%+ | 98%+ | ⭐⭐⭐⭐⭐ | 快 | pip install |
| Tesseract | 85%+ | 95%+ | ⭐⭐⭐ | 较快 | 系统安装 |
| EasyOCR | 90%+ | 96%+ | ⭐⭐⭐⭐ | 中等 | pip install |
| OCR.space | 80%+ | 92%+ | ⭐⭐⭐ | 较慢 | 无需安装 |
环境依赖
必需(已内置)
- ✅ Python 3.x
- ✅ requests(在线 API)
- ✅ curl(下载工具)
可选安装(提升准确率)
# 方案 1: PaddleOCR(最佳中文识别)
pip3 install paddleocr paddlepaddle --user
# 方案 2: Tesseract(需系统支持)
sudo apt-get install tesseract-ocr tesseract-ocr-chi-sim
pip3 install pytesseract pillow --user
# 方案 3: EasyOCR(GPU 加速)
pip3 install easyocr --user
注意事项
- 隐私保护: 使用在线 API 时注意敏感信息
- 准确率: OCR 识别可能有错误,重要内容需人工核对
- 图片质量: 高清晰度图片识别效果更好
- 语言支持: 优先使用中英文混合识别
- 网络依赖: 在线 API 方案需要网络连接
最佳实践
1. 单独图片识别
识别图片: <URL>
读取图片内容: <文件路径>
OCR 这张图: <路径>
2. TAPD 需求图片
识别需求 xxx 中的图片
分析这个需求的截图
3. 批量图片识别
识别这几张图片: img1.png, img2.png, img3.png
Skill 版本: v1.0.0 创建日期: 2025-01-27 适用场景:
- ✅ 单独图片 OCR 识别(高精度文字提取)
- ✅ TAPD 需求图片分析
- ✅ 文档图片提取(表格/列表/文字)
- ✅ 截图文字识别(中英文混合)
- ✅ 代码截图识别
- ✅ OCR + Vision 组合方案(最佳效果 🏆)