基于滴水算法的验证码中粘连字符分割方法
基于滑动窗口的印刷体数学公式中粘连字符的切分
S g nt to f To hi a a t r n pe e a h ma ia e me a i n o uc ng Ch r c e si Ty s tM t e tc l
Ex r s i n s d o i i i d w c n q e p e so s Ba e n Sl ng W n o Te h i u d
于滑动窗 口切分粘连字符的 方法。通过特征值比较 . 提取 出粘连 字符 , 然后对 粘连字符切 分。 实验表 明 , 这种 方法使识
别 率 得 到 了提 高。
关键 词 : 学公 式识 别 ; 符 切 分 ; 连 字 符 ; 余 图像 数 字 粘 残
中图分类号 : P9 13xn, A Xu - o g Ha -i TL N e d n
( oeeo M t r tsadCm u r ee U i mt,Boi 0 10 , h a C lg f a emi pt ,H bi n e i l hr e n o e v y ad g 7 02 C i ) n n
基于 KNN 技术的验证码识别 李露
基于 KNN 技术的验证码识别李露发表时间:2018-04-17T17:10:26.767Z 来源:《电力设备》2017年第32期作者:李露[导读] 摘要:随着科技日新月异的发展,验证码技术在网络防护和信息安全方面有着广泛的应用。
(西华大学)摘要:随着科技日新月异的发展,验证码技术在网络防护和信息安全方面有着广泛的应用。
由于网络攻击手段的提升,验证码技术也在改进。
本文采用的教务系统验证码是当前网络中最普遍的字符验证码类型,它多元化的背景噪音和字符扭曲粘连的特点,使得验证码很难实现程序自动识别。
针对这些特点,本文在背景去噪阶段,提出RGB 三原色去噪法;在单个字符切割阶段,采用轮廓差投影法与水滴算法相结合的分割方法。
最后得到所有字符模型,再利用 KNN 算法,进行字符识别,从而得到识别结果。
关键词:验证码;图像二值化;图像分割;KNN1研究背景与研究现状验证码作为当前一种网络安全技术,主要是用来防止对机器做暴力破解、批量在线注谋取利益、信息大规模采集聚合,以及一些恶意注册、访问和发送垃圾文件等恶意事件。
验证码图片有诸多特点,主要包括图片的格式和图片的内容。
1)格式方面,由于验证码图片的分辨率较低,且高度一般在 20 ~ 50 之间,而宽度一般在 100 左右。
这些特点使得字符间的距离较小,从而难以分割。
与此同时,分辨率小也表明待识别的字符信息量相对较小。
2)在内容方面,验证码中会出现诸多干扰。
比如背景噪音干扰;随机的独立像素点;字符上嵌入的平滑干扰线;字符本身的扭曲旋转和粘连;字体位置随机摆放等。
这些因素在很大程度上会影响自动识别算法的识别率。
本文的校内网验证码的特点是多元化的背景噪音、扭曲粘连的字符,是当前最具有代表性的字符型验证码。
2 识别算法模型验证码自动识别算法整体流程可分为 3 大步骤:图片预处理;字符切割;单字符分析。
分析过程中又包含建立模板库和字符匹配 2 个过程。
其中图像处理不是本文重点算法,本文主要介绍KNN算法,KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
分割问题中的粘连问题
分割问题中的粘连问题全文共四篇示例,供读者参考第一篇示例:分割问题是计算机视觉领域中的一个重要问题,其目的是将数字图像中的对象分割出来,让计算机能够识别和理解图像中的内容。
由于图像中的对象可能存在粘连的情况,这给分割问题带来了一定的挑战。
粘连问题是指图像中的两个或多个不同对象之间的界限不清晰,导致它们在图像中看起来像是粘在一起的情况。
这种情况常常发生在图像中的边缘处,因为边缘是不同对象之间的界限,而边缘可能因为遮挡、光照变化等因素而不明显,从而导致对象之间的粘连问题。
解决粘连问题的关键在于准确地识别出不同对象的边界,并找到合适的方法将它们分开。
一种常见的方法是利用分割算法中的边缘检测技术,通过检测图像中的边缘来确定对象之间的边界,然后根据边界进行分割。
另一种方法是利用区域生长算法,通过生长相似像素来分割出不同的区域,从而解决粘连问题。
除了算法技术外,还有一些预处理方法可以帮助解决粘连问题。
通过调整图像的对比度和亮度,可以使边缘更加清晰,从而减少对象之间的粘连情况。
可以利用形态学处理方法对图像进行形态学变换,进而改善图像的边缘特征,有助于分割出不同的对象。
在实际应用中,粘连问题是一个常见的挑战,特别是在医学图像分割、遥感图像分割等领域。
为了解决这个问题,研究人员不断提出新的算法和技术,不断改进现有的方法,以提高图像分割的准确性和鲁棒性。
粘连问题是分割问题中的一个重要问题,需要采用合适的算法和技术来解决。
通过不断研究和改进,我们相信可以更好地应对粘连问题,提高图像分割的效果,促进计算机视觉技术的发展。
【2000字】第二篇示例:在分割问题中,粘连问题是一个常见而又具有挑战性的难题。
在图像处理、文本识别、语音识别等领域,分割问题是一个重要的研究方向,而粘连问题则是在实际应用中经常遇到的困难。
本文将介绍粘连问题在分割领域中的应用和挑战,并探讨一些解决该问题的方法。
一、粘连问题的定义在图像分割中,粘连问题指的是当两个或多个不同的对象或区域在图像中紧密相连时,如何正确地将它们分割开来。
印刷公式中粘连字符的切分
1 1 定义 峰和 谷 .
1 寻找粘连位 置
峰和谷 是 本 文 为 了便 于表 示 粘 连 位 置 的相 关 特征 、 以滴 水算 法 为指 导 思 想 提 出 的概 念 。简单 的 说峰 是从谷 开始 寻 找到 的第 一个 使 水 滴 不上 升 , 不 下 降的位 置 ; 是从 峰 开 始找 到 的第一 个 使水 滴 不 谷 下降、 不上 升 的位 置 。关 于峰 和 谷概 念 的具体 解 释
李 小园 , : 等 印刷公式 中粘连字符 的切分
69 2
矩形 框 的边 界 则 寻 找 峰 和谷 的 过 程 结 束 。 否则 转
过程 ( ) 2 。
{ ln f; / 峰 或 谷 的起 点 的横 坐 标 oglt / e ln i t / ogr h: /峰 或 谷 的 终 点 的 横 坐标 g
相对切分 正确 率高 但 资 源 消耗 大 ; 基 于识 别 的虽 非
然 资源 消耗小 , 切 分效 果 有 待 提高 。由于 公 式 中 但 粘 连情况 的复 杂多样 , 献 [ —3 中 的方 法均 显 出 文 1 ]
一
定 的适 用性 和局 限性 。
因此 , 针对上述情况 , 本文提出一种综合 考虑
2 1 SiT c. nn. 0 c ehE gg 1 .
印刷 公 式 中 粘连 字 符 的切 分
李 小 园 田 刚 封 超
( 北 联 合 大 学 附 属 医 院 , 山 0 30 ) 河 唐 60 0
摘
要
印刷体数 学公 式中存在粘连 字符是限制公 式识别系统性能提 升的主要 因素之一。 因此提 出一种针对公 式粘连 中字
脱机手写中文识别中粘连文本行的切分与提取
脱机手写中文识别中粘连文本行的切分与提取【英文题名】 Segmentation of Text Lines in Off-Line Chinese Handwritten Character Recognition【作者中文名】周宇;【导师】张田文;【学位授予单位】哈尔滨工业大学;【学科专业名称】计算机科学与技术【学位年度】 2007【论文级别】硕士【基金】黑龙江省自然科学基金;【关键词】手写汉字识别; 文本行切分; 评价函数;【英文关键词】handwritten Chinese recognition; segmentation of text lines; evaluation function;【中文摘要】汉字作为中华民族上千年文化的结晶,在社会发展中一直起着重大的作用,实现手写文档的电子化具有非常重要的意义。
文字识别是指利用计算机自动辨别在纸或其他介质上的文字的过程。
文字识别分为脱机文字识别和联机文字识别两种,主要研究脱机中文手写文字识别。
中文文字识别与英文文字识别有很大的区别,并且中文文字识别的发展滞后于英文文字识别。
从英文文字识别的发展历程来看,中文手写识别应该从现有的单字识别扩展到语句级识别,其中需要解决许多重要问题。
现有文本库均为单字库,没有支持非单字识别的文本库,因此建立了中文文本库HIT-MW。
此文本库是以文本页为基本单位的,识别之前需要将其切分为文本行,这正是本文完成的主要工作。
首先通过直接水平全局投影、小角度纠斜、再次水平全局投影、局部投影四步以获得粘连文本块数据集。
之后对粘连文本块数据集进行了全面详细的分析,并按照难易程度将其分为四类子数据集:两行文字易切分文本块、两行文字难切分文本块、两行文字粘连文本块和三行或更多行文字文本块,对各类数据集采取不同的策略。
然后对文本块进行背景骨架化。
对能够直接获得候选切分路径的数据集,研究了判别最优切分路径的评价函数;对不能获...【英文摘要】 Chinese character is the crystallization of Chinese nation for thousands of years and has been playing a very important role in the development of our society. It is of great importance to digitalize the handwritten documents. Optical Character Recognition (OCR) is a fast and automatic input for character. Character recognition contains on-line and off-line character recognition, and we focus on the off-line Chinese character recognition. Chinese character recognition is very different from English characte...摘要 4-5Abstract 5第1章绪论 8-171.1 研究计算机识别文字的目的及意义 8-91.2 汉字识别的问题与困难 9-111.2.1 汉字的特点与识别难点 9-111.2.2 手写体汉字的特点与识别难点 111.3 汉字识别研究的发展历程 11-131.4 汉字识别技术研究现状及发展趋势 13-141.5 论文背景及研究的主要内容及意义 14-161.5.1 论文背景 151.5.2 论文研究的主要内容 151.5.3 论文研究的主要意义 15-161.6 本章小结 16-17第2章粘连汉字切分方法的研究 17-222.1 引言 172.2 切分算法 17-192.2.1 基于结构特征的算法 17-182.2.2 滴水算法 182.2.3 基于细化的算法 182.2.4 储水池算法 18-192.2.5 基元合并算法 192.3 切分路径评价方法 19-202.3.1 决策树 19-202.3.2 混合高斯概率函数 202.3.3 贝叶斯置信网络 202.4 本章小结 20-22第3章文本行切分实验数据获得与分析 22-32 3.1 引言 22-233.2 文本库HIT-MW简介 23-253.2.1 HIT-MW的收集目的 23-253.3 实验数据的获得 25-293.3.1 原始数据处理步骤 26-283.3.2 数据统计 28-293.4 实验数据分析 29-313.4.1 两行文字易切分文本块集 29-30 3.4.2 两行文字难切分文本块集 303.4.3 两行文字粘连文本块集 30-31 3.4.4 三行或更多行文字文本块集 31 3.5 本章小结 31-32第4章粘连文本行切分与提取 32-424.1 引言 32-334.2 主要研究内容简介 334.3 文本块背景骨架化 33-354.4 寻找候选切分路径 35-374.5 最优路径判定 37-384.5.1 对第三数据集的附加操作 37-38 4.5.2 对第四数据集的附加操作 384.6 文本块笔划细化及提取特征点 38-39 4.7 数据统计 39-404.8 失败个例分析 40-414.9 本章小结 41-42结论 42-44参考文献 44-48。
基于分水岭的粘连雾滴图像分割方法
梁 萍 , : 于分水岭 的粘连 雾 滴 图像 分割 方 法 等 基
1l 7
该方 法利 用连续 腐蚀 或者 边 界 剥 离来 分 隔 粘连 的
小孔 , 然后 把整 个模 型慢 慢 浸 入水 中 , 随着 浸水 的 加深 , 每一 个局 部极 小值 的影 响域 慢 慢 向外 扩 展 ,
一
机结合 的基 于 计算 机 视 觉 的雾 滴 尺 寸测 量 方 法 ,
一
方面 可 以观察 到 雾 滴 的形 貌 , 一 方 面可 以 了 另
解 雾滴 的数量分 布 . 喷雾 过 程 中 , 集到 的雾 滴 在 采
图像中经常出现雾滴重叠和粘连的情况 , 如何把 这些重叠和粘连的目标正确分割出来将关系到后
第2 2卷
第1 0期
重 庆 _ 学 院 学 报( 3 - - 自然科 学 )
Ju a o hnq gIstt o eh o g ( a rl cec) or l f ogi tu f cnl y N t a Si e n C n n ie T o u n
20 年 1 08 0月
Oc .2 0 t 08
Vo . 2 No. 0 12 1
基 于分水 岭 的粘 连 雾 滴 图像 分 割方 法
梁 萍 , 程
( 阴工学院 , 淮 江苏 淮安
伟
2 30 ) 20 3
Ree r h o n l ia e o esI a e S g n a in s a c fCo gut td Dr plt m g e me t to n
do l si e d o lt ma e r pe n t rp e i g .A i a c rn f r o t z t n ag r h i p p s d n d te ag r h t h dsn e t s m p i ai lo tm r o e ,a oi m t a o i m o i s o h l t e c n y i ge t r v d i e f i c ra y i o e .Gry c l e o sr ci g r h sa p i v i g e o e -e e t— s l mp a s ae rc n t t n a o t i p l d t a od i u o l im e o ma v rs g na m
分割问题中的粘连问题
分割问题中的粘连问题
在分割问题中,粘连问题通常是指在对一个整体进行分割时,由于部分区域之间的相互关联、重叠或边界模糊不清,导致无法简单地按照标准规则进行划分的情况。
例如,在图像分割、数据聚类、地理区域划分等领域,可能会遇到这样的问题:
1.图像分割中的粘连问题:在识别和分割图像中的不同对象时,如果两个
对象的颜色、纹理等特征相近,就可能出现边界不清晰,使得算法难以准确区分这两个对象。
2.数据聚类的粘连问题:在对数据集进行聚类分析时,若存在相似性较高
的数据点,可能会被错误地划入同一个簇,即出现了“粘连”现象,降低了聚类结果的质量。
3.地理区域划分中的粘连问题:在划分行政区域、生态保护区或者农业用
地时,由于自然边界(如河流、山脉)不够明显,或者人文因素(如人口分布、经济活动)相互交织,也可能出现区域边界难以界定的粘连问题。
解决粘连问题的方法往往需要依赖于更精细的特征提取、更先进的分割算法以及更加细致的数据预处理步骤。
在实际应用中,可以借助优化算法、深度学习技术、边缘检测等多种手段来改善分割效果,减少粘连情况的发生。
验证码识别技术研究
中国科学技术大学学位论文授权使用声明
作为申请学位的条件之一, 学位论文著作权拥有者授权中国科学技术大学拥 有学位论文的部分使用权, 即: 学校有权按有关规定向国家有关部门或机构送交 论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入《中国学 位论文全文数据库》等有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存、 汇编学位论文。 本人提交的电子文档的内容和纸质论文的内容相一致。 保密的学位论文在解密后也遵守此规定。 □公开 □保密(____年) 导师签名:_______________ 签字日期:_______________
I
Abstract
ABSTRACT
With the rapid development of Internet , the network has brought great convenience to people's live. At the same time, network security issues are also prominently increasing. As a widely used means, Network CAPTCHA has played an important role in network security. The research of CAPTCHA recognition technology can help us discover and improve the loopholes of the verification code, so as to prevent websites from malicious attacks by machine program. This paper uses computer vision and pattern recognition to recognize different types of CAPTCHA. We select the representative Mop, Xicihutong and Tianya captcha as the research object. Aiming at the specific code, we proposed targeted breaking method to solve practical problems. The results reveal the possibility of their insecurity. Through comparison of different recognition algorithms, the study has theoretical and practical value. Following is the main work and achievements: 1. Focus on the algorithms of BP neural network, convolutional neural network, and give their details of the derivation. 2. For the existing divided Mop code, we propose a recognition scheme. It use piecewise linear transformation to remove the image blur. Local OSTU binary threshold got better than the global results. After improving the traditional projection method we propose the minimum segmentation algorithm and it effectively solve the merged characters in Mop code. Then simplified convolutional neural network is used to train and recognize single character. It achieves a high recognition rate at 94.1%. 3. For existing Xicihutong verification code, the K-means clustering algorithm combined with vertical projection is proposed to complete division and it solve the problem of stacking and adhesion. Then single character is trained and recognized by simplified convolutional neural network and the recognition rate is 53%. 4. For existing tianya captcha, we put forward the overall recognition algorithm based on shape context to verify code. The broken rate is 27.7%. This global recognition thought also gives a new idea to identify other code which is more difficult to split. Key words: CAPTCHA, recognition, convolutional neural network, BP neural network, shape context
中英混排文档图像粘连字符分割方法的研究
S u y o h e m e t to f t u hi g c a a t r i h i e t d n t e s g n a i n o o c n h r c e n t e m x d
・图像 与信 号处理 ・
中英 混 排 文 档 图像 粘 连 字 符 分 割 方 法 的研 究
常 丹华 , 耘娴 , 何 苗 丹
( 燕山大学信息科学 与工程学院 , 河北 秦皇岛 06 0 ) 6 0 4
摘 要 : 针对 中英 混 排文档 图像 中粘 连 字符分 割准 确率 不高 的 问题 , 出 了一种 改进 的滴水 分 提 割算法 。该 方法 以贝 叶斯分 类器 区分 字符类 型并 利用 阈值 判定 粘 连 字 符 的存 在 , 用粘 连 字 利 符上 下轮廓 的极值 点确定候 选粘 连分 割点 , 利用 距 离变换提 取 粘连位 置 的 中心 线, 并 最终将 极 值 点 与 中心 线共 同确 定 的路 径作 为 滴水 算法 的分 割路径 来 完成对 粘连 字符 的分 割。 实验结 果
s peB y sCa s i i ig i ec aatr y e n s d ei rs o d eteei e c f h r — i l ae l ie t ds nus t h rc p sa du ea h s nt eh l t j g xs n eo c aa m s f ro t hh et o h d ou h t c
一种基于前端预测识别的粘连字符分割方法
一种基于前端预测识别的粘连字符分割方法
李佐;王姝华;蔡士杰
【期刊名称】《计算机研究与发展》
【年(卷),期】2001(038)011
【摘要】在字符识别领域,对粘连字符的识别是一个被广泛关注的技术难点,未能准确分割粘连字符是产生识别错误的主要原因之一.在总结已有方法的特点及不足的基础上,提出了基于前端预测识别来分割粘连字符的方法.首先根据粘连字符图像的特征初步确定前端字符的候选字符集,并通过验证候选字符与前端字符图像匹配的必要条件进一步对其筛选,然后使用候选字符的屏蔽码自适应地提取前端字符图像,最后由分类器对提取结果加以验证,达到分割和识别粘连字符的目的.该方法可以适应多种类型的粘连字符,准确性高,且在字符图像质量较差时具有较强的鲁棒性.【总页数】8页(P1337-1344)
【作者】李佐;王姝华;蔡士杰
【作者单位】南京大学软件新技术国家重点实验室,南京,210093;南京大学软件新技术国家重点实验室,南京,210093;南京大学软件新技术国家重点实验室,南
京,210093
【正文语种】中文
【中图分类】TP391.43
【相关文献】
1.一种基于词片识别的字符分割算法 [J], 岳思聪;王庆;赵荣椿
2.一种基于背景细化的粘连数字串的分离和识别方法 [J], Lu,Z;乐宁
3.基于滴水算法的验证码中粘连字符分割方法 [J], 李兴国;高炜
4.一种基于字符分割与字符识别的LPR方法 [J], 张剑;周少武;刘洁
5.一种预测纸币序列号先知的字符分割方法 [J], ZHANG Hui-lin;ZHANG Jie-wu;LI Lun-qing
因版权原因,仅展示原文概要,查看原文内容请购买。
两种文本类型验证码字符分割提取方法
第20卷第1期北华大学学报(自然科学版)Vol.20No.12019年1月JOURNAL OF BEIHUA UNIVERSITY(Natural Science)Jan.2019文章编号:1009-4822(2019)01-0137-04DOI :10.11713/j.issn.1009-4822.2019.01.028两种文本类型验证码字符分割提取方法杨玉东1,2,李㊀莉1,高云富1,曲晓威2,林㊀琳3,杨㊀茜2,白鹏辉1,王㊀瑜1(1.长春理工大学计算机科学技术学院,吉林长春㊀130022;2.长春市万易科技有限公司工程研究中心,吉林长春㊀130012;3.吉林省通联信用服务有限公司,吉林长春㊀130012)摘要:作为区分人机操作的一种有效方法,验证码图片被广泛使用.通过对验证码图片识别技术的研究,可以及时发现和改善验证码漏洞.识别混合字符型文本类型验证码的关键是提取验证码图像中的单个字符.介绍验证码识别的一般过程,给出基于颜色提取单个字符和基于支持向量机分割为单个字符的两种单个字符提取方法,通过实例给出了详细步骤.关键词:文本验证码;字符分割;字符提取;字符识别;支持向量机中图分类号:TP311.1文献标志码:A 收稿日期:2018-11-14基金项目:长春市科技局科技计划项目(18YJ073);长春市工业发展专项资金战略性新兴产业发展项目(大数据类).作者简介:杨玉东(1981-),男,硕士研究生,主要从事软件系统设计㊁开发与大数据技术研究,E-mail:27495267@;通信作者:李㊀莉(1963-),女,博士,教授,博士生导师,主要从事软件可靠性研究,E-mail:ll@.Character Segmentation and Extraction Methods of Verification Code with Two Text TypesYang Yudong 1,2,Li Li 1,Gao Yunfu 1,Qu Xiaowei 2,Lin Lin 3,Yang Qian 2,Bai Penghui 1,Wang Yu 1(1.School of Computer Science and Technology ,Changchun University of Science and Technology ,Changchun 130022,China ;2.Engineering Research Center of Changchun WHY-E Science and Technology Co.Ltd.,Changchun 130012,China ;3.Tonglian Credit Information Serves Co.Ltd.,Changchun 130012,China )Abstract :Verification codes image are widely used as an effective method to distinguish human-computer operations.Through the research of verification codes image recognition technology,people can find and improve the vulnerabilities of verification codes in time.This paper mainly studies how to recognize mixed character text verification codes image.The key of recognizing such verification is that extract individual characters from the verification codes image.The general process of verification code recognition is introduced.Two methods of single character extraction based on color extraction and support vector machine segmentation are introduced.The steps in detail are given through examples.Key words :text authentication code;character segmentation;character withdraws;character recognition;Support Vector Machine(SVM)验证码源于图灵测试,是区分人和机器的一种有效方法[1].由于技术简单,产生的验证码图片随机性强,且能在一定程度上阻止网络上的恶意行为,已被广泛应用于互联网.由于种类增多㊁图像分辨率增加㊁图像干扰(噪声)增强都给验证码识别增加了难度.文本类型验证码的文本内容通常是数字和英文字母的随机组合,而单个字符很容易利用机器学习方法识别,所以分割并提取图像中的单个字符成为识别此类验证码的关键[2].许多学者提出了一些字符切割方法,但这些方法大多是针对一种类型或特定类型的验证码,在处理不同种类验证码图像时有一定的局限性.本文提出两种文本字符验证码字符分割方法,并通过实例给出详细步骤.1㊀验证码识别过程可分割验证码的识别过程主要分为图像预处理㊁字符分割与规范化以及训练模型与识别.验证码识别流程见图1.图1验证码识别流程Fig.1Recognition process of verification code本文在字符识别过程中使用支持向量机(SVM)方法,它是监督学习的一种有力计算工具[3].这种方法需要对一些已分类的字符样本进行训练来获得一个模型,然后用模型对未分类的字符样本进行预测或分类.通过调整训练样本量及模型参数,单个字符的识别率可以达到90%以上.图像预处理与字符处理过程中的每个步骤都会产生一定的误差,这些误差会影响字符分割的成功率,进而导致整体识别率降低.因此,有效处理验证码图像并从中提取或分割字符,是文本类型验证码识别的关键,本文给出两种字符分割方法.2㊀基于颜色提取字符的方法这种方法适用于验证码图片中的单个字符颜色随机,而在同一字符中的像素色彩又有差异的情况.以某网站的验证码图像为例,介绍这种分割方法.图2为jpg 格式的验证码图像,分辨率为200ˑ60,RGB 模式.字符颜色㊁位置是随机的,字符有旋转并且部分字符粘连严重甚至交错㊁重叠.传统的切割方法(如竖直投影方法㊁CFS 分割算法[4]㊁滴水算法[5]㊁基于字符宽度的分割算法[6]以及改进的投影分割算法[7])都不能达到很好的字符分割效果.图2原始验证码图像Fig.2Images of primitive verification codes1)图像去背景.字符颜色的随机性在给识别过程带来一定难度的同时,也提供了一定量的信息.考虑适当改变图像预处理和字符切割顺序,利用字符颜色的区别来提取字符.首先在RGB 模式下去除背景㊁噪点和干扰线,保留图像的RGB 色彩,得到的图像见图3.图3去除背景色及干扰线的图像Fig.3Removal of background color and line interference images2)图像滤波.虽然图像中每个字符的颜色在视觉上是相似的,但实际像素值是有差别的.通过迭代的方法,可以区别不同字符间的颜色并减小同一字符中像素的色彩差异.定义一种5ˑ5的滤波模板,其当前像素(x ,y )的输出值为RGB output (x ,y )=ðx +2i =x -2㊀ðy +2j =y -2w ij RGB (i ,j )ðx +2i =x -2㊀ðy +2j =y -2w ij ,831北华大学学报(自然科学版)第20卷其中:RGB(i,j)为当前像素(x,y)周围5ˑ5范围内的像素(i,j)的像素值;w ij是一个二值变量,如果满足以下任意一条:ⅰ)像素(i,j)位置超出图像范围;ⅱ)(i,j)=(x,y);ⅲ)RGB(i,j)与RGB(x,y)欧氏距离大于某个值(包括(i,j)的像素值为白色)都有w ij=0,否则w ij=1.表1㊀部分验证码图像的分割结果及识别结果Tab.1㊀Segmentation and recognition results of partialverification codes image去噪后的图像字符分割结果调整后的字符识别结果利用上述模板不断对图片进行过滤,直到前后两次过滤得到完全相同的图像或者同一字符中像素值的 差值 小于期望值.3)图像切割.通过寻找色彩相近像素的方法,找出在一定范围内属于同一字符所有的像素点,重新生成一张空白图片.将这些像素点写入空白图片,完成1次 切割 .4)字符识别.字符分割结束后对字符图像进行二值化㊁规范化,得到最终的字符样本.部分分割结果以及识别结果见表1.5)实验结果分析.对2000个验证码图像进行预处理㊁分割㊁规范化,抽取有效字符样本进行训练,然后对1000个未用于训练的验证码图像进行预测.结果显示:字符分割成功率为89.8%,单个字符识别率为88.8%,整体识别率为62.7%,每个验证码图像识别平均用时1.21s.3㊀基于支持向量机(SVM)的分割方法验证码中字符的竖直切割可以理解为在给定某字符左侧(或右侧)边界的条件下确定右侧(或左侧)边界,等价于在给定某字符左侧(或右侧)边界的条件下确定字符宽度.根据这一想法,可以将字符宽度分为有限个类,在给定某一条切割线条件下,通过SVM方法识别字符宽度,从而确定下一条切割线.图4中的验证码图片为jpg格式,分辨率为223ˑ50,RGB模式.图片颜色单一,干扰线粗细程度不一,字符粘连且图片中间部分字符比较模糊.图4原始验证码图像Fig.4Image of primitive verification code1)图像锐化.对图像进行预处理,通过图像锐化的方法使图像变得更模糊,见图5.图5经过锐化的验证码图像Fig.5Image of sharpened verification codes2)图像二值化.将锐化后的图像转变为灰度图,选择合理的二值化阈值对图像进行二值化,使图像中间模糊区域变清晰.二值化阈值选取120时,很容易去除干扰线和噪点,但字符不够清晰;选取80时,字符更为清晰,但在去除干扰线的过程中会去掉部分字符.一种合理的做法是在阈值为120的二值化图像中找到干扰线和噪点所对应的像素,在阈值为80的二值化图像中去掉这些像素.去噪后的图像见图6,虽然图像左侧的部分干扰线没有清理干净,但这不影响后续工作.图6去噪后的二值化图像Fig.6Denoising binary image931第1期杨玉东,等:两种文本类型验证码字符分割提取方法3)字符切割.此验证码的字符宽度在15个像素到37个像素之间,且字符的横向位置不固定.如果采用传统的切割方法,字符切割成功率不超过70%,这将影响最终的识别率;而基于SVM 的切割方法,可以显著提高字符切割的成功率.由于图像右侧的干扰线清理得很干净,因此从图像右侧开始切割.首先通过图像的竖直积分投影找到图像右侧的第1条切割线,见图7,然后需要一些有标签样本来训练切割模型.图7第1条切割线的选取Fig.7Selection of the first cuttingline将字符宽度(15~37)分为23个类.在当前切割线左端的40个像素距离内选取特征向量.特征向量的构成为每一列黑色像素之和以及每一列黑色像素的纵坐标最小值.在给定当前切割线的条件下,通过模型识别字符宽度可以找到下一条切割线的横向位置.4)实验结果分析.用1500个图片作为样本集训练切割模型,4000个样本训练字符识别模型,将1000个未训练图片作为测试集进行验证码图像识别.结果显示:字符切割成功率为92.3%,单个字符识别率为95.9%,整体识别率为84.5%,识别每个验证码图像平均用时62ms.部分分割结果及识别结果见表2.4㊀小㊀㊀结本文介绍了可分割文本类型验证码识别的基本流程.针对不同图像,提出两种字符分割方法,通过实例给出了具体步骤.基于颜色提取字符的方法是通过改变图像预处理和字符切割的顺序,利用字符颜色的区别来提取字符;基于支持向量机的字符分割方法是在不同阈值下去除噪点和干扰线,达到更好的去噪效果.两种方法都实现了对特定类混合型文本字符验证码的分割与识别,与传统切割方法相比,具有较高的分割成功率(传统切割方法成功率为70.0%),识别结果可用.但是,基于颜色提取字符的方法在计算过程中涉及迭代算法,识别的平均用时过长;基于SVM 的切割方法需要训练模型,在构造训练样本时,需要花费一定的时间.另外,分割过程中产生的部分残损字符图像和非字符图像会降低字符识别率.这些问题有待于进一步研究.参考文献:[1]Von Ahn L,Blum M,Langford J.Telling humans and computers apart automatically[J].Communications of the ACM,2004,47(2):56-60.[2]Chellapilla K,Larson K,Simard P Y,et al.Building segmentation based human-friendly human interaction proofs (HIPs)[J].HIP,2005,3517:1-26.[3]Haykin S.神经网络与机器学习[M].北京:机械工业出版社,2011.[4]Yan J,El Ahmad A S.Alow-cost attack on a Microsoft CAPTCHA[C]//Proceedings of the 15th ACM conference on computerand communications security,ACM,2008:543-554.[5]李兴国,高炜.基于滴水算法的验证码中粘连字符分割方法[J].计算机工程与应用,2014,50(1):163-166.[6]柳红刚.字符扭曲粘连验证码识别技术研究[D].西安:西安电子科技大学,2012.[7]唐海涛.自组织增量神经网络的验证码识别模型与算法[D].广州:广东工业大学,2016.ʌ责任编辑:郭㊀伟ɔ041北华大学学报(自然科学版)第20卷。
雨滴去除算法
雨滴去除算法
雨滴去除算法是一种用于图像处理的技术,旨在通过分析图像中的雨滴痕迹并将其从图像中去除。
这种算法常用于改善由于雨水或其他液体引起的图像质量下降。
雨滴去除算法通常包含以下步骤:
1. 预处理:首先,对输入图像进行预处理,如灰度化或彩色转换等。
这有助于将输入图像转换为更易处理的形式。
2. 雨滴检测:接下来,使用特定的检测算法来检测图像中的雨滴痕迹。
这些算法可以基于颜色、纹理或其他特征来识别雨滴。
3. 雨滴分割:一旦检测到雨滴,需要进行分割操作,将雨滴与背景进行分离。
这可以通过图像分割技术,如边缘检测或分水岭算法来实现。
4. 雨滴填充:在分割后,可以使用图像修复技术来填充雨滴区域。
这可以通过使用邻近像素的平均值、插值方法或其他修复算法来完成。
5. 后处理:最后,对修复后的图像进行后处理操作,如去噪、平滑或增强等。
这有助于进一步提升图像的质量和细节。
需要注意的是,雨滴去除算法的实现可能因应用场景和需求的不同而有所差异。
某些情况下,可能需要结合其他图像处理技术来获得更好的效果。
此外,算法的性能和准确性
也可能受到图像质量、雨滴密集度和光照条件等因素的影响。
因此,在实际应用中,可能需要根据具体情况进行调整和优化。
基于滴水算法的验证码中粘连字符分割方法
1
引言
验证码 (Completely Automated Public Turing test
计出更好、 更安全可靠的验证码, 以保障网络应用的安 全; 另一方面, 当某种验证码被破解时, 也是人工智能领 域的一大进步 [2]。 验证码的识别一般分为验证码图片的预处理阶段 和识别阶段。首先将图片二值化、 去除噪点, 然后将单 个的字符分割出来, 最后进行识别。目前绝大多数的识 别算法都需要验证码字符的分割这一步骤。文献 [3] 的 研究表明, 只要能将验证码上的字符分割出来, 用现有 的机器学习算法一般都可以取得比较好的识别效果。 机器学习算法可以有效地解决字符识别问题, 故字符的 有效分割对验证码的识别至关重要, 然而当前还没有一 种通用、 有效的字符分割算法 [4]。非粘连字符的分割可 以很容易地通过二值化后的图片的竖直投影直方图来
164
2014, 50 (1)
Computer Engineering and Applications 计算机工程与应用
O N y
完成, 而粘连字符的分割则很困难, 是导致识别错误的 最主要的原因 [5]。事实上, 粘连字符的设计也是保障验 证码的安全的最有效的手段 [6-7]。本文通过验证码字符 的水算法找到滴落的起始点, 然后用滴水 算法来对粘连字符进行分割, 通过两种不同的验证码的 分割实验证明了该方法的有效性。
w/b w/b b w b b b * b w * * b b b
直进行分割更好的效果, 特别是在字符存在着倾斜、 扭 曲等的情况下 [11]。如图 3 所示, 图 (a) 是某验证码粘连字 符片段, 图 (b) 是找到一个合适的位置直接竖直分割的 效果, 图 (c) 是用滴水算法分割的效果。可以看出, 滴水 算法沿着字符的轮廓进行分割, 可以有效地避免直接竖 直分割造成的过分分割的问题。这也是本文采用滴水 算法进行分割粘连字符的原因。
python验证码识别教程之利用滴水算法分割图片
python验证码识别教程之利⽤滴⽔算法分割图⽚滴⽔算法概述滴⽔算法是⼀种⽤于分割⼿写粘连字符的算法,与以往的直线式地分割不同,它模拟⽔滴的滚动,通过⽔滴的滚动路径来分割字符,可以解决直线切割造成的过分分割问题。
引⾔之前提过对于有粘连的字符可以使⽤滴⽔算法来解决分割,但智商捉急的我实在是领悟不了这个算法的精髓,幸好有⼩伙伴已经实现相关。
我对上⾯的代码进⾏了⼀些⼩修改,同时升级为python3的代码。
还是以这张图⽚为例:在以前的我们已经知道这种简单的粘连可以通过控制阈值来实现分割,这⾥我们使⽤滴⽔算法。
⾸先使⽤介绍的垂直投影或者连通域先进⾏⼀次切割处理,得到结果如下:针对于最后粘连情况来使⽤滴⽔算法处理:from itertools import groupbydef binarizing(img,threshold):"""传⼊image对象进⾏灰度、⼆值处理"""img = img.convert("L") # 转灰度pixdata = img.load()w, h = img.size# 遍历所有像素,⼤于阈值的为⿊⾊for y in range(h):for x in range(w):if pixdata[x, y] < threshold:pixdata[x, y] = 0else:pixdata[x, y] = 255return imgdef vertical(img):"""传⼊⼆值化后的图⽚进⾏垂直投影"""pixdata = img.load()w,h = img.sizeresult = []for x in range(w):black = 0for y in range(h):if pixdata[x,y] == 0:black += 1result.append(black)return resultdef get_start_x(hist_width):"""根据图⽚垂直投影的结果来确定起点hist_width中间值前后取4个值再这范围内取最⼩值"""mid = len(hist_width) // 2 # 注意py3 除法和py2不同temp = hist_width[mid-4:mid+5]return mid - 4 + temp.index(min(temp))def get_nearby_pix_value(img_pix,x,y,j):"""获取临近5个点像素数据"""if j == 1:return 0 if img_pix[x-1,y+1] == 0 else 1elif j ==2:return 0 if img_pix[x,y+1] == 0 else 1elif j ==3:return 0 if img_pix[x+1,y+1] == 0 else 1elif j ==4:return 0 if img_pix[x+1,y] == 0 else 1elif j ==5:return 0 if img_pix[x-1,y] == 0 else 1else:raise Exception("get_nearby_pix_value error")def get_end_route(img,start_x,height):"""获取滴⽔路径"""left_limit = 0right_limit = img.size[0] - 1end_route = []cur_p = (start_x,0)last_p = cur_pend_route.append(cur_p)while cur_p[1] < (height-1):sum_n = 0max_w = 0next_x = cur_p[0]next_y = cur_p[1]pix_img = img.load()for i in range(1,6):cur_w = get_nearby_pix_value(pix_img,cur_p[0],cur_p[1],i) * (6-i) sum_n += cur_wif max_w < cur_w:max_w = cur_wif sum_n == 0:# 如果全⿊则看惯性max_w = 4if sum_n == 15:max_w = 6if max_w == 1:next_x = cur_p[0] - 1next_y = cur_p[1]elif max_w == 2:next_x = cur_p[0] + 1next_y = cur_p[1]elif max_w == 3:next_x = cur_p[0] + 1next_y = cur_p[1] + 1elif max_w == 5:next_x = cur_p[0] - 1next_y = cur_p[1] + 1elif max_w == 6:next_x = cur_p[0]next_y = cur_p[1] + 1elif max_w == 4:if next_x > cur_p[0]:# 向右next_x = cur_p[0] + 1next_y = cur_p[1] + 1if next_x < cur_p[0]:next_x = cur_p[0]next_y = cur_p[1] + 1if sum_n == 0:next_x = cur_p[0]next_y = cur_p[1] + 1else:raise Exception("get end route error")if last_p[0] == next_x and last_p[1] == next_y:if next_x < cur_p[0]:max_w = 5next_x = cur_p[0] + 1next_y = cur_p[1] + 1else:max_w = 3next_x = cur_p[0] - 1next_y = cur_p[1] + 1last_p = cur_pif next_x > right_limit:next_x = right_limitnext_y = cur_p[1] + 1if next_x < left_limit:next_x = left_limitnext_y = cur_p[1] + 1cur_p = (next_x,next_y)end_route.append(cur_p)return end_routedef get_split_seq(projection_x):split_seq = []start_x = 0length = 0for pos_x, val in enumerate(projection_x):if val == 0 and length == 0:continueelif val == 0 and length != 0:split_seq.append([start_x, length])length = 0elif val == 1:if length == 0:start_x = pos_xlength += 1else:raise Exception('generating split sequence occurs error')# 循环结束时如果length不为0,说明还有⼀部分需要appendif length != 0:split_seq.append([start_x, length])return split_seqdef do_split(source_image, starts, filter_ends):"""具体实⾏切割: param starts: 每⼀⾏的起始点 tuple of list: param ends: 每⼀⾏的终⽌点"""left = starts[0][0]top = starts[0][1]right = filter_ends[0][0]bottom = filter_ends[0][1]pixdata = source_image.load()for i in range(len(starts)):left = min(starts[i][0], left)top = min(starts[i][1], top)right = max(filter_ends[i][0], right)bottom = max(filter_ends[i][1], bottom)width = right - left + 1height = bottom - top + 1image = Image.new('RGB', (width, height), (255,255,255))for i in range(height):start = starts[i]end = filter_ends[i]for x in range(start[0], end[0]+1):if pixdata[x,start[1]] == 0:image.putpixel((x - left, start[1] - top), (0,0,0))return imagedef drop_fall(img):"""滴⽔分割"""width,height = img.size# 1 ⼆值化b_img = binarizing(img,200)# 2 垂直投影hist_width = vertical(b_img)# 3 获取起点start_x = get_start_x(hist_width)# 4 开始滴⽔算法start_route = []for y in range(height):start_route.append((0,y))end_route = get_end_route(img,start_x,height)filter_end_route = [max(list(k)) for _,k in groupby(end_route,lambda x:x[1])] # 注意这⾥groupbyimg1 = do_split(img,start_route,filter_end_route)img1.save('cuts-d-1.png')start_route = list(map(lambda x : (x[0]+1,x[1]),filter_end_route)) # python3中map不返回list需要⾃⼰转换 end_route = []for y in range(height):end_route.append((width-1,y))img2 = do_split(img,start_route,end_route)img2.save('cuts-d-2.png')if __name__ == '__main__':p = Image.open("cuts-2.png")drop_fall(p)执⾏后会得到切分后的2个照⽚:从这张图⽚来看,虽然切分成功但是效果⽐较⼀般。
字符扭曲粘连验证码识别技术研究
目
录
第一章 绪论 ..................................................................................................................... 1 1.1 研究背景 ................................................................................................................. 1 1.1.1 验证码概念 ....................................................................................................... 1 1.1.2 验证码分类 ....................................................................................................... 2 1.1.3 验证码识别 ....................................................................................................... 5 1.2 论文章节安排 ......................................................................................................... 7 第二章 验证码识别国内外研究现状 ............................................................................. 9 2.1 验证码识别现状 ..................................................................................................... 9 2.2 验证码识别技术 ................................................................................................... 10 2.2.1 基于模板库匹配的方法 ................................................................................. 10 2.2.2 基于神经网络学习方法 ................................................................................. 11 2.2.3 基于形状上下文方法 ..................................................................................... 15 2.3 本章小结 ............................................................................................................... 16 第三章 论文涉及验证码特征 ....................................................................................... 17 3.1 雅虎验证码特征 ............................................................................................................................................................................ 19 3.3 RECAPTCHA 验证码特征 .................................................................................... 20 3.4 本章小结 ............................................................................................................... 21 第四章 验证码识别 ....................................................................................................... 23 4.1 雅虎验证码识别 ................................................................................................... 23 4.1.1 图片预处理 ..................................................................................................... 24 4.1.2 首尾切除 ......................................................................................................... 26 4.1.3 曲线拟合 ......................................................................................................... 28 4.1.4 闭环检测 ......................................................................................................... 31 4.1.5 基于四线谱的投影识别 ................................................................................. 33 4.1.6 均分 .......................................................................................................................................................................................... 37 4.3 RECAPTCHA 验证码识别 .................................................................................... 39 4.4 本章小结 ............................................................................................................... 42代号源自10701 TP311.5
基于改进滴水算法的芯片图像粘连字符分割
基于改进滴水算法的芯片图像粘连字符分割
陈慧敏;张合生;朱晓锦
【期刊名称】《计算机应用与软件》
【年(卷),期】2023(40)2
【摘要】为克服粘连字符对芯片字符识别的影响,提出一种基于改进滴水算法的粘连字符分割方法。
在芯片图像进行必要的预处理后,提取单张芯片的标准字符信息,
利用水平投影和连通域分析提取粘连区域。
通过垂直投影和上下轮廓得到上下轮廓极值点;分别以粘连区域左右两端为起点,利用标准字符信息对极值点进行筛选,选取方差较小的一组作为候选分割点;通过分割点对应关系补齐遗漏的有效分割点;上下
有效分割点分别作为水滴起始点和终止点,定义新的滴落路径对粘连字符进行分割。
实验结果表明,该算法可有效解决芯片图像的字符粘连问题,并且在分割精准度上拥
有良好的表现。
【总页数】8页(P246-252)
【作者】陈慧敏;张合生;朱晓锦
【作者单位】上海大学机电工程与自动化学院
【正文语种】中文
【中图分类】TP391
【相关文献】
1.图像处理中关于汉字粘连字符的分割的背景算法
2.基于滴水算法的验证码中粘连字符分割方法
3.基于改进分水岭算法的粘连颗粒图像分割
4.基于改进LLT算法的女书字符图像分割方法研究
5.基于改进分水岭算法的粘连车辆图像分割
因版权原因,仅展示原文概要,查看原文内容请购买。
水表数字图像的粘连字符识别方法
水表数字图像的粘连字符识别方法
高菊;叶桦
【期刊名称】《工业控制计算机》
【年(卷),期】2013(026)007
【摘要】针对水表数字图像中的粘连字符识别问题,提出一种有效的方法.在识别之前,先对水表图像进行前期处理以获得单个字符图像.该方法利用摄像头的安装位置固定,使得字符图像正常大小也基本固定这个先验知识,将分割得到的单个数字图像与正常大小比较,若超过正常大小则认为与边框粘连,将粘连的边框部分切割后再进行模板匹配,取匹配系数最大者为最佳匹配,从而实现粘连字符识别.又考虑到摄像头在实际安装中存在高度上的差异,利用字符图像大小与摄像头高度基本呈线性关系这一先验知识,在识别之前先求出相应高度下的正常字符大小,然后进行粘连识别,最终实现了粘连字符的高度自适应识别.实验结果表明,该方法简单有效且识别率很高,获得了满意的效果.
【总页数】3页(P77-78,80)
【作者】高菊;叶桦
【作者单位】东南大学自动化学院,江苏南京210096;东南大学自动化学院,江苏南京210096
【正文语种】中文
【相关文献】
1.适合特定水表表型的字符识别方法 [J], 李尧;芮小平
2.一种扭曲粘连字符验证码识别方法 [J], 尹龙;尹东;张荣;王德建
3.字符粘连及字线相交的分割与识别方法 [J], 邹荣金;蔡士杰;张福炎;苏丰;陈冀兵
4.水平线与字符粘连的切分及字符修补 [J], 李燕
5.基于卷积神经网络的水表字符识别方法研究 [J], 潘帅成; 韩磊; 陶毅; 刘清雨; 郑胜男
因版权原因,仅展示原文概要,查看原文内容请购买。
基于滴水原理的关联聚类算法
基于滴水原理的关联聚类算法华佳林;于剑【期刊名称】《计算机科学与探索》【年(卷),期】2018(012)006【摘要】With the development of various new media,there are many new issues popped up in data mining.Corre-lation clustering is one of these issues,that receives more and more attentions recently.It has been widely used in real applications such as image segmentation and spam filtering.Many methods have been proposed to process the issues. However, few of them can process large signed graphs which become common in practice.This paper proposes a novel algorithm based on the drop of water principle to tackle the problem of clustering large scale signed graphs. The algorithm is constructed according to the following procedures.Firstly,the signed graphs are shrank based on the drop of water principle.The points within a stream can be taken as a new point in the graph,the scale of signed graphs can be enormously decreased in this procedure. Secondly, some important points are chosen as seeds, and based on integer linear programming,the seeds can decide whether the neighbors joint the seeds or not.The experi-mental results show that the proposed method can cluster large scale graphs effectively and efficiently.%随着各种新兴媒体的发展,在数据挖掘领域出现了越来越多的新问题和新任务,关联聚类问题就是其中之一,最近受到越来越多的关注.现实中有很多问题可以使用关联聚类技术来处理,比如图像分割和垃圾邮件过滤等.大规模有符号图的出现越来越频繁,虽然之前有很多关联聚类算法被提出,但是很少算法能够处理规模很大的有符号图.提出了一个基于滴水原理的算法来处理大规模有符号图的聚类问题.算法过程包括:根据滴水原理来收缩图的规模,将一个水流上的所有点看成是一个新的点,这样可以极大地减小图的规模;在新的图中选出重要的点,并根据整数线性规划来判断邻居点是否合并.实验结果表明,该算法能够快速有效地进行大规模有符号图的聚类.【总页数】11页(P961-971)【作者】华佳林;于剑【作者单位】北京交通大学计算机与信息技术学院,北京100044;交通数据分析与挖掘北京市重点实验室,北京100044;北京交通大学计算机与信息技术学院,北京100044;交通数据分析与挖掘北京市重点实验室,北京100044【正文语种】中文【中图分类】TP30【相关文献】1.基于K均值聚类算法和关联规则算法的中医药治疗乳腺癌数据挖掘研究 [J], 许鸣;闻惠;沈娟惠;蒋丽萍;王霞玲;刘英;沈亚红;李新华;丁明强2.基于关联规则和熵聚类算法的严继林治疗咳嗽用药规律研究 [J], 聂坚; 杨绍丽; 杜义斌; 严园; 严继林3.基于灰色关联和聚类算法的避难所选址研究 [J], 王艳虎; 毛政元; 王登清4.基于自然近邻的自适应关联融合聚类算法 [J], 李萍;龚晓峰;雒瑞森5.基于轨迹间时空关联性的数据聚类算法 [J], 王瑟;杨雨晴;蔡江辉因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
165
在对验证码字符分割之前, 需要对验证码图片进行 预处理。首先将图片二值化, 本文采用最大类间方差 法 [12]。二值化的图像往往会有许多噪音, 造成图像字符 分割困难, 也不容易提取字符特征 [13]。因此如果二值化 后, 验证码图片上有干扰噪点, 则还要进行去除噪点的 处理。本文采用的是文献 [14] 提出的算法, 统计每个黑 色像素点周围八个方向上的黑色像素点的个数, 如果低 于某个阈值则认为是离散点, 将其去除。 验证码字符分割的流程是: 首先用 CFS 算法确定字 符区块; 然后对各个区块判断是否含有粘连字符, 对粘 连字符区块做竖直投影统计, 找出投影极小值点; 最后 结合字符宽度统计值和这些极小值点找出分割点, 以这 些分割点作为滴水算法的起始滴落点进行分割。具体 的算法流程如图 4 所示。
Computer Engineering and Applications 计算机工程与应用
2014, 50 (1)
163
基于滴水算法的验证码中粘连字符分割方法
2 李兴国 1, , 高
炜1
2 LI Xingguo1, , GAO Wei1
1.合肥工业大学 管理学院, 合肥 230009 2.过程优化与智能决策教育部重点实验室, 合肥 230009 1.School of Management, Hefei University of Technology, Hefei 230009, China 2.Key Laboratory of Process Optimization and Intelligent Decision-making, Ministry of Education, Hefei 230009, China LI Xingguo, GAO Wei. Segmentation method for merged characters in CAPTCHA based on drop fall algorithm. Computer Engineering and Applications, 2014, 50 (1) : 163-166. Abstract:Many researches demonstrate that good result can be gained by existing machine learning algorithms in the recognization of CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) if single characters can be split. A method is presented to segment the merged characters in the recognization of CAPTCHA with touching characters. It seeks division points by combining the statistics of character width and the vertical histogram projection minimums, and then uses these points as the starting points of the drop fall algorithm to segment merged characters in CAPTCHA. The experiments show that it is a general method and can improve the recognization rate. Key words: drop fall algorithm; CAPTCHA; merged characters; segmentation; vertical histogram projection 摘 要: 众多研究表明, 如果能将验证码中的字符分割开来, 用现有的机器学习算法一般都能取得比较好的识别效
(a) 某验证码片段
(b) 竖直分割
(c) 滴水算法分割
图3
竖直分割与滴水算法分割对比示意图
w/b w/b w/b
3
粘连字符的分割
传统滴水算法的起始滴落点的确定规则是这样的:
1
n5 n1 n0 n 4 n 2 n3 * b b * w * b
2
w b b w b
3
由上到下由左到右扫描图片中的每一行, 选择第一个满 足像素分布情况为 (… 0*1… 10) 的白色像素点 (*) 为起 始点。其中 0 表示黑色像素点, 1 表示白色像素点。这 种适合手写数字字符特征的规则却并不适合验证码中 的字符的情况。例如字母 “ X” 和 “ Y” 等, 按照这种规则, 起始的滴落点就会落入笔画的凹陷处, 这显然是不合适
T ( xi + 1 yi + 1) = f ( xi yi W i ) i = 0 1 。其中 ( xi + 1 yi + 1) 表 ( x 0 y 0 ) 是起始滴落点, Wi 示水滴下一步滴落点的坐标,
投影直方图的特征能够找到较为合适的分割点, 但它找 出分割点后直接竖直地分割, 如前所述, 很容易造成过 分割的现象。因此, 本文提出利用基于投影的方法找出 分割点, 然后以这些分割点作为滴水算法的起始滴落 点, 用滴水算法进行分割。 本文提出的对粘连字符的分割方法要使用字符的 宽度统计值, 因此事先要取得验证码字符的一些宽度统 计值。随机选取 n 张验证码图片, 二值化后手工分割进 行统计, n 应足够大, 字符宽度统计值包括最小字符宽度
果。针对字符粘连情况下的验证码的识别问题, 提出了一种粘连字符的分割方法。该方法将字符的宽度统计值和 竖直投影直方图中的投影极小值点相结合找到分割点, 以这些分割点作为滴水算法的起始滴落点对粘连字符进行 分割。实验结果证明, 该方法用于分割验证码中的粘连字符具有一般性, 能够提高验证码识别率。 关键词: 滴水算法; 验证码; 粘连字符; 分割; 竖直投影 文献标志码: A 中图分类号: TP391 doi: 10.3778/j.issn.1002-8331.1208-0310
[1]
作者简介: 李兴国 (1963—) , 男, 教授, 硕士生导师, 研究方向为信息资源管理, 信息系统, 电子商务和电子政务。E-mail: lxglzz@ 收稿日期: 2012-08-27 修回日期: 2012-12-25 文章编号: 1002-8331 (2014) 01-0163-04 CNKI 网络优先出版: 2013-01-22, /kcms/detail/11.2127.TP.20130122.1437.007.html
1
引言
验证码 (Completely Automated Public Turing test
计出更好、 更安全可靠的验证码, 以保障网络应用的安 全; 另一方面, 当某种验证码被破解时, 也是人工智能领 域的一大进步 [2]。 验证码的识别一般分为验证码图片的预处理阶段 和识别阶段。首先将图片二值化、 去除噪点, 然后将单 个的字符分割出来, 最后进行识别。目前绝大多数的识 别算法都需要验证码字符的分割这一步骤。文献 [3] 的 研究表明, 只要能将验证码上的字符分割出来, 用现有 的机器学习算法一般都可以取得比较好的识别效果。 机器学习算法可以有效地解决字符识别问题, 故字符的 有效分割对验证码的识别至关重要, 然而当前还没有一 种通用、 有效的字符分割算法 [4]。非粘连字符的分割可 以很容易地通过二值化后的图片的竖直投影直方图来
164
2014, 50 (1)
Computer Engineering and Applications 计算机工程与应用
O N y
完成, 而粘连字符的分割则很困难, 是导致识别错误的 最主要的原因 [5]。事实上, 粘连字符的设计也是保障验 证码的安全的最有效的手段 [6-7]。本文通过验证码字符 的宽度统计值及竖直投影直方图的局部极小值点相结 合的方式来为滴水算法找到滴落的起始点, 然后用滴水 算法来对粘连字符进行分割, 通过两种不同的验证码的 分割实验证明了该方法的有效性。
ì( xi yi - 1), W i = 1 ï ï ï( xi yi + 1), W i = 2 ï T ( xi + 1, yi + 1) = f ( xi yi , W i ) = í( xi + 1 yi + 1), W i = 3(2) ï ( x + 1 yi ), W i = 4 ï ï i ï( x + 1 y - 1), W = 5 i i î i 对于粘连字符的分割, 滴水算法可以获得比直接竖
w/b w/b b w b b b * b w * * b b b
直进行分割更好的效果, 特别是在字符存在着倾斜、 扭 曲等的情况下 [11]。如图 3 所示, 图 (a) 是某验证码粘连字 符片段, 图 (b) 是找到一个合适的位置直接竖直分割的 效果, 图 (c) 是用滴水算法分割的效果。可以看出, 滴水 算法沿着字符的轮廓进行分割, 可以有效地避免直接竖 直分割造成的过分分割的问题。这也是本文采用滴水 算法进行分割粘连字符的原因。
则是水滴在当前位置上的重力势能的衡量。 W i 的值由 式 (1) 决定:
ì4, å = 0 or 15 ï Wi = í 5 ï max z j w j , 其他 î j=1
(1)
李兴国, 高
炜: 基于滴水算法的验证码中粘连字符分割方法
竖直投影
2014, 50 (1)
40 20 0 100 200 水平坐标 X
5
× (x y )
i i
x
M
图2
I 的坐标系
其中, 0 表示黑点, 1 å = å z j w j ,z j 表示 n j 点的像素值,