## 本项目基于[yolo3](https://github.com/pjreddie/darknet.git) 与[crnn](https://github.com/meijieru/crnn.pytorch.git) 实现中文自然场景文字检测及识别
master分支将保留一周,后续app分支将替换为master
# 实现功能
- [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] 新增对身份证/火车票结构化数据识别
- [ ] 新增语音模型修正OCR识别结果
- [ ] 新增CNN+ctc模型,支持DNN模块调用OCR,单行图像平均时间为0.02秒以下
- [ ] 优化CPU调用,识别速度与GPU接近(近期更新)
## 环境部署
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)
## 下载模型文件
模型文件地址:
* [baidu pan](https://pan.baidu.com/s/1gTW9gwJR6hlwTuyB6nCkzQ)
* [google drive](https://drive.google.com/drive/folders/1XiT1FLFvokAdwfE9WSUSS1PnZA34WBzy?usp=sharing)
复制文件夹中的所有文件到models目录
## 模型转换
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
```
## 编译语言模型
``` Bash
git clone --recursive https://github.com/parlance/ctcdecode.git
cd ctcdecode
pip install .
```
## 下载语言模型
``` 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/
```
## web服务启动
``` Bash
cd chineseocr## 进入chineseocr目录
ipython app.py 8080 ##8080端口号,可以设置任意端口
```
## 构建docker镜像
``` Bash
##下载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
```
## 识别结果展示
<img width="500" height="300" src="https://github.com/chineseocr/chineseocr/blob/master/test/train-demo.png"/>
<img width="500" height="300" src="https://github.com/chineseocr/chineseocr/blob/master/test/idcard-demo.png"/>
<img width="500" height="300" src="https://github.com/chineseocr/chineseocr/blob/master/test/img-demo.png"/>
<img width="500" height="300" src="https://github.com/chineseocr/chineseocr/blob/master/test/line-demo.png"/>
## 访问服务
http://127.0.0.1:8080/ocr
<img width="500" height="300" src="https://github.com/chineseocr/chineseocr/blob/master/test/demo.png"/>
## 参考
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
没有合适的资源?快使用搜索试试~ 我知道了~
Python实现中文自然场景文字检测及识别源码,基于yolo3 与crnn
共303个文件
jpg:110个
xml:100个
py:43个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 68 浏览量
2023-01-10
10:42:03
上传
评论 4
收藏 13.01MB ZIP 举报
温馨提示
Python实现中文自然场景文字检测及识别源码,基于yolo3 与crnn
资源推荐
资源详情
资源评论
收起资源包目录
Python实现中文自然场景文字检测及识别源码,基于yolo3 与crnn (303个子文件)
cython_nms.c 422KB
gpu_nms.c 342KB
text.cfg 8KB
make-for-cpu.cmd 133B
gpu_nms.cpp 285KB
checkbox.css 10KB
nms_kernel.cu 5KB
text.data 95B
Dockerfile 1017B
loading.gif 4KB
.gitmodules 84B
gpu_nms.hpp 146B
ocr.html 5KB
base.html 47B
text-train-icdr2019.ipynb 1.26MB
test.ipynb 337KB
text-train.ipynb 14KB
train-ocr.ipynb 12KB
img.jpeg 52KB
idcard-demo.jpeg 39KB
35.jpg 411KB
28.jpg 155KB
25.jpg 153KB
27.jpg 151KB
45.jpg 151KB
50.jpg 146KB
85.jpg 142KB
75.jpg 140KB
94.jpg 138KB
3.jpg 133KB
30.jpg 131KB
33.jpg 130KB
15.jpg 130KB
19.jpg 126KB
38.jpg 125KB
53.jpg 123KB
57.jpg 120KB
43.jpg 118KB
26.jpg 116KB
9.jpg 116KB
74.jpg 114KB
0.jpg 112KB
train-demo.jpg 111KB
58.jpg 110KB
55.jpg 110KB
91.jpg 109KB
51.jpg 108KB
96.jpg 107KB
63.jpg 106KB
62.jpg 106KB
77.jpg 106KB
29.jpg 103KB
18.jpg 103KB
76.jpg 103KB
59.jpg 102KB
24.jpg 100KB
82.jpg 99KB
86.jpg 97KB
47.jpg 96KB
71.jpg 96KB
67.jpg 94KB
88.jpg 93KB
72.jpg 92KB
34.jpg 89KB
23.jpg 89KB
21.jpg 89KB
40.jpg 88KB
90.jpg 88KB
61.jpg 87KB
84.jpg 87KB
79.jpg 86KB
14.jpg 86KB
49.jpg 84KB
13.jpg 83KB
56.jpg 83KB
2.jpg 81KB
4.jpg 81KB
78.jpg 80KB
1.jpg 78KB
93.jpg 77KB
100.jpg 74KB
42.jpg 73KB
60.jpg 71KB
70.jpg 69KB
16.jpg 68KB
64.jpg 68KB
22.jpg 67KB
20.jpg 66KB
97.jpg 64KB
31.jpg 63KB
44.jpg 63KB
69.jpg 62KB
48.jpg 59KB
8.jpg 57KB
83.jpg 56KB
46.jpg 56KB
39.jpg 51KB
36.jpg 49KB
95.jpg 48KB
65.jpg 46KB
共 303 条
- 1
- 2
- 3
- 4
资源评论
- qq_586174592024-04-16资源是宝藏资源,实用也是真的实用,感谢大佬分享~
- 金湖OneFish2024-03-08超级好的资源,很值得参考学习,对我启发很大,支持!
- m0_530001252023-03-21支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
Python代码大全
- 粉丝: 2726
- 资源: 688
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现文档+程序边缘计算任务卸载与资源调度的算法,是论文的源代码,具有价值.rar
- 什么是学生成绩管理系统c++以及学习学生成绩管理系统的意义
- 什么是词向量-以及学习关于了解词向量的意义
- 什么是mybatis动态sql以及学习mybatis动态sql的意义
- 华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功