📄 OCR文字识别使用指南
📄 OCR文字识别使用指南
系统概述
这是一个完整的OCR文字识别系统,支持:
- 单张图片文字识别
- 影印文档高清识别(带预处理)
- 批量图片处理
- 多语言支持(中文优先)
🚀 快速开始
1. 安装依赖
# 安装Tesseract OCR(推荐)
sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-chi-sim tesseract-ocr-eng
# 安装ImageMagick(图片预处理)
sudo apt install imagemagick
# 安装Python依赖
pip install Pillow
2. 测试系统
# 查看可用OCR工具
python3 ocr_system.py --help
# 测试单张图片
python3 ocr_system.py /path/to/image.jpg
# 影印文档识别(带预处理)
python3 ocr_system.py /path/to/scanned_doc.jpg --preprocess
# 批量处理
python3 ocr_system.py /path/to/images/ --batch --output ./results/
🖼️ 支持的图片格式
- JPG/JPEG
- PNG
- GIF
- BMP
- TIFF
- PDF(需要额外处理)
🔧 影印文档高清识别
为什么需要预处理?
影印文档通常存在:
- 对比度低
- 背景噪点
- 文字模糊
- 倾斜角度
预处理步骤:
- 灰度转换 - 减少颜色干扰
- 对比度增强 - 提高文字清晰度
- 去噪处理 - 消除背景噪点
- 二值化 - 黑白分明,提高识别率
使用方法:
# 带预处理的影印文档识别
python3 ocr_system.py scanned_document.jpg --preprocess --method tesseract
# 指定中文识别
python3 ocr_system.py chinese_doc.jpg --preprocess --lang chi_sim
📊 识别方法比较
1. Tesseract OCR(推荐)
- ✅ 开源免费
- ✅ 支持100+种语言
- ✅ 中文识别效果好
- ✅ 可训练自定义模型
- ⚠️ 需要安装
2. EasyOCR(深度学习)
- ✅ 识别准确率高
- ✅ 支持倾斜文字
- ✅ 多语言混合识别
- ⚠️ 需要GPU加速最佳
- ⚠️ 安装包较大
3. OpenClaw Image工具
- ✅ 无需额外安装
- ✅ 集成在OpenClaw中
- ✅ 简单易用
- ⚠️ 功能相对基础
🎯 最佳实践
提高识别准确率:
- 图片质量
- 分辨率:300 DPI以上
- 格式:PNG或TIFF(无损)
-
光线:均匀照明,避免阴影
-
预处理设置
bash # 针对低质量影印文档 python3 ocr_system.py input.jpg --preprocess --method tesseract --lang chi_sim+eng -
语言设置
- 中文文档:
--lang chi_sim - 中英混合:
--lang chi_sim+eng - 纯英文:
--lang eng
批量处理:
# 处理整个目录
python3 ocr_system.py ./scanned_docs/ --batch --output ./ocr_results/
# 带预处理和中文识别
python3 ocr_system.py ./chinese_docs/ --batch --preprocess --lang chi_sim --output ./results/
📁 输出格式
单文件输出:
=== 识别结果 ===
这是从图片中识别出的文字内容。
支持多行文本和标点符号。
识别信息:
- 字符数:150
- 行数:10
- 识别方法:Tesseract
- 语言:中文简体
批量输出:
results/
├── document1.txt
├── document2.txt
├── document3.txt
└── summary.json # 处理统计信息
🔍 与OpenClaw集成
方法一:通过技能调用
# 在OpenClaw技能中调用OCR
def handle_ocr_request(image_path):
ocr = OCRSystem()
success, text = ocr.recognize_text(image_path, preprocess=True)
return text if success else "识别失败"
方法二:命令行集成
# 在OpenClaw中执行OCR命令
!python3 ocr_system.py uploaded_image.jpg --output /tmp/result.txt
方法三:实时识别
# 接收图片消息,返回识别结果
if message.has_image():
image_path = save_image(message.image)
text = ocr_recognize(image_path)
send_response(f"识别结果:\n{text}")
🛠️ 故障排除
常见问题:
Q1: 识别率低
# 尝试预处理
python3 ocr_system.py image.jpg --preprocess
# 尝试不同方法
python3 ocr_system.py image.jpg --method easyocr
# 调整语言设置
python3 ocr_system.py image.jpg --lang chi_sim
Q2: 中文识别乱码
# 确保安装了中文语言包
sudo apt install tesseract-ocr-chi-sim
# 指定中文识别
python3 ocr_system.py image.jpg --lang chi_sim
Q3: 影印文档效果差
# 使用完整预处理流程
python3 ocr_system.py scanned.jpg --preprocess --method tesseract
# 手动预处理图片
convert scanned.jpg -colorspace Gray -contrast -contrast -despeckle -threshold 60% processed.png
Q4: 批量处理慢
# 使用更快的识别方法
python3 ocr_system.py ./docs/ --batch --method tesseract
# 减少预处理(如果图片质量好)
python3 ocr_system.py ./docs/ --batch --preprocess
📈 性能优化
硬件要求:
- CPU: 多核处理器
- 内存: 4GB+(批量处理需要更多)
- 存储: SSD提高IO速度
软件优化:
# 使用多线程批量处理
from concurrent.futures import ThreadPoolExecutor
def batch_ocr_parallel(image_files, max_workers=4):
with ThreadPoolExecutor(max_workers=max_workers) as executor:
results = list(executor.map(ocr_recognize, image_files))
return results
🔄 扩展功能
1. 自定义训练
# 训练Tesseract自定义模型
tesseract lang.font.exp0.tif lang.font.exp0 batch.nochop makebox
tesseract lang.font.exp0.tif lang.font.exp0 nobatch box.train
2. PDF支持
# 将PDF转换为图片
convert -density 300 input.pdf -quality 100 output_%04d.jpg
3. 表格识别
# 使用专门工具识别表格
pip install camelot-py
camelot --format csv --output output.csv lattice input.pdf
📞 技术支持
获取帮助:
# 查看帮助
python3 ocr_system.py --help
# 测试系统状态
python3 ocr_system.py test_image.jpg --method auto
# 查看详细日志
python3 ocr_system.py image.jpg --debug 2>&1 | tee ocr_log.txt
问题反馈:
- 提供原始图片
- 描述识别问题
- 附上系统信息
- 提供错误日志
最后更新:2026-02-27
版本:v1.0