“模式识别”技术识别12306验证码
中国春运——相当于一个欧洲国家的人口在一个月内在不同城市之间的流动。今年铁道部火车票实行实名制,并开通网上和电话购票。1月9日,12306.cn点击量就超过了14亿次,相当于所有中国人当天都点击了一次。由于访问量太大,网站无法顺畅登录。就算到今天17日,登上12306仍然很慢,更不用说买到票。
这几天,网上都在热议12306网站的架构问题,仁者见仁,智者见智。12306现在已经这个样子了,如何在目前的状况帮助过年回家的人买到票呢?于是有了很多帮助购票的自动登录插件,但这些自动登录插件能成功要归功于12306的登录程序在登录失败(提示用户过多,稍后再试)时没有刷新验证码,所以这些插件让用户输入用户名、密码,验证码后,就可以通过js脚本的方式一直登录,直到成功,如果12306“不放水”,验证码每次登录失败都变一次,这些插件就嗝屁着凉了,那有没有办法识别出图像中的验证码呢?
Angel Eyes是专门做CV的,Angel Eyes里面也有人要回家,看到铁道部的12306网上售票系统的验证码比较少变化,就着手试了试,下面是效果和算法要点,屡试不爽,与大家分享。
在处理图像噪声方面,这些验证码只被加入了轻微的噪声,用一个二值化就干净的解决了;
在处理字体变形方面,根本就没有任何变形,仅仅是用了两套字体,我就干体力活逐个截取了这两套字体,如果字体有拉伸和缩放,我现在这个算法就不行了,至少会慢若干倍,因为搜索空间增加了若干倍;
在文字重叠上,采用从左到右逐个剔除(当然,笔画完全重叠的部分不剔除),每匹配上一个字符后,下一个字符的搜索起始位置是上一个字符的匹配位置加上字符宽度的一半,这样重叠得很厉害也不怕;
在整体结果上,对已匹配字符全部剔除后看残余笔画数量,如果太多则认为不理想,进行回溯,目前最多回溯到第二候选字就够100%的准确率了。
在单个字符匹配上,原来用归一化互相关,后来考虑到图像点阵非常小,并且是在二值化的基础上处理,用FFT算互相关的加速作用也就不会明显,并且不方便我做空域的其它处理,直接用窗口滑动模板处理了,
准确率和速度方面:如果不采用回溯,可以40ms处理一幅,准确率只有90%,如果要100准确率,速度有点慢,300多毫秒才识别一个。
“模式识别”技术识别12306验证码相关推荐
- Ocr技术 识别高级验证码
光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析处理,获取文字及版面信息的过程. OCR的概念是在1929年由德国科学家Tau ...
- python识别12306验证码_Python 识别12306图片验证码物品的实现示例
1.PIL介绍以及图片分割 Python 3 安装: pip3 install Pillow 1.1 image 模块 Image模块是在Python PIL图像处理中常见的模块,主要是用于对这个图 ...
- 识别12306验证码脚本
在12360购票的时候验证码是一件特别令人烦恼的事情,以前看到网友写的一个可以识别验证码的脚本很有意思,现在转载过来,供大家娱乐 转自https://github.com/andelf/fuck123 ...
- python识别12306验证码_Python3.4实现的12306最新验证码识别
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import ssl import json from PIL import Image ...
- 基于轻量级CNN的12306验证码识别分析系统
在我很早的一篇文章中有写过图标型验证码识别的实践项目,这里主要是基于以往的实践经历做出的技术升级,包括:模型轻量化.界面开发.Grad-CAM热力图集成等. 话不多说,首先看效果: 基于CNN的轻量级 ...
- 从零开始打造一个12306验证码识别系统
12306验证码从简单的数字图片验证码进化到图形识别验证码,成功拦住了需要购票的民众,但并没有拦住机器,今天我们用一篇文章讲解如何从零开始设计并实现一套12306验证码识别系统,所有思路已成功实现并达 ...
- 12306验证码识别初尝试(3)——tesseract的长处与短处,使用百度文字识别与百度图片自动识别验证码并自动抢票,识别成功率10%
12306验证码识别是我人生中"抢购"这一重大环节的第一步,所以我一定会把此环节写好,现在12306已经小小成功,接下来,我打算使用keras来深度学习解决12306抢票的问题,当 ...
- Jmeter识别登录验证码_使用百度AI图片识别技术
Jmeter识别登录验证码_使用百度AI图片识别技术 一.环境准备 1.下载并引用以下Jar包 2.将下载的jar包放至Jmeter中的lib目录中即可使用 二.使用步骤 1.在获得验证码的请求后使用 ...
- 模式识别技术应用于非主流手写火星文的识别
摘要:当前80后非主流已经逐渐年老色衰,90后非主流群体茁壮成长,在非主流中带有手写输入功能的手机.触摸屏等产品市场占有率越来越高,因此本文领先 于国际,第一次讨论了非主流最常使用的火星文输入法的手写 ...
最新文章
- 图解八大排序算法——我见过的最详细的讲解(转)
- Docker 图形化页面管理工具使用
- 认识python零基础知识到实战概论的复习和回顾上
- 如何在 Linux 中创建一个共享目录
- ASP.NET Core 使用 JWT 自定义角色/策略授权需要实现的接口
- Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
- 【OpenCV】重映射及仿射变换
- Android Studio添加android.support.v4包的依赖(解决V4的FragmentManager的错误)
- webstorm 配置sass
- python数据可视化第三方库有哪些_数据可视化!看看程序员大佬都推荐的几大Python库...
- mybatis mysql xml配置_Mybatis-Spring连接mysql 8.0配置步骤出错的解决方法
- 哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端)第一套笔试题
- 在线预览CAD 在线预览office 在线预览3D模型
- 计算机未安装flash,win10系统提示未安装Flash的解决方法
- clickhouse建库_Clickhouse数据库基本操作
- 两个运放制作加法器_初级模拟电路:8-2 加法与减法电路
- CentOS7L2TP/IPSec
- 2016年11月前端面试题整理汇总
- access h3c交换机光口_h3c光纤交换机_H3C交换机光口设置
- RouterOS 宽带拨号接入上网设置教程(超详细)
热门文章
- 惠普win10一键还原_执行 HP 系统恢复 (Windows 10)
- 417. 太平洋大西洋水流问题(DFS)
- Netty导学之NIO,Channel、Buffer、Selector详解
- Win11安装VScode详细教程、配置Anaconda与python环境
- Chainlink——白皮书简析(whitepaper v2)
- wavecn 2.0.0.5 正式版_iOS 13.6 GM版?来了,正式版还会远吗?
- 5G赋能行业园区数字化转型技术白皮书
- 水浒二十八回--施恩重霸孟州道 武松醉打蒋门神
- Ubuntu操作-02 设置SSH免密码
- Unity中的物体遮挡关系(一)——基础认知