项目简介
本项目基于YOLOv3和CRNN算法,实现了中文自然场景文字检测及识别。主要功能有文本方向检测、中文场景文字检测、文字识别、身份证/火车票结构化数据识别等。项目支持多种深度学习框架(如darknet、keras、torch等)的模型转换,还提供了基于Docker的部署方案,支持CPU和GPU部署。
项目的主要特性和功能
- 文本方向检测:支持0、90、180、270度检测。
- 中文场景文字检测:支持darknet、opencv dnn /keras的YOLOv3文字检测,支持darknet/keras训练。
- 不定长OCR训练:支持英文、中英文CRNN模型训练,提供PyTorch转Keras模型代码。
- 模型转换:支持darknet转keras、keras转darknet、pytorch转keras模型。
- 身份证/火车票结构化数据识别:提供身份证/火车票信息的自动化识别。
- 新增CNN+CTC模型:支持DNN模块调用OCR,单行图像平均时间为0.02秒以下。
安装使用步骤
1. 环境部署
- GPU部署:参考
setup.md
文件进行配置。 - CPU部署:参考
setup-cpu.md
文件进行配置。
2. 下载编译darknet
若使用opencv dnn或keras yolo3,可忽略darknet的编译。
bash
mv darknet chineseocr/
make
修改 darknet/python/darknet.py
文件中的路径配置。
3. 下载模型文件
模型文件地址:百度网盘
将文件夹中的所有文件复制到 models
目录。
4. 模型转换
- PyTorch转Keras:
bash python tools/pytorch_to_keras.py -weights_path models/ocr-dense.pth -output_path models/ocr-dense-keras.h5
- Darknet转Keras:
bash python tools/darknet_to_keras.py -cfg_path models/text.cfg -weights_path models/text.weights -output_path models/text.h5
- Keras转Darknet:
bash python tools/keras_to_darknet.py -cfg_path models/text.cfg -weights_path models/text.h5 -output_path models/text.weights
5. 编译语言模型(可选)
bash
cd ctcdecode
pip install .
6. 下载语言模型(可选)
bash
wget https://deepspeech.bj.bcebos.com/zh_lm/zh_giga.no_cna_cmn.prune01244.klm
mv zh_giga.no_cna_cmn.prune01244.klm chineseocr/models/
7. 构建Docker镜像
bash
docker build -t chineseocr .
docker run -d -p 8080:8080 chineseocr /root/anaconda3/bin/python app.py
8. Web服务启动
bash
cd chineseocr
python app.py 8080 # 8080端口号,可以设置任意端口
9. 访问服务
通过浏览器访问 http://127.0.0.1:8080/ocr
进行文字识别。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】