验证码识别(01)

大四毕业设计题目是《百度验证码的识别》,本文以百度验证码为例,概述验证码识别的基本步骤。

基本步骤

  1. 移除背景

    用图像处理的方法将验证码去噪(去除干扰的图案)。

  2. 分离字符

    通过二值化,去噪,垂直投影,颜色填充等步骤将验证码中的字符分离出来。对于实心字符并且原本就是分开的验证码(如图一),通过垂直方向的投影就能分离出来;但是如果是字符有粘连,甚至重合(如图二),那么字符的分离会麻烦很多;如果是空心字符(如图三),可以通过颜色填充来分离字符;但是如果遇上既是重合又是空心的验证码(如图四),那分离难度会很大很大。图一,实心分离图二,实心重合图三,空心分离图四,空心重合

  3. 识别单独字符

    • 模板匹配法,利用模板图像与待识别的字符进行点对点比较,取相似度最高的字符。
    • 特征匹配法,通过分析字符的笔划特征或者字符像素在图像中的分布,设计分类器,识别字符。
    • 机器学习(神经网络),用大量人工识别的字符训练神经网络,然后用机器识别分离出来的字符。

知识储备

  1. 图像处理的基础
  2. 对神经网络的初步了解
  3. 会使用任何编程语言的图像处理的函数