
CHINESE-OCR
经典 CTPN+CRNN 方案,快速跑通中文场景文字识别
CHINESE-OCR 是一个面向中文自然场景文字的端到端检测与识别开源项目,采用 CTPN 做文本检测、CRNN+CTC 做文本识别的经典两阶段方案。它解决的核心问题是:在复杂背景、多角度、光照不均的自然场景图片中,自动定位中文文本行并输出可读文字,弥补早期 OCR 工具对中文竖排、密集字符和倾斜文本支持不足的缺陷。项目基于 TensorFlow/Keras 与 PyTorch 实现了 CRNN 训练与推理流程,提供数据准备、模型训练、测试评估的完整脚本,并附带预训练权重与示例图片,方便开发者快速跑通 demo。作为 legacy 项目,它更偏向教学与复现价值,代码结构清晰,适合作为学习 CTPN、CRNN、LSTM-CTC 原理的入门材料,也可作为中文 OCR 业务的原型基线。
项目数据
使用教程
环境要求
- Python 3.6
- TensorFlow 1.7(CPU 或 GPU 版本)
- Keras / PyTorch(随 setup 脚本一起安装的较早版本)
- 可用的 CPU 或 GPU 环境(GPU 环境需自行准备 CUDA)
安装与启动步骤
-
1克隆项目仓库
把 CHINESE-OCR 源码下载到本地,并进入项目目录,后续命令都在该目录中执行。
git clone https://github.com/xiaofengShi/CHINESE-OCR.git cd CHINESE-OCR -
2按环境执行安装脚本
README 只提供三个 setup 脚本:GPU 环境用 setup.sh,CPU 环境用 setup-cpu.sh,CPU python3 环境用 setup-python3.sh,按自己的机器选择其一执行。
sh setup-cpu.sh -
3下载预训练权重
文字方向检测(VGG 分类)、CTPN、CRNN 的模型权重需从 README 给出的百度云链接下载并放到项目对应目录,链接可能已过期。
-
4放入测试图片
准备一张自然场景中文图片,运行 demo 时把测试图片的路径写入脚本中即可,图片路径不要用占位符。
-
5运行 demo 测试
执行 demo.py,把待测图片路径写进脚本;如需显示 CTPN 检测框,还要修改检测相关代码。
python demo.py -
6输出检测框结果图
修改 ./ctpn/ctpn/other.py 中 draw_boxes 函数最后部分,用 cv2.imwrite('dest_path', img) 保存带文字区域框的图像。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
测试图片路径 | 是 | demo.py 中写入待识别图片的本地路径 | ./test.jpg |
dest_path | 否 | other.py 中 draw_boxes 保存检测框结果图的输出路径 | ./result.jpg |
如何确认成功
demo.py 运行结束后终端输出 OCR 识别文字;若改了 draw_boxes,还能在 dest_path 看到画有 CTPN 文字区域框的图片。
常见问题
Q:安装时报依赖版本冲突怎么办?
A:本项目基于 Python 3.6、TensorFlow 1.x 和较早版本的 Keras/PyTorch,建议用独立的 Python 3.6 虚拟环境或 conda 环境执行 setup 脚本,不要装到新版 Python 上。
Q:预训练模型或依赖下载链接打不开?
A:README 明确提示这是历史项目,依赖版本与下载链接可能已经过期。可先搜索仓库现有 Issue 中是否有人给出替代地址。
Q:demo 跑完看不到检测框图像?
A:README 说明需自行修改 ./ctpn/ctpn/other.py 的 draw_boxes 函数最后部分,加上 cv2.imwrite('dest_path', img) 才会落盘保存结果图。
Q:可以商用吗?
A:仓库没有附带明确的开源许可证,默认版权归作者保留。商业使用、再分发或大规模衍生开发需先与维护者联系确认授权。
注意事项
- 本项目为历史项目,仅维护现状,不再进行功能开发,提问回复可能较慢;新用户请先阅读现有 Issue
- 使用环境为 Python 3.6 + TensorFlow 1.7(CPU/GPU),在新机器上复现需要额外处理旧版本依赖
- 作者已转向其他研究方向,CTPN/CRNN 相关代码更偏教学与复现价值
- 商业使用或再分发前请先确认授权,仓库暂无明确开源许可证
核心亮点
- 提供 CTPN 检测与 CRNN+CTC 识别完整流程,含训练和推理脚本,可直接复现论文级方案
- 同时覆盖 TensorFlow/Keras 和 PyTorch 两套 CRNN 实现,便于对比学习
- 附带预训练权重与示例数据,降低中文 OCR 入门门槛
不足之处
- 项目标注为 legacy,依赖版本较旧,在新环境安装可能遇到兼容性问题
- 仅支持水平文本检测,对弯曲、竖排、任意方向中文文本效果有限
适用场景
- 学习 CTPN、CRNN、CTC 等 OCR 核心算法的教学与实验
- 中文票据、证件、街景文字识别原型快速验证
- 作为基线模型对比新式 OCR 方案(如 DBNet+CRNN)的性能
替代项目
PaddleOCR、chineseocr_lite
项目介绍
同类项目推荐
modlens
开源
给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。
The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···
opencv
开源
开箱即用的视觉算法库,搞定图像视频处理与识别
Open Source Computer Vision Library
OpenCVTutorials
开源
中文 OpenCV 教程,从入门到实战,边看边跑代码
OpenCV-Python4.1 中文文档
DEIMv2
开源
用DINOv3做实时检测,又快又准,直接落地。
[DEIMv2] Real Time Object Detection Meets DINOv3