littlebot
Published on 2025-04-12 / 1 Visits
0

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

项目简介

本项目是一个基于YOLOv3和CRNN的中文自然场景文字检测及识别系统。它结合了YOLOv3目标检测算法和CRNN(卷积循环神经网络),用于识别图像中的中文文本。系统支持文本方向检测、不定长OCR训练以及身份证/火车票结构化数据识别等功能,还提供多种模型的转换和加速功能,如从PyTorch到Keras模型的转换、从Darknet到Keras模型的转换等。

项目的主要特性和功能

  1. 文字方向检测:支持0、90、180、270度检测,支持dnn/tensorflow。
  2. 多框架支持:支持darknet、opencv dnn、keras文字检测,支持darknet/keras训练。
  3. 不定长OCR训练:支持英文、中英文OCR识别及训练,提供从PyTorch转Keras模型代码。
  4. 模型转换:支持darknet转keras、keras转darknet、pytorch转keras模型。
  5. 结构化数据识别:支持身份证/火车票结构化数据识别。
  6. 性能优化:支持CPU版本加速、基于用户字典的OCR识别以及语言模型修正OCR识别结果。

安装使用步骤

1. 环境准备

  • GPU部署:参考 setup.md
  • CPU部署:参考 setup-cpu.md

2. 下载编译darknet(如果使用opencv dnn或keras yolo3可忽略)

bash mv darknet chineseocr/ make 修改 darknet/python/darknet.py 第48行: python root = '/root/' # chineseocr所在目录 lib = CDLL(root + "chineseocr/darknet/libdarknet.so", RTLD_GLOBAL)

3. 下载模型文件

  • 百度网盘:链接
  • 其他链接:链接 将文件夹中的所有文件复制到 models 目录。

4. 模型转换(非必须)

  • PyTorch OCR 转 Keras OCR: 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. 模型选择

参考 config.py 文件。

6. 构建Docker镜像(可选)

bash docker build -t chineseocr . docker run -d -p 8080:8080 chineseocr /root/anaconda3/bin/python app.py

7. 启动Web服务

bash cd chineseocr # 进入chineseocr目录 python app.py 8080 # 8080端口号,可以设置任意端口

8. 访问服务

访问 http://127.0.0.1:8080/ocr 进行文字检测和识别。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】