验证码识别综述

作者: 科技与少女 | 来源:发表于2018-03-16 17:46 被阅读26次

    目录

    1.输入识别出的字符类验证码
    2.点选类验证码
    3.拖动滑块到指定位置的验证码
    4.OCR资源集合

    1. 输入识别出的字符类验证码

    image

    对于这类验证码的识别方法为:

    需要分割字符

    1. 图片预处理,包括二值化,降噪等
    2. 图片分割
    3. 提取特征
    4. 训练分类模型,识别字符

    如果使用深度学习训练分类模型,第三步和第四步可以合为一步,神经网络可以自动提取特征
    这种方法的难点在于:

    1. 背景噪声难以去除,例如字体上有横线等
    2. 图片粘在一起,难以切割
    3. 文字有旋转,扭曲等变形

    在样本数量不是很大的情况下,这三种情况都会对准确率造成影响,当然如果样本足够多,这些也不是问题

    不需要分割字符

    图片中字符个数固定

    对于固定字符的图片,可以利用深度学习里的CNN,基于CNN去识别验证码,其实就是一个图片的多标签学习问题。比如考虑一个4个数字组成的验证码,那么相当于每张图就有4个标签。那么我们把原始图片作为输入,4个标签作为输出,扔进CNN里,看看能不能收敛就行了。
    https://zhuanlan.zhihu.com/p/21344595

    图片中字符个数不固定

    可以利用RNN/LSTM/GRU + CTC, 方法最早由Alex Graves在06年提出应用于语音识别。这个方法的好处在于可以产生任意长度的文字,并且模型的性质决定了它有能力学到文字与文字之间的联系(temporal relations/dependencies)。不足之处在于sequential natural决定了它的计算效率没有CNN高,并且还有潜在的gradients exploding/vanishing的问题
    https://www.zhihu.com/question/20191727/answer/140372044

    2. 点选类验证码

    image
    这类验证码的识别可以利用目标检测的方法,先从图像中检测出文字,再对文字分类.
    目标检测可以采用的算法有Yolo,SSD
    具体实现可以参考这篇博客

    3. 拖动滑块到指定位置的验证码

    image

    这类验证码一般不需要打码做训练,只需要找到缺口的位置,并模拟运动轨迹就可以了.
    这里有说明
    以及代码

    4. OCR资源集合

    github awesome-ocr
    专知 文字识别

    相关文章

      网友评论

        本文标题:验证码识别综述

        本文链接:https://www.haomeiwen.com/subject/mqxrqftx.html