《OCR 工具与项目实战》

《OCR 工具与项目实战》

OCR(光学字符识别)用于从图像中提取文字,场景覆盖扫描件、车牌、票据等。本文整理常用工具(Tesseract、open-ocr)与深度学习方法的学习资源。

1 Tesseract(开源 OCR 引擎)

Tesseract 是最常用的开源文本识别引擎。

1.1 安装

# macOS brew install tesseract tesseract-lang # Ubuntu / Debian sudo apt install tesseract-ocr tesseract-ocr-chi-sim # chi-sim 为简体中文语言包

1.2 命令行使用

# 识别图片中的文字,输出到终端 tesseract image.png stdout # 输出到文件,默认英文 tesseract image.png out # 指定中文 + 英文 tesseract image.png out -l chi_sim+eng # 保留版面/表格布局 tesseract image.png out --psm 6

常用 --psm(页面分割模式):

值 含义
6 假设一个均匀文本块
3 自动分页(默认)
11 稀疏文本,无特定顺序
7 单行文字

1.3 Python 调用

pip install pytesseract pillow
from PIL import Image import pytesseract text = pytesseract.image_to_string(Image.open("image.png"), lang="eng") print(text)

中文识别前建议先对图像做灰度化、二值化、去噪,能显著提升正确率。

2 open-ocr 项目

Tesseract 的容器化服务封装,便于以 HTTP API 方式提供 OCR 能力:

# docker-compose 一键起服务(示意) services: openocr: image: tleyden5iwx/open-ocr command: ["/usr/local/bin/run_service.sh", "py-tesseract-ocr"] ports: - "9292:9292"
curl -F "image=@image.png" http://localhost:9292/ocr

3 深度学习 OCR 思路

小数据集上即可上手深度学习 OCR,常用路线:

  1. CNN → CTC
  2. 目标检测 + 识别两阶段
  3. 端到端
    • 成熟方案如 PaddleOCR、EasyOCR,开箱即用且支持中文。

4 附:相关教程

5 常见问题

  • 中文识别乱码:需安装并指定 chi_sim/chi_sim+eng 语言包。
  • 识别率低:优先做图像预处理(缩放、二值化)与 --psm 调参。
  • 大批量处理:用 Tesseract 的 batch 接口或接入 open-ocr / PaddleOCR 服务化。
阅读 — · 全站 —
🎸 我的歌单 0 首