验证码识别结果一出来,所以验证码识别这倾斜矫正是一个难点,总的来说就是目前ocr技术无法使验证码识别率达到一个满意的效果,识别验证码的使用的技术是光符字符识别技术 有97%新玩家认为mxnet识别验证码()值得一读!

{image}

4条解答

一.为什么网页的验证码的字母总是那么难辨认

我来说下自己的想法 ,本人在一家做图像识别的公司呆了三年 ,做销售工作。识别验证码的使用的技术是光符字符识别技术,即OCR技术,就是将图片中的文字识别为电子流的技术 。这项技术目前已经得到广泛应用 ,比如扫描识别,身份证识别,银行卡号识别 ,车牌识别等等 。验证码识别也是其中一种,也是难度比较大的一种。为什么难呢,一方面是因为它总体来说没有规律 ,无法使用模版识别方式,身份证识别是典型的模版识别方式,因为身份证识别位置是固定的。另一方面是各类因素影响识别率较大 ,比如倾斜,背景等 。总的来说就是目前ocr技术无法使验证码识别率达到一个满意的效果。哪些核心技术限制了它的识别率呢?

1.倾斜矫正技术。整个识别验证码流程大概是这样的 。先将验证码区域图像获取下来,进行二值化 ,将图片中的字符一个一个切分出来 ,分别进行识别,输出整体识别结果。当一个字符是歪的时候(此处说的歪是大于一定角度的,具体记不清了 ,但验证码中经常出现),切下来后无法进行倾斜矫正,那么计算机可能认为要识别的字就是这样的 ,识别后肯定是错误的。为什么不能进行倾斜矫正呢?因为倾斜矫正是需要一个基准点的,比如身份证识别可以拿照片位置做记住点,这样倾斜多少度识别引擎是知道的 ,就可以矫正,但验证码没有 。所以验证码识别这倾斜矫正是一个难点!

2.图像质量影响。目前的ocr技术一般都需要二值化,即将彩色图片变为黑白的后再进行切分识别。但这块有个痛点 ,就是背景颜色要比识别的字颜色要浅这样识别才有保证,但验证码有的不是这样,影响了识别率 。另外就是获取但的图片分辨率不州裂瞎够 ,ocr识别是需要每个字要有一定的dpi的 ,验证码很多字达不到,ocr识别率当然差。不要跟我说你能看清,因为人往往是理想的册空 ,但技术是脚踏实地的,这块后边我会说。为什么有些网站的验证码特别简单,以上的问题基本没有 ,ocr识别率应该不低,却没人做识别插件呢?这个需要从商务角度说,我认为有以下几点:

1.还是识别率不够高 。对于需要这项技术的公司 ,一般都是做产品的,他们会对用户体验这块非常的关注 。你设想一下,当你抢票的时候 ,验证码识别结果一出来,竟然有两个字符是错的,你还要去改 ,你肯定会骂娘 ,唠叨不如老子自己手输了。对于这些产品公司他们肯定会关注这点啊,所以有些这块不是强需求的公司就不做这块了。但对于有些产品,这块用户需求巨大 ,比如抢火车票的这种产品,这块是竞争的一个巨大优势,在目前技术达不到非常高的识别率又不想太影响用户体验情况下 ,他们是怎样做的呢?先要说下引擎的识别结果不是只有一个的,而是很多计算机认为可能的结果,每个结果都有一个分数 ,最后选分数最高的一个为输出结果 。通过大量训练比对,可模糊确定界定正确和不正确结果的一个值。好了回到之前的问题,产品公司通过这个值来只输出他们认为绝对正确的结果 ,而有的所有识别结果都没超过这个值,那就不源辩输出了,用户自己填。这样做的好处是 ,减少了用户一定的操作 ,又不太影响用户体验 。真是印证了我们总跟客户说的那句话,目前这些技术只能减轻用户的工作量,而不能完全代替!之前这种方法效果也不是太好 ,因为这个值太难界定,错误率也不低,所以一些有钱的公司是这样做的:买两家技术 ,识别结果进行比对,输出比对一样的即他们认为绝对准确的结果,比对不一样的结果则不输出 ,这种方法是目前比较好的方法,但成本比较高。老版本的智行火车票好像就这么做的。

2.验证码设定奇葩 。我们想输入省事儿设定验证码的肯定要阻止啊,出了一批连人都不容易知道怎么输的验证方式 ,这已经超出图像识别领域,尤其是一些流量大的公司,图片我都看不懂计算机能懂么!

3.技术自主研发公司的壁垒。这些技术公司也要发工资吃饭的 ,验证码识别只是图像识别应用的很小一部分 ,和主流的市场需求量大的身份证识别,银行卡识别,票据识别比需求量还是小 ,况且有重重阻碍,技术推动力自然小,技术进步很慢。好了 ,以上回答按照我的理解基本可以解答题主问题,目前验证码识别应用率不高主要因为技术瓶颈和市场阻碍因素 。下面我说点题外话,仅代表我个人观点 ,不吐不快。当我刚开始做核心技术销售的时候和后段技术人员冲突很多。以题主想法举例,销售站在客户角度认为既然能够看清,图片效果不错 ,那识别应该问题不大 。而后端技术给出的结果是无法保证,那么冲突来了,是我一厢情愿过于理想还是技术不给力 。当我全程看到他们做的事之后 ,才改变了我的认知。为了提升零点几的识别率 ,他们需要大量的数据进行训练,这些数据收集来的少大多是买来的,特别贵。大量数据拿来后经过初步的过滤 ,技术人员通过算法进行切分 。你能想想几T的全文字图片数据切分成单个字符有多少么。然后需要数据部门大量人工对这些字符进行人工标注(标注每个字符图片的识别结果),这个时间可能是通宵达旦的几天,可能是几个月。然后将分类好的字符拿给技术进行初步训练 ,然后统计,优化算法 。好,再来一轮 ,训练,优化算法。一遍一遍,直到达到预期目标。这里需要大量的人工参与 ,大量的资金,大量的时间为了提升一点点的识别率 。这还不算核心技术人员脑洞大开的精力和时间,还有进行前期实验的时间。我不止一次看到他们冥思苦想 ,通宵达旦 ,反复实验。说实话,我看着都枯燥,都累 。但就是这些我们所说的码农单身狗 ,让人机智能交互技术一点一点在往前走,脚踏实地。往小了说这是他们的职责,往大了说他们就是在默默无闻的改变我们的生活!为什么我之前会给客户肯定答案呢?因为我理想 ,想当然,对技术不了解,或者说根本不了解他们在做什么!所以请不要像我以前一样在不了解实际情况之前说:这是可以做的啊 ,看着挺简单啊,为什么没人做啊?不去了解如何知道可以,如何知道简单 ,如何知道这东西没人在做?只是不了解不知道罢了,这是对默默无闻搞研究的技术人员的一种不尊重!如果现在在遇到不敢肯定的技术问题,我会坦然的跟客户说:不好意思 ,这块我确实不是很清楚 ,我需要问下我们专业的技术人员。

二.net 文本框如何判断验证码

public partial class _Default : { protected void Page_Load(object sender, EventArgs e) { if (!k)//这样只在第一次打开时,才运行这里,以后点,验证码就不会在这里变化了 { string tmp = RndNum(4); HttpCookie a = new HttpCookie("ImageV", tmp); (a); ode(tmp); } } private void ValidateCode(string VNum) { Bitmap Img = null; Graphics g = null; MemoryStream ms = null; int gheight = * 12; Img = new Bitmap(gheight, 25); g = (Img); //背景颜色 (); //文字字体 Font f = new Font("Arial Black", 10); //文字颜色 SolidBrush s = new SolidBrush(); g(VNum, f, s, 3, 3); ms = new MemoryStream(); (ms, ); ent(); pe = "image/Jpeg"; te(()); (); (); (); } private string RndNum(int VcodeNum) { string Vchar = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p" + ",q,r,s,t,u,v,w,x,y,z"; string[] VcArray = (new Char[] { ',' }); string VNum = ""; int temp = -1; Random rand = new Random(); for (int i = 1; i < VcodeNum + 1; i++) { if (temp != -1) { rand = new Random(i * temp * unchecked((int))); } int t = (35); if (temp != -1 && temp == t) { return RndNum(VcodeNum); } temp = t; VNum += VcArray[t]; } return VNum; } } ------------------------------------------------- 这个是我在网上拉的验证码代码, 我在另一个aspx中用了一个imagebutton空间显示图片 想问问,怎样判断textbox里写的和imagebutton的一致 , 我用,if ( != ()) { ("验证码错误!!"); } 就算写对了它也说验证码错误- -+++if ((["CheckCode"].Value, , true) != 0)
{
= "验证码错误,请输入正确的验证码 。";
= true;
return;
}

我的是这样判断的,呵呵

试试看你想要做的实时验证吧··

实际上 很多论坛上都有这个功能 ,这个功能实现的思路应该是:
$("#code").change(function(){
//里面写异步判断,将code中的value发送到服务器端验证,然后回传验证状态···
});

三.怎么判断验证码输入的是否正确

我建了一个页只让它显示的是验证码的内容!然后在登录页调用这个页显示!我怎么判断验证码是否正确啊...在页面生成验证码后将验证码写入COOKIE,在登录前提取文本框的值和COOKIE的值进行比较就OK了就是你生成验证的页面 ,在session中写一个值,然后在判断的地方,判断和session中的值是不是一样的 。

四.向日葵远程监控。对方会随时来监控我的电脑嘛

首先我们要知道 ,向日葵远程连接成功的前提是要知道伙伴识别码和验证码。卜局伙伴识别码可以说是不变的;而验证码是可以修改的,但如果不修改,验证码就还是原来的那个 。那么商家有这两个在手是可以远程控制的。但只要你不让向日葵随机启动。那就没有人能通过向日葵链接你的电脑 。

箭头的就是验证码

所以只要你的向日葵不随开机启动 ,就不会被监控。同首山理teamviewer也是如此 ,并不需要担心远程一次就被者弊中人用就监控。

但必须说明,人家远程的时候你还是要看着的,如果它在你的电脑上装个其他隐藏的远程控制软件呢 ,那你不久悲催了!防人之心不可无啊!

本文版权归趣快排SEO www.SeogurUblog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▶61910465