littlebot
Published on 2025-04-10 / 0 Visits
0

【源码】基于YOLOv3和CRNN的中文场景文字检测与识别系统

项目简介

本项目基于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】