tensorflow 基于深度学习 LSTM 识别验证码 多标签分类

1、前期经验

        关于验证码识别,试过使用传统的machine learning方式识别,在相同样本下效果还算可以,但当迁移到别的数据集时,效果不理想。

        对于使用深度学习识别验证码,尝试过使用LeNet-5、AlexNet两种卷积网络,可能是网络结构简单的原因,结果不收敛。故尝试用了RNN中的LSTM单元网络来识别,效果较理想。

2、原始验证码文件

        验证码相对来说算简单,字符没有倾斜和重叠,但有不少干扰线。

验证码        验证码        验证码

3、网络结构

        此处使用了双层的LSTM作为隐含层,保留最后四个cell的输出结果,加一层full connection,并concat得到最后的输出。

network structure

4、训练过程

        使用Adam算法替代梯度下降,迭代到3000次,accuracy达0.65,loss小于0.03。继续进行迭代、优化能到达更高的准确率。 验证码

验证码

5、总结

        由此等简单项目能体验出深度学习的厉害之处,传统机器学习由于需要人工特征工程,较为局限。深度神经网络通过构建大量参数的行为,并结合优化算法,实现自学习所有局部、抽象、高层特征。此乃区别之处。

代码地址:https://github.com/wzzzd/LSTM_captcha

猜你喜欢

转载自blog.csdn.net/Neleuska/article/details/80398000