这个东西,从放寒假的前一天,老师叫我作起,已经快2个月了,开学一个星期后,在陈老师的督促下,算是作的差很少了。python
这个的应用领域主要是自动化程序,验证码能够说是网络安全的一道防火墙,自动化程序的难点。算法
可是,对于这个图像识别这个技术来讲,还远远不够,至于应用的角度,更是狭窄,所以这不是一个终点,偏偏是一个起点。安全
机器学习有监督学习和无监督学习两种;我这里是监督学习,固然就得我手动的写每一张验证码的正确值了。网络
语言: python机器学习
工具: opencv工具
整体思路:样本学习,测试;学习
一、样本学习:测试
- 首先要对样本去噪,去噪将干扰线删除,对于一个像素点来讲,他的四周的其他的点,有5个,或者较多的像素点是空白,那么将能够判断他是噪点,而将他删除掉。
- 扭曲矫正,我这里的扭曲矫正,是片面的,真正是很难有较好的效果,对于不一样的验证码,有不一样的特色,有一些验证码的产生,就有这样的特色,角落处,有阴影,这使得字符有扭曲,根据这里,来实现不一样程度的扭曲矫正。
- 切割图像,将每一个字符切割下来,这里也是相对的了,粘连较严重即将影响字符的正确。
- 二进制化图像,是字符的地方是0,没有的地方是1(这里相反没有问题)。生成训练集。
- 训练模型制做,字符,二进制的像素点,joblib持久化保存,将模型保存到本地,进行预测,速度更快。
- 经过随机森林算法将样本数据训练。
二、测试:blog
- 测试的步骤和学习的步骤相似。
- 经过训练模型获得的分类结果计算正确率。
最后识别率在100%
网络安全