参考
[1] https://github.com/eragonruan/text-detection-ctpn
[2] https://github.com/senlinuc/caffe_ocr
[3] https://github.com/YCG09/chinese_ocr 感谢作者!
[4] https://github.com/xiaomaxiao/keras_ocr
认真看源码!
基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别
- 文本检测:CTPN
- 文本识别:DenseNet + CTC
环境部署
-
Bash
sh setup.sh
```
* 注:CPU环境执行前需注释掉for gpu部分,并解开for cpu部分的注释 -
Demo
将测试图片放入test_images目录,检测结果会保存到test_result中
``` Bash
python demo.py
``` - 一定在终端运行demo.py 代码,另外,因不能连接外网,所以在进行依赖时,需要用公司镜像完成安装。
- 释放占用的显存时,只需要kernel,restart重启即可。在jupyter notebook中加!命令,相当于终端执行的命令。
- 切换python环境 source activate base 即可切换到常用的,安装有许多依赖库的 anaconda2 python2环境。这样才能运行demo.py.
Demo
将测试图片放入test_images目录,检测结果会保存到test_result中
python demo.py
模型训练
CTPN训练
详见ctpn/README.md
DenseNet + CTC训练
1. 数据准备
数据集:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m)
- 共约364万张图片,按照99:1划分成训练集和验证集
- 数据利用中文语料库(新闻 + 文言文),通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成
- 包含汉字、英文字母、数字和标点共5990个字符
- 每个样本固定10个字符,字符随机截取自语料库中的句子
- 图片分辨率统一为280x32
图片解压后放置到train/images目录下,描述文件放到train目录下
2. 训练
cd train
python train.py
3. 结果
val acc | predict | model |
---|---|---|
0.983 | 8ms | 18.9MB |
- GPU: GTX TITAN X
- Keras Backend: Tensorflow
4. 生成自己的样本
可参考SynthText_Chinese_version,TextRecognitionDataGenerator和text_renderer