darknet-ocr中文自然场景文字检测及识别

联合创作 · 2023-09-30 13:30

darknet-ocr 是基于 darknet 框架,实现 CTPN 版本自然场景文字检测与 CNN+CTCOCR 文字识别的项目。目前支持系统:mac/ubuntu python=3.6

实现功能

  • [x] 文字方向检测 0、90、180、270度检测(支持dnn/tensorflow)
  • [x] 支持(darknet/opencv dnn /keras)文字检测,支持darknet/keras训练
  • [x] 不定长OCR训练(英文、中英文) crnn\dense ocr 识别及训练 ,新增pytorch转keras模型代码(tools/pytorch_to_keras.py)
  • [x] 支持darknet 转keras, keras转darknet, pytorch 转keras模型
  • [x] 身份证/火车票结构化数据识别
  • [x] 新增CNN+ctc模型,支持DNN模块调用OCR,单行图像平均时间为0.02秒以下
  • [ ] CPU版本加速
  • [ ] 支持基于用户字典OCR识别
  • [ ] 新增语言模型修正OCR识别结果
  • [ ] 支持树莓派实时识别方案

ocr 训练数据集(压缩包解码:chineseocr)

百度网盘链接:https://pan.baidu.com/s/1UcUKUUELLwdM29zfbztzdw 提取码: atwn

gofile 地址:http://gofile.me/4Nlqh/uT32hAjbx 密码 https://github.com/chineseocr/chineseocr

环境部署

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

下载编译 darknet

git clone https://github.com/pjreddie/darknet.git 
mv darknet chineseocr/
##编译对GPU、cudnn的支持 修改 Makefile
#GPU=1
#CUDNN=1
#OPENCV=0
#OPENMP=0
make 

修改 darknet/python/darknet.py line 48
root = '/root/'##chineseocr所在目录
lib = CDLL(root+"chineseocr/darknet/libdarknet.so", RTLD_GLOBAL)

下载模型文件

模型文件地址:

模型转换(非必须)

pytorch ocr 转 keras ocr

python tools/pytorch_to_keras.py  -weights_path models/ocr-dense.pth -output_path models/ocr-dense-keras.h5

darknet 转 keras

python tools/darknet_to_keras.py -cfg_path models/text.cfg -weights_path models/text.weights -output_path models/text.h5

keras 转 darknet

python tools/keras_to_darknet.py -cfg_path models/text.cfg -weights_path models/text.h5 -output_path models/text.weights

模型选择

参考config.py文件

构建 Docker 镜像

##下载Anaconda3 python 环境安装包(https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh) 放置在chineseocr目录下   
##建立镜像   
docker build -t chineseocr .   
##启动服务   
docker run -d -p 8080:8080 chineseocr /root/anaconda3/bin/python app.py

Web 服务启动

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

访问服务

http://127.0.0.1:8080/ocr

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报