Skip to content

luoxiao/chineseocr

This branch is 5 commits behind chineseocr/chineseocr:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

443e2f2 · Jun 17, 2019

History

59 Commits
Apr 3, 2019
Mar 11, 2019
Apr 3, 2019
Nov 13, 2018
Apr 3, 2019
Apr 3, 2019
Apr 3, 2019
Apr 3, 2019
May 27, 2019
May 15, 2019
Apr 3, 2019
Dec 22, 2018
Aug 23, 2018
May 6, 2019
Oct 9, 2018
Jun 17, 2019
Apr 3, 2019
Apr 3, 2019
May 6, 2019
Apr 3, 2019
Apr 2, 2019
Dec 22, 2018
May 27, 2019
May 27, 2019
Apr 3, 2019

Repository files navigation

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

实现功能

  • 文字方向检测 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模型
  • 新增对身份证/火车票结构化数据识别
  • [] 新增语言模型修正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/

web服务启动

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

构建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

识别结果展示

访问服务

http://127.0.0.1:8080/ocr

参考

  1. yolo3 https://github.com/pjreddie/darknet.git
  2. crnn https://github.com/meijieru/crnn.pytorch.git
  3. ctpn https://github.com/eragonruan/text-detection-ctpn
  4. CTPN https://github.com/tianzhi0549/CTPN
  5. keras yolo3 https://github.com/qqwweee/keras-yolo3.git
  6. darknet keras 模型转换参考 参考:https://www.cnblogs.com/shouhuxianjian/p/10567201.html
  7. 语言模型实现 https://github.com/lukhy/masr

About

yolo3+ocr

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 87.0%
  • Python 9.2%
  • JavaScript 2.6%
  • CSS 0.5%
  • HTML 0.3%
  • Cuda 0.3%
  • Other 0.1%