主要针对身份证的地址文字OCR,其他有文字的图片也可以,但没有文字检测的功能
- background:生成文字的背景图片
- code:代码库
- corpus:语料库(需要自己准备,这里上传的是一个样例)
- font:字体库
- log:存放模型权重
├── code
│ ├── comp_face++.py (与face++的检测结果进行比较)
│ ├── data_generator.py (数据生成器)
│ ├── demo_new.py (将模型的输出结果用json存储)
│ ├── densenet.py (模型的网络结构)
│ ├── detect_ocr.py (检测及识别身份证文本)
│ ├── gen_real.py (生成真实的身份证图片及文本)
│ ├── id_label_map.pbtxt (文本检测的类别说明)
│ ├── keys.py (字库)
│ ├── model.png (模型的网络结构图)
│ ├── model.py (编译模型并指定优化器)
│ ├── test.py (输出生成图片的检测结果)
│ ├── train.py (训练代码)
│ └── train_test.py (测试训练代码)
- keras == 2.2.0
- tensorflow == 1.6.0
- 建立语料库(corpus/address_lite.txt)
- 训练模型(code/train.py)
代码参考该库,主要改进以下:
- 扩充了汉字库(增加了200多个,目前有6000个以上汉字)
- end2end的训练模式,从语料库直接生成文字图片,更加方便
- 文字和图片的随机增强(文字随机排列、图片的背景和字体的随机生成、文字的角度等)
loss为0.56,精度为0.93
模型与训练的代码分开除了地址,增加其他项目的识别(身份证号、有效日期等)增加文字检测功能(只针对身份证)- 文字增强(文字旋转图像不旋转、文字设置透明度)