在Windows上调试TensorFlow 2.0 中文手写字识别(汉字OCR)

在Windows上调试TensorFlow 2.0 中文手写字识别(汉字OCR)

一、环境的搭建
Windows+1080Ti+Cuda10.1
Tsorflow2.0.0
Numpy
1.16.4
注意:这里tensorflow和numpy的版本一定不能错,要不然后面会有意想不到的bug!!

二、数据的准备
数据全部来自于CASIA的开源中文手写字数据集,该数据集分为两部分:
CASIA-HWDB:离线的HWDB,我们仅仅使用1.0-1.2,这是单字的数据集,2.0-2.2是整张文本的数据集,我们暂时不用,单字里面包含了约7185个汉字以及171个英文字母、数字、标点符号等;
CASIA-OLHWDB:在线的HWDB,格式一样,包含了约7185个汉字以及171个英文字母、数字、标点符号等,我们不用。
可以直接运行 dataset/get_hwdb_1.0_1.1.sh 下载,原始数据下载链接点击这里
在这里插入图片描述
关于数据的处理部分,从服务器下载到的原始数据是 trn_gnt.zip 解压之后是 gnt.alz, 需要再次解压得到一个包含 gnt文件的文件夹;再次解压的时候可能普通的解压软件使用不了,可以点击这里下载ALZip这个解压软件,解压后里面每一个gnt文件都包含了若干个汉字及其标注。将得到的训练和测试数据分别放到两个文件夹里。
在这里插入图片描述
三、数据的训练
1.首先将解压后的gnt文件转换为tfrecord(训练数据测试数据都需转)
这里在读数据的时候可能会报gbk编码的错误,需要在后面加上encoding=“UTF-8”
在这里插入图片描述

转tfrecord指令:python convert_to_tfrecord.py ./gntDataTrn
python convert_to_tfrecord.py ./gntDataTst
在这里插入图片描述

2.生成tfrecord后就可以训练了,训练之前需要在train_simple.py导包的地方添加几行GPU均衡的代码,不然可能会报显存不足的错。

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config=ConfigProto()
config.gpu_options.allow_growth=True
session=InteractiveSession(config=config)

3.根据自己的显卡配置修改这训练代码里的两处的batch,代码中的epochs默认是15000,设置到120~150之间就OK。
这里我的batch修改为6
4. 如果你找不到alfred模块, 通过 pip3 install alfred-py进行安装。
5. 运行的时候如果报tensorflow只能用2.1.0的错,可以把tensorflow_datasets降低版本试试。
训练指令:python train_simple.py
在这里插入图片描述
在这里我训到200个epochs,准确率达到98左右,测试集准确率80左右(已初步优化)。

四、模型的测试
测试指令:python demo.py
因为是在windows上测试的,测试出的结果是字节形式的,需要在测试代码的64行加上encoding=“utf-8”
在这里插入图片描述
测试出的效果:
在这里插入图片描述
源码链接:https://github.com/jjcheer/ocrcn_tf2
哈哈哈哈哈!!!第一次写博客可能写的有点儿哆嗦,请各位见谅_^!!!

评论 60
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值