基于Keras的26个英文字母训练

小编最近想改用tensorflow做识别,理由是比caffe更加python化,但是tensorflow用起来还是比较底层,所以用更加高层的Keras训练(还有一个库叫mxnet,提供更多的binding,但是也没有什么理由,感觉keras时间长一点吧),这样开发速度也可以提高很多。

数据库准备

首先准备一个字体数据库,可以用deep_ocr里面的脚本生成一个数据库。

简单说明一下里面的参数, 这里的字体库(~/workspace/deep_ocr_fonts/chinese_fonts)可以在这里下载。lower_eng 是指小写英语字母,–rotate 最大正负旋转三十度, –rotate_step 步长 2 度。

下面是数据库的一个截图,可以看出来,字体有不同的旋转。

screenshot-from-2017-09-25-10-04-14

最后生成的训练数据可以在这里 下载

脚本开发

首先import一些需要的库

两个函数用于读取数据库的所有图片

这里有点hard code,里面的train.txt和test.txt是固定的,请在数据库的文件夹下面运行这个脚本,否则会显示找不到数据。

然后我们设置一下脚本不要用完机器的gpu显存,只用0.3百分比。

简单选了一个简单lenet网络

训练lenet网络:

小编本机最后获得结果

笔者觉得还可以,测试部分可以达到96%的识别率,下一篇文章再试试中文吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注