本项目旨在开发一个基于TensorFlow和Keras(或PyTorch)框架的深度学习模型,实现对自然场景中的中文文本进行准确检测及识别。通过构建端到端的OCR系统,该项目致力于提升复杂背景下的文字辨识精度与效率。
基于TensorFlow与Keras或PyTorch实现自然场景中的文字检测及端到端的中文OCR识别功能。
项目包含两个模型:一个使用Keras构建,另一个采用PyTorch搭建。该项目在Ubuntu环境下进行开发,并提供了针对GPU和CPU环境的不同脚本用于安装依赖项:
- GPU环境配置:
```bash
sh setup-python3-gpu.sh
```
- CPU Python3环境配置:
```bash
sh setup-python3-cpu.sh
```
项目模型分为三个网络部分:
1. 文字方向检测:基于VGG16的分类器,用于识别图像中的文字是0°、90°、180°或270°。
- 训练数据集包含约8,000张图片,准确率达到88.23%。
2. 文字区域检测:CTPN模型(CNN+RNN)用于定位图像中的文本行。支持CPU和GPU环境一键部署。
3. 端到端的OCR识别:CRNN网络(CNN + GRU/LSTM + CTC)实现不分隔符的不定长文字识别功能,提供Keras与PyTorch版本代码供选择使用。
对于模型体验:
- 运行`demo.py`或`pytorch_demo.py`(推荐),并根据需要修改测试图片路径。
- 若要显示CTPN检测结果及OCR输出,请调整文件 `./ctpn/ctpn/other.py` 中的 `draw_boxes()` 函数最后部分,将cv2.imwrite(dest_path, img)加入代码中。
在使用模型时,请确保更新相关配置信息(如模型文件位置等)。