这是我尝试写的第一篇技术博客,借鉴了很多博客和教程,写出了自己的代码,代码较为冗杂而且程序十分耗时。所以本文主要提供验证码识别的一个简单的思路,代码实现的部分还望各位大佬指点。
看了好几篇验证码图片识别的博文,不难归纳出验证码识别的大概思路是收集训练集——>图像处理——>得到图片特征值——>训练——>识别,其中图像处理部分又包括了灰度化、二值化、去噪、分割等过程。本文将尽量有详有略地讲述整个过程,以及本菜鸡在开发过程中遇到的问题。
话不多说,现在开始。
一、训练集的收集
要收集足够多的验证码,只需要写一个简单的爬虫,去一些各大网站的登录系统爬取就好。本菜鸡爬的是自己学校教务系统的登录网站,所以不太方便附上代码。本菜鸡总共爬取了500张验证码作为训练集,以及200张验证码用于测试,并已将自己得到的验证码放到了github上,github地址在文末给出。
这一过程需要注意,必须要手动输入这些验证码的答案,并将这些答案保存下来。而且为了提高识别的正确率,需要检查自己输入的验证码内容是否有误
接下来我们就要对收集到的训练集进行处理。