python实现场景识别_本项目基于yolo3 与crnn 实现中文自然场景文字检测及识别

本项目基于yolo3 与crnn 实现中文自然场景文字检测及识别

由于本项目融合多个框架,维护较困难,为了更好的部署应用,后续将只围绕darknet框架进行开发,不在支持keras、tensorflow、pytorch。

实现功能

文字方向检测 0、90、180、270度检测(支持dnn/tensorflow)

支持(darknet/opencv dnn /keras)文字检测,支持darknet/keras训练

不定长OCR训练(英文、中英文) crnn\dense ocr 识别及训练 ,新增pytorch转keras模型代码(tools/pytorch_to_keras.py)

支持darknet 转keras, keras转darknet, pytorch 转keras模型

身份证/火车票结构化数据识别

新增CNN+ctc模型,支持DNN模块调用OCR,单行图像平均时间为0.02秒以下

CPU版本加速

支持基于用户字典OCR识别

新增语言模型修正OCR识别结果

支持树莓派实时识别方案

环境部署

GPU部署 参考:setup.md

CPU部署 参考:setup-cpu.md

下载编译darknet(如果直接运用opencv dnn或者keras yolo3 可忽略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)

下载模型文件

模型文件地址:

复制文件夹中的所有文件到models目录

模型转换

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

编译语言模型(可选)

git clone --recursive https://github.com/parlance/ctcdecode.git

cd ctcdecode

pip install .

下载语言模型 (可选)

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/

模型选择

参考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端口号,可以设置任意端口

访问服务

识别结果展示

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值