记录
介绍
在上一篇博客中介绍了怎么进行多lable的模型训练,但是如果遇到不同长度的验证码就GG了,因为之前训练的模型只能针对固定长度的验证码使用,所有遇到不同长度的验证码的时候就需要先检测验证码长度,然后再加载不同的模型识别了。当然,大牛应该不需要训练两个模型,当然,大牛也不需要看我的博客了。
这里使用的网络是mnist的修改版。
数据长这样
数据
使用的数据是从我们学校教务处爬来的验证码,地址是http://jw.glut.edu.cn ,你可以自己去爬,我就写了,数据可以使用tesseract识别内容,然后生成清单文件,这部分略过了。
清单文件
清单文件大致长这样
这里我的分类是0表示4位长度,1表示5位长度,2表示6位长度。我这里只有3类数据。因为caffe分类必须从0开始,所有就把长度减4作为分类序号。
清单文件可以使用python生成,简单的文件操作就不贴代码浪费版面了。
网络配置文件
solver文件
训练
直接控制台输入
python调用
使用python调用训练好的模型
总结
我用了3W左右的数据量训练网络,训练结果准确率在97%左右,效果算相当完美的了。