数字验证码识别算法的研究和设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
86 2007, 43( 32)
Computer Engineering and Applications 计算机工程与应用
◎产品、研发、测试◎
数字验证码识别算法的研究和设计
王 虎 1, 冯 林 2, 孙宇哲 3 WANG Hu1, FENG Lin2, SUN Yu- zhe3
大连理工大学 大学生创新院, 辽宁 大连 116023 Institute of University Students’Innovation, Dalian University of Technology, Dalian, Liaoning 116023, China E- mail: wlys111@163.com
2
0, 1, … , 9 且 k≠i) 在 该 分 量 的 样 本 均 值 的 差 异 度 S′j( j=0, 1,
9
! 2
2
…, M) 。S′j 的计算公式: S′j =
( Y"k- Y"i) ×( Y"k- Y"i) 。
k=0
3
2
构造模板分量权值: 令特征性 "j=( Sj +0.01) (/ S′j +0.01) , 对
由于字符的基本形状一定, 质心居中, 字符的笔划经过每 个网格的笔划数大致保持稳定。细化后的笔划是由单像素构 成, 各个网格的黑色像素不会受字符笔划的粗细而变化。对于 模板期望值的计算 , 采用了统计的方法: 选取 1 000 个 样 本 , 计 算各个字符在每个网格的平均黑点数, 此数值即所求期望值。 2.2.2 交叉点特征模板强化区分能力
与 Ci 之间的匹配差异度。计算公式如下:
N
! Diffi= ( "k- !k) ×( "k- !k)
( 1)
k=1
10 个数字模板对应的 Diffi 值, 形成长度为 10 的差异度向 量, 其中最小值对应的数字即可作为 x 的识别结果。
2.1.2 区分能力更强的加权模板
每个形状特征都有一定的可信度, 例如, 统计数字“1”的横
与 子 结 构 引 导 的 汉 字 识 别[5]中 的 活 动 模 板 不 同 , 本 算 法 所 使用的活动模板, 是用一个小方块包围字符图形的某一部分, 包括图像的上、中、下部。虽然某些字符整体形变大 , 但是部分 的形变却很小, 从而具有较大的参考价值。例如,“7”的下部是 很 简 单 的 一 条 斜 线 , 可 以 用 于 区 分 数 字“1”和 数 字“2”, 如 图 5 所示:
向扫描时只有一个交叉点的行数, 该值比较固定, 样本方差小,
具 有 较 高 的 可 信 度 ; 数 字“2”的 下 部 变 形 较 大 , 而 且 位 置 不 定 ,
网格特征分析时, 黑点数目的样本方差大, 因而此模板分量不
Βιβλιοθήκη Baidu
可信。特征权值就是某形状特征的可信度的量化, 可信度高则
权值高, 可信度低则权值低。
( 2)
k=1
2.1.3 加权模板权值的构造
模板分量的权值 γj 是基于统计学方式计算得出的。 在随机的 n 个验证码样本中, 字符 C(i i=0, …, 9) 的模 板 长
度 为 N, Ci 的 模 板 样 本 有 如 下 参 数 : 各 分 量 的 样 本 均 值 Y"(j j=
2
0, 1, …, N) 、样本总体方差 Sj( j=0, 1, …, M) 、与其它字符 C(k k=
板之一。沿第一组数据的纵向某两坐标进行切割, 所得的交点 数目不同, 如图 4 所示:
2.2.3 活动模板引导部分特征识别 对于部分数字, 活动空间较大, 经过形变后其某部分结构
不定于某网格, 即网格特征模板的可信度较低。例如数字“1”, 常常以正斜或者反斜的形态出现, 倾斜角度也很不一定, 因此 容易出错。
Abstr act: CAPTCHA Decoder technology is used in multi - send technology.The paper presents a CAPTCHA Decoder System based on template matching.Grid feature template, crossing points feature template and improved dynamic template as well as hole number feature are used in the system.In order to improve the decoding accuracy, a weighted template is proposed and a statisti- cal approach is adopted to obtain the weight.Tests show that the system’s decoding accuracy is 100%. Key wor ds: template matching; weighted template; dynamic template; grid feature; crossing points feature
法; 孙宇哲( 1980- ) , 硕士, 研究方向: 移动开发、网络应用、数字信号处理。
王Com虎pu,te冯r En林gi,n孙eer宇in哲g a: n数d字A验pp证lic码ati识on别s 计算算法机的工研程究与和应设用计
2007, 43( 32) 87
2.2 外形特征模板及其优化
2.2.1 网格特征模板引导总体特征识别 网 格 特 征 模 板 是 第 一 个 外 形 模 版 , 是 最 简 单 、最 基 本 的 模
部分结构 A 的参数有, 黑点个数, 不均衡度等。不均衡度 可分为水平不均衡度和垂直不均衡度, 水平( 垂直) 不均衡度就 是 A 中各黑点到水平( 垂直) 中心的坐标差值求和。令 Cix 为 A 中第 i 个黑点的 横 坐 标 , zx 为 中 心 的 横 坐 标 , 规 定 位 于 左 边 的 黑点距离为负, A 的水平不均衡度计算方法如下:
实 验 中 发 现 网 格 特 征 模 板 对 于“2”、“3”、“5”、“7”,“1”、 “ 2”、“ 7”和“ 3”、“ 5”、“ 6”、“ 9”这 三 组 数 据 区 分 不 到 位 。分 析 这 些 数字字符图像的特点发现, 使用直线切割字符图像的同一坐标 位置所得的交叉点数目是不同的, 因此, 把交叉点特征作为模
本 文 运 用 模 板 匹 配 算 法 [3]构 架 验 证 码 识 别 系 统 的 基 本 框 架, 从统计学的可信度方面讨论了加权模板, 并提出了一种加 权 模 板 的 构 造 方 法 ; 分 析 了 字 符 图 像 的 网 格 特 征 、交 叉 点 特 征[4], 并由此构造了相应的模板向量; 使用改进的活动模板部分 结构分析算法[5], 减弱了形变对字符识别的干扰 , 提高了识别准 确率。
2 数字验证码识别系统
本系统的识别对象是较为常用的简单形变数字验证码, 样 本取自于动网论坛。这种验证码没有像素和颜色干扰, 也没有 字符粘连和重叠, 因此, 本文的工作集中在形变字符的识别。图 1 展示了十个数字字符两种不同程度形变的样本:
系统首先将验证码图像二值化并切割出单个字符, 存入处 理数组 X, 然后运用外形特征分析和模板匹配计算出差异度最 小的数字, 并将其作为识别结果。系统的识别过程是以模板匹 配算法为框架的, 包括三个外形特征模板, 分别是网格特征模 板 、交 叉 点 特 征 模 板 、活 动 模 板 , 并 使 用 了 对“6”、“8”、“9”区 分 能力较强的孔洞数特征。此外, 采 用 了 Hilditch 细 化 算 法 预 处 理图像, 从而可以忽略笔画粗细对网格特征活动模板等的影 响。为了提高模板的区分能力, 系统还使用了基于模板匹配的 加权模板。系统的识别过程如图 2 所示。
1 引言
目前, 网络上出现了很多基于文本的验证码。基于文本的 验证码验证码, 就是将一串随机产生的字符, 生成一幅图片, 图 片里随机的加入一些像素干扰、颜色干扰和形变干扰等等, 然 后要求用户将图片上的字符识别出来, 以达到防止恶意注册等 目 的 。本 文 研 究 的 是 是 无 像 素 干 扰 的 、大 小 固 定 的 、质 心 位 置 居 中, 含有形变干扰的数字字符( 形变数字验证码) 。
很多网络应用技术需要验证码识别技术。验证码种类繁 多, 越来越复杂; 另一方面, 识别系统具有很强针对性, 只能够 识别一种类型的验证码[1]。在公开的验证码识别算法中, 有一些 简单的识别算法[2]能够基本实现部分验证码的识别。但是, 这些 算法使用的模板较为单一, 准确率不高, 缺乏系统性, 不易移 植 。 本 文 设 计 了 一 种 多 模 板 的 、高 准 确 率 的 数 字 验 证 码 识 别 系 统, 算法易于移植。
摘 要: 验证码识别技术常用于网站的群发技术。使用网格特征模板、交叉点特征模板、改进的活动模板, 结合孔洞数特征, 设计了 基于模板匹配算法的形变数字验证码识别系统。为进一步提高识别率, 提出了一种加权模板及其构造方案, 并运用统计学方法, 通 过大量随机样本的多组实验, 求得各组模板及其权值。测试结果表明, 系统的识别准确率达到了 100%。 关键词: 模板匹配; 加权模板; 活动模板; 网格特征; 交叉点特征 文章编号: 1002- 8331( 2007) 32- 0086- 02 文献标识码: A 中图分类号: TP391.43
( 1) 计算 A 的水平中心位置; ( 2) 对 A 中各个黑点与水平中心的距离算术求和: Balance=
88 2007, 43( 32)
Computer Engineering and Applications 计算机工程与应用
!( cix- zx) 。
板。先将 20×20 的图 形 分 成 4×4 块 , 每 块 5×5 个 像 素 , 然 后 统 计各个网格中黑点个数。图像的网格分块如图 3 所示:
征量化值的数学期望。字符图像有多种形状特征, 因而模板是
由一个 N 维向量构成。
设字符 C(i i=0, …, 9) 的模板向量 β, 待识别字符图 像 x, 其 与 模 板 相 应 的 特 征 向 量 α, N 为 模 版 向 量 的 长 度 , 则 可 计 算 x
WANG Hu, FENG Lin, SUN Yu - zhe.Resear ch and design of digital char acter - based CAPTCHA decoder .Computer Engineer ing and Applications, 2007, 43( 32) : 86- 87.
2.1 基于加权模板的模板匹配
2.1.1 模板匹配 定义数字字符图像一个模板分量: 标准数字图像的形状特
基金项目: 国家自然科学基金( the National Natural Science Foundation of China under Grant No.50575031) 。 作者简介: 王虎( 1984- ) , 研究方向: 计算机图形处理, 模式识别与智能控制; 冯林( 1969- ) , 博士, 教授, 研究方向: 图像压缩、配准及融 合 和 演 化 算
模板向量的每个分量均对应一个权值, 从而每个字符对应
一个 N 维模板向量和一个 N 维权值向量, 两个向量便组成加
权模板。加权模版可以提高某特殊外形特征的权重, 降低不可
信外形特征的权重, 更加准确的进行识别。设待识别字符 x 的
权值向量 γ, 计算加权模板的匹配差异度:
N
! Diffi= ( "k- !k) ×( "k- !k) ×γk
"j 从大到小排序, 序号即该模板分量的权值。为了加强区分能 力, 我们对权值加上整体偏移量 offse(t 可调) ; 丢弃部分可信度
低的模板分量( 置权值为 0) 。
模板法是本项目算法的基本框架, 将各个数字字符的外形
特征都统一到模板内部, 然后进行一致的运算, 降低了程序的
复杂度, 提高了开发效率。那么, 如何构造好的模板呢?
Computer Engineering and Applications 计算机工程与应用
◎产品、研发、测试◎
数字验证码识别算法的研究和设计
王 虎 1, 冯 林 2, 孙宇哲 3 WANG Hu1, FENG Lin2, SUN Yu- zhe3
大连理工大学 大学生创新院, 辽宁 大连 116023 Institute of University Students’Innovation, Dalian University of Technology, Dalian, Liaoning 116023, China E- mail: wlys111@163.com
2
0, 1, … , 9 且 k≠i) 在 该 分 量 的 样 本 均 值 的 差 异 度 S′j( j=0, 1,
9
! 2
2
…, M) 。S′j 的计算公式: S′j =
( Y"k- Y"i) ×( Y"k- Y"i) 。
k=0
3
2
构造模板分量权值: 令特征性 "j=( Sj +0.01) (/ S′j +0.01) , 对
由于字符的基本形状一定, 质心居中, 字符的笔划经过每 个网格的笔划数大致保持稳定。细化后的笔划是由单像素构 成, 各个网格的黑色像素不会受字符笔划的粗细而变化。对于 模板期望值的计算 , 采用了统计的方法: 选取 1 000 个 样 本 , 计 算各个字符在每个网格的平均黑点数, 此数值即所求期望值。 2.2.2 交叉点特征模板强化区分能力
与 Ci 之间的匹配差异度。计算公式如下:
N
! Diffi= ( "k- !k) ×( "k- !k)
( 1)
k=1
10 个数字模板对应的 Diffi 值, 形成长度为 10 的差异度向 量, 其中最小值对应的数字即可作为 x 的识别结果。
2.1.2 区分能力更强的加权模板
每个形状特征都有一定的可信度, 例如, 统计数字“1”的横
与 子 结 构 引 导 的 汉 字 识 别[5]中 的 活 动 模 板 不 同 , 本 算 法 所 使用的活动模板, 是用一个小方块包围字符图形的某一部分, 包括图像的上、中、下部。虽然某些字符整体形变大 , 但是部分 的形变却很小, 从而具有较大的参考价值。例如,“7”的下部是 很 简 单 的 一 条 斜 线 , 可 以 用 于 区 分 数 字“1”和 数 字“2”, 如 图 5 所示:
向扫描时只有一个交叉点的行数, 该值比较固定, 样本方差小,
具 有 较 高 的 可 信 度 ; 数 字“2”的 下 部 变 形 较 大 , 而 且 位 置 不 定 ,
网格特征分析时, 黑点数目的样本方差大, 因而此模板分量不
Βιβλιοθήκη Baidu
可信。特征权值就是某形状特征的可信度的量化, 可信度高则
权值高, 可信度低则权值低。
( 2)
k=1
2.1.3 加权模板权值的构造
模板分量的权值 γj 是基于统计学方式计算得出的。 在随机的 n 个验证码样本中, 字符 C(i i=0, …, 9) 的模 板 长
度 为 N, Ci 的 模 板 样 本 有 如 下 参 数 : 各 分 量 的 样 本 均 值 Y"(j j=
2
0, 1, …, N) 、样本总体方差 Sj( j=0, 1, …, M) 、与其它字符 C(k k=
板之一。沿第一组数据的纵向某两坐标进行切割, 所得的交点 数目不同, 如图 4 所示:
2.2.3 活动模板引导部分特征识别 对于部分数字, 活动空间较大, 经过形变后其某部分结构
不定于某网格, 即网格特征模板的可信度较低。例如数字“1”, 常常以正斜或者反斜的形态出现, 倾斜角度也很不一定, 因此 容易出错。
Abstr act: CAPTCHA Decoder technology is used in multi - send technology.The paper presents a CAPTCHA Decoder System based on template matching.Grid feature template, crossing points feature template and improved dynamic template as well as hole number feature are used in the system.In order to improve the decoding accuracy, a weighted template is proposed and a statisti- cal approach is adopted to obtain the weight.Tests show that the system’s decoding accuracy is 100%. Key wor ds: template matching; weighted template; dynamic template; grid feature; crossing points feature
法; 孙宇哲( 1980- ) , 硕士, 研究方向: 移动开发、网络应用、数字信号处理。
王Com虎pu,te冯r En林gi,n孙eer宇in哲g a: n数d字A验pp证lic码ati识on别s 计算算法机的工研程究与和应设用计
2007, 43( 32) 87
2.2 外形特征模板及其优化
2.2.1 网格特征模板引导总体特征识别 网 格 特 征 模 板 是 第 一 个 外 形 模 版 , 是 最 简 单 、最 基 本 的 模
部分结构 A 的参数有, 黑点个数, 不均衡度等。不均衡度 可分为水平不均衡度和垂直不均衡度, 水平( 垂直) 不均衡度就 是 A 中各黑点到水平( 垂直) 中心的坐标差值求和。令 Cix 为 A 中第 i 个黑点的 横 坐 标 , zx 为 中 心 的 横 坐 标 , 规 定 位 于 左 边 的 黑点距离为负, A 的水平不均衡度计算方法如下:
实 验 中 发 现 网 格 特 征 模 板 对 于“2”、“3”、“5”、“7”,“1”、 “ 2”、“ 7”和“ 3”、“ 5”、“ 6”、“ 9”这 三 组 数 据 区 分 不 到 位 。分 析 这 些 数字字符图像的特点发现, 使用直线切割字符图像的同一坐标 位置所得的交叉点数目是不同的, 因此, 把交叉点特征作为模
本 文 运 用 模 板 匹 配 算 法 [3]构 架 验 证 码 识 别 系 统 的 基 本 框 架, 从统计学的可信度方面讨论了加权模板, 并提出了一种加 权 模 板 的 构 造 方 法 ; 分 析 了 字 符 图 像 的 网 格 特 征 、交 叉 点 特 征[4], 并由此构造了相应的模板向量; 使用改进的活动模板部分 结构分析算法[5], 减弱了形变对字符识别的干扰 , 提高了识别准 确率。
2 数字验证码识别系统
本系统的识别对象是较为常用的简单形变数字验证码, 样 本取自于动网论坛。这种验证码没有像素和颜色干扰, 也没有 字符粘连和重叠, 因此, 本文的工作集中在形变字符的识别。图 1 展示了十个数字字符两种不同程度形变的样本:
系统首先将验证码图像二值化并切割出单个字符, 存入处 理数组 X, 然后运用外形特征分析和模板匹配计算出差异度最 小的数字, 并将其作为识别结果。系统的识别过程是以模板匹 配算法为框架的, 包括三个外形特征模板, 分别是网格特征模 板 、交 叉 点 特 征 模 板 、活 动 模 板 , 并 使 用 了 对“6”、“8”、“9”区 分 能力较强的孔洞数特征。此外, 采 用 了 Hilditch 细 化 算 法 预 处 理图像, 从而可以忽略笔画粗细对网格特征活动模板等的影 响。为了提高模板的区分能力, 系统还使用了基于模板匹配的 加权模板。系统的识别过程如图 2 所示。
1 引言
目前, 网络上出现了很多基于文本的验证码。基于文本的 验证码验证码, 就是将一串随机产生的字符, 生成一幅图片, 图 片里随机的加入一些像素干扰、颜色干扰和形变干扰等等, 然 后要求用户将图片上的字符识别出来, 以达到防止恶意注册等 目 的 。本 文 研 究 的 是 是 无 像 素 干 扰 的 、大 小 固 定 的 、质 心 位 置 居 中, 含有形变干扰的数字字符( 形变数字验证码) 。
很多网络应用技术需要验证码识别技术。验证码种类繁 多, 越来越复杂; 另一方面, 识别系统具有很强针对性, 只能够 识别一种类型的验证码[1]。在公开的验证码识别算法中, 有一些 简单的识别算法[2]能够基本实现部分验证码的识别。但是, 这些 算法使用的模板较为单一, 准确率不高, 缺乏系统性, 不易移 植 。 本 文 设 计 了 一 种 多 模 板 的 、高 准 确 率 的 数 字 验 证 码 识 别 系 统, 算法易于移植。
摘 要: 验证码识别技术常用于网站的群发技术。使用网格特征模板、交叉点特征模板、改进的活动模板, 结合孔洞数特征, 设计了 基于模板匹配算法的形变数字验证码识别系统。为进一步提高识别率, 提出了一种加权模板及其构造方案, 并运用统计学方法, 通 过大量随机样本的多组实验, 求得各组模板及其权值。测试结果表明, 系统的识别准确率达到了 100%。 关键词: 模板匹配; 加权模板; 活动模板; 网格特征; 交叉点特征 文章编号: 1002- 8331( 2007) 32- 0086- 02 文献标识码: A 中图分类号: TP391.43
( 1) 计算 A 的水平中心位置; ( 2) 对 A 中各个黑点与水平中心的距离算术求和: Balance=
88 2007, 43( 32)
Computer Engineering and Applications 计算机工程与应用
!( cix- zx) 。
板。先将 20×20 的图 形 分 成 4×4 块 , 每 块 5×5 个 像 素 , 然 后 统 计各个网格中黑点个数。图像的网格分块如图 3 所示:
征量化值的数学期望。字符图像有多种形状特征, 因而模板是
由一个 N 维向量构成。
设字符 C(i i=0, …, 9) 的模板向量 β, 待识别字符图 像 x, 其 与 模 板 相 应 的 特 征 向 量 α, N 为 模 版 向 量 的 长 度 , 则 可 计 算 x
WANG Hu, FENG Lin, SUN Yu - zhe.Resear ch and design of digital char acter - based CAPTCHA decoder .Computer Engineer ing and Applications, 2007, 43( 32) : 86- 87.
2.1 基于加权模板的模板匹配
2.1.1 模板匹配 定义数字字符图像一个模板分量: 标准数字图像的形状特
基金项目: 国家自然科学基金( the National Natural Science Foundation of China under Grant No.50575031) 。 作者简介: 王虎( 1984- ) , 研究方向: 计算机图形处理, 模式识别与智能控制; 冯林( 1969- ) , 博士, 教授, 研究方向: 图像压缩、配准及融 合 和 演 化 算
模板向量的每个分量均对应一个权值, 从而每个字符对应
一个 N 维模板向量和一个 N 维权值向量, 两个向量便组成加
权模板。加权模版可以提高某特殊外形特征的权重, 降低不可
信外形特征的权重, 更加准确的进行识别。设待识别字符 x 的
权值向量 γ, 计算加权模板的匹配差异度:
N
! Diffi= ( "k- !k) ×( "k- !k) ×γk
"j 从大到小排序, 序号即该模板分量的权值。为了加强区分能 力, 我们对权值加上整体偏移量 offse(t 可调) ; 丢弃部分可信度
低的模板分量( 置权值为 0) 。
模板法是本项目算法的基本框架, 将各个数字字符的外形
特征都统一到模板内部, 然后进行一致的运算, 降低了程序的
复杂度, 提高了开发效率。那么, 如何构造好的模板呢?