github 爬虫 监控,github 爬虫监控 框架
本文基于tensorflow,keras/pytorch,实现了自然场景的文字检测和端到端的OCR汉字识别。
参考github知识库
实现功能
文本检测0、90、180、270度检测
在文字检测的后期,我们将切换到keras版本文字检测,实现keras端到端的文字检测和识别。
不确定OCR识别
部署环境
尝试
##GPU环境
sh设置. sh
##CPU环境
sh安装程序-cpu.sh
##CPU python3环境
sh setup-python3.sh
运行环境:python3.6 tensorflow1.7 cpu/gpu
模特培训
它分为三个网络。
1.文本方向检测网络-分类器(vgg16)
2.文本区域检测网络-CTPN(CNN RNN)
3.端到端文本识别网络(CNN GRU/LSTM CTC)
文本检测-vgg分类
基于图像分类,在VGG16模型的基础上训练了0、90、180和270度检测的分类模型。
代码详细参考文件angle/predict.py。训练图片8000张,准确率88.23%。
文本区域检测CTPN
支持CPU,GPU环境,一键部署,
文本检测培训参考
OCR端到端识别:CRNN
Ocr采用GRU CTC端到端识别技术,实现不分离的不定字符识别。
为keras和pytorch版本提供培训代码。在了解keras的基础上,可以切换到pytorch版本,更加稳定。
另外参考tensorflow版本的资源库:TF:LSTM-CTC_loss。
这个仓库怎么用?
如果你只是测试它
运行demo.py,写出测试图片的路径。如果你想显示ctpn的结果,修改文件的draw_boxes函数的最后一部分。/ctpn/ctpn/other.py,cv2.inwrite(dest_path ,img),这样就可以得到ctpn检测的文本区域框和图像的ocr识别结果。
如果你想训练这个网络
1列车ctpn。
导航到路径-。/ctpn/ctpn/train _ net.py。
预训练的vgg网络路径VGG_imagenet.npy
下载预训练权重,pretrained_model指向路径。
此外,整个模型的训练前体重检查点
Ctpn数据集还是百度云
数据集下载解压后,将pascal_voc类中的参数self.devkit_path指向。ctpn/lib/data sets/Pascal _ VOC . py文件到数据集的路径。
火车crnn。
Keras版本。/train/keras _ train/train _ batch . py model _ path-指向训练前的重量位置
MODEL _ PATH——指向保存模型训练的位置。
Keras模型训练前重量
Pytorch版本。/train/py torch-train/crnn _ main . py
parser.add_argument(
- crnn ,
help= crnn的路径(继续训练),
默认=预训练体重的路径,取决于您下载的预训练体重的位置)
parser.add_argument(
-实验,
help=存储样本和模型的位置,
默认=模型训练权重的保存位置,由自己指定)
识别结果显示
文本检测和OCR识别结果
===========================================================
===========================================================
主要是因为训练只包含中英文字母,所以很多公式结构无法识别。
看纯文本。
===========================================================
===========================================================
待续
Tensorflow版本crnn,计划尝试当前各种招数(Dropout,BN,Learning _ Decay等。)
大家可以看到,纯文本的识别结果还是比较宽泛的,感觉在crnn网络中还可以改进。现在crnn里的cnn有点浅薄。
而rnn层是单层双向注意,目前正在针对这个地方进行修改,使用迁移学习和restnet作为特征提取层。
利用多层双向动态rnn关注ctc的机制深化模型。目前模型正在搭建中。如果结果好,就发上来。如果没有,那就只能爽了~ ~ ~
涉及