[blog]验证码识别--资料收集

证码识别--资料收集

一、验证码基础知识

验证码设计的目的就是区分“人”和“机器”,所以它在被设计的时候,主要的目的就是防止被采用就是自动识别出来。所以作为破解者来说,一开始就是处于劣势地位的。当然这使得验证码的破解变成了一项结合图像识别、模式识别的猜谜解题活动。

验证码的识别很难达到100%。因为在现实生活中,人也可能是识别错误的,所以当错误发生的时候,验证码识别系统会再提供一个新的验证码。如果单次识别有50%的识别成功率(也就是50%的失败率),那么连续三次的总体成功率就可以达到0.875(=1-0.5*0.5*0.5)。

验证码的设计方式多种多样。广义上来说,只要是能够区分“人”和“机器”的方式,都可以拿来做验证;狭义上来说,主要是指的将字母和数字打印在一张图片上面让人来识别的这种模式。

二、各类验证码收集和分类

我收集了一下具有代表特性的验证码:

1)某考试网站的验证码

         

特点:  1、都是数字;

2、主要是点干扰;

3、位置基础都是水平的。

7)sina验证码

特点:  1、都是数字;

2、点干扰,线干扰;

3、位置基础不确定。

2) 

特点:1、每个字的颜色都不一样;

2、背景上有线干扰;

3、位置基础都是水平的。

3) 

特点:1、前景和背景的颜色是非常接近的;

2、背景上有线干扰;

3、位置是波浪形的;

4、字母有粘连。

4

特点:1、黑白图像,却用字母的纹理来区分;

2、背景上白色有线干扰;

3、位置是波浪形的;

4、字母有粘连。

5

特点:1、彩色图像,每个字符都不一样;

2、背景上白色彩色干扰;

3、位置基本是水平的;

4、字母有粘连。

6

特点:1、彩色图像,梯度颜色,其中干扰线和字母前景非常相似;

2、三种字体;

3、位置不定,不是波浪;

4、字母有粘连,当相比之下不是很严重。

7 来自某网站的验证码

特点:1、彩色图像,背景和前景颜色一致;

2、图像变形;

3、图像复杂纹理。

8 qq验证码

特点:1、彩色图像,背景随机图片,非常复杂

2、文字可以说,设计的非常透明;

3、文字粘连。

9 Captcha是专门的验证码生成项目,这里的几个都是比较有特性的。

10 PWNtcha的若干

特点:1、不连续的点组成字符;

2、有一定程度的倾斜;

特点:1、手写体

特点:1、背景颜色块;

2、前景横线或矩形。

特点:1、随机噪音作为前景;

2、字母位置粗细都有变化;

3、无粘连;

这里还有一些不常见但是很有意思的验证码,仅仅是收集过来看一看。

三、相关算法罗列

我认为,验证码识别、特别是高阶验证码识别,绝对不是简单地通过常见的方法就可以达到效果的。必须经过带有人工智能的系统的训练,才能够达到较好的效果。而且对于不同验证码来说,其所运用的方法也是不一样的。

1)图像处理基本算法,比如opencv提供的一系列,此外包括blob分析等;

2)神经网络相关算法,依然基于opencv提供的svm,annmlp等;

3)OCR识别打包算法,比如tesseract-ocr。这里需要明白的一点是,对于这种专门用来迷惑计算机的图像来说,想用通用的训练库达到识别的效果是不可能的;

4)形状上下文,关于这个东西是什么,如何用,需要搞清楚

四、其它相关资源

验证码识别由于广阔的市场应用,出现过和出现着许多的应用。比如这款

就有着多宗验证码的识别,但是主要还是非粘连的。对于我来说,掌握这种技术,是非常重要的,因为它符合图像识别的几个要素:难度、反馈和长久发展。

在这家号称从04年开始做验证码识别的网站提供的样例中,放眼看过去都是机器打印的字符,缺乏粘连很严重的,或者是字体多种多样的情况。

四、小结

验证码识别是图像识别中比较复杂的一个方向,但是在这个方向上面有比较成熟的研究、也有比较系统的工具,也可能会有一定的市场,最关键的是,这个方面的原始数据很容易获得。因此,非常值得在这个方向去做研究和实践。

来自为知笔记(Wiz)

时间: 2024-08-03 14:14:59

[blog]验证码识别--资料收集的相关文章

字符型图片验证码识别完整过程及Python实现

1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻.本文介绍了一套字符验证码识别的完整流程,对于验证码安全和OCR识别技术都有一定的借鉴意义. 2   关键词 关键词:安全,字符图片,验证码识别,OCR,Python,SVM,PIL 3   免责声明 本文研究所用素材来自于某旧Web框架的网站 完全对外公开 的公共图片资源. 本文只做了该网站对外公开的公共图片资源进行了爬取, 并未越权 

简单的验证码识别

https://blog.csdn.net/qq_35923581/article/details/79487579 这是我尝试写的第一篇技术博客,借鉴了很多博客和教程,写出了自己的代码,代码较为冗杂而且程序十分耗时.所以本文主要提供验证码识别的一个简单的思路,代码实现的部分还望各位大佬指点. 看了好几篇验证码图片识别的博文,不难归纳出验证码识别的大概思路是收集训练集-->图像处理-->得到图片特征值-->训练-->识别,其中图像处理部分又包括了灰度化.二值化.去噪.分割等过程.本

Python快速开发分布式搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别

第一步.首先下载,大神者也的倒立文字验证码识别程序 下载地址:https://github.com/muchrooms/... 注意:此程序依赖以下模块包 Keras==2.0.1 Pillow==3.4.2 jupyter==1.0.0 matplotlib==1.5.3 numpy==1.12.1 scikit-learn==0.18.1 tensorflow==1.0.1 h5py==2.6.0 numpy-1.13.1+mkl 我们用豆瓣园来加速安以上依赖装如: pip install

集美大学教务处验证码识别(二)

[原创,转载请标明作者:森狗] 本文对第二种验证码,即管理员登入后台地址的验证码进行识别. 1.采集一些验证码,0~9都要有 2.观察验证码,用画图工具即可. 观察可发现,噪点即阴影,此处的阴影就是颜色比主体验证码略淡,以此为突破口. 3.去除噪点 color.getGreen() 获取绿色的值int,绿色值(0~255 从深到浅),大于200的就是浅色的噪点 public static int isWhite(int colorInt) { Color color = new Color(co

基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区

使用Tesseract-OCR 做验证码识别浅析

使用工具jTessBoxEditor-0.7(这个是在java平台下开发的,所以 它只支持java平台 ,在使用前应该先配置好java环境) tesseract 程序集(因为该程序集是在.net 2.0平台下 开发的,所以 只能支持到2.0 在使用时请注意(也可以自己去网上找别人用更高的版本编译好的)) tesseract-ocr-setup-3.01-1  使用开发语言.net 辅助工具 Visual Studio 至少能支持.net 2.0即可 首先,我们要找到自己需要做验证识别的验证码图片

(转)java验证码识别

java验证码识别--1 http://blog.csdn.net/problc/article/details/5794460 java验证码识别--2 http://blog.csdn.net/problc/article/details/5797507 java验证码识别--3 http://blog.csdn.net/problc/article/details/5800093 java验证码识别--4 http://blog.csdn.net/problc/article/detail

验证码识别 ——知乎网友2

推荐Programming Computer Vision with Python, 这位作者用python重写很多基本的Computer Vision算法,书的final draft在首页,代码也在Github上边.类似于验证码识别的问题呢,大家可以直接refer Chapter 8 - Classifying Image Content, 里边不仅有对3种classification approaches的详细解释,而且还有比如手势识别,OCR识别等经典问题,更更重要的是,Github上直接

EasyOCR JavaVerify 验证码识别

https://github.com/donaldlee2008/EasyOCR https://github.com/donaldlee2008/CAPTCHA-Easy-Tesseract-OCR-recognition-  这个是例子 链接: http://pan.baidu.com/s/1bnNjMSB 密码: ags6 https://github.com/donaldlee2008/JavaVerify http://blog.csdn.net/yinchuandong2/artic