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

2024-05-17 03:10

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

我来说下自己的想法,本人在一家做图像识别的公司呆了三年,做销售工作。识别验证码的使用的技术是光符字符识别技术,即OCR技术,就是将图片中的文字识别为电子流的技术。这项技术目前已经得到广泛应用,比如扫描识别,身份证识别,银行卡号识别,车牌识别等等。验证码识别也是其中一种,也是难度比较大的一种。为什么难呢,一方面是因为它总体来说没有规律,无法使用模版识别方式,身份证识别是典型的模版识别方式,因为身份证识别位置是固定的。另一方面是各类因素影响识别率较大,比如倾斜,背景等。总的来说就是目前ocr技术无法使验证码识别率达到一个满意的效果。哪些核心技术限制了它的识别率呢?
1.倾斜矫正技术。整个识别验证码流程大概是这样的。先将验证码区域图像获取下来,进行二值化,将图片中的字符一个一个切分出来,分别进行识别,输出整体识别结果。当一个字符是歪的时候(此处说的歪是大于一定角度的,具体记不清了,但验证码中经常出现),切下来后无法进行倾斜矫正,那么计算机可能认为要识别的字就是这样的,识别后肯定是错误的。为什么不能进行倾斜矫正呢?因为倾斜矫正是需要一个基准点的,比如身份证识别可以拿照片位置做记住点,这样倾斜多少度识别引擎是知道的,就可以矫正,但验证码没有。所以验证码识别这倾斜矫正是一个难点!
2.图像质量影响。目前的ocr技术一般都需要二值化,即将彩色图片变为黑白的后再进行切分识别。但这块有个痛点,就是背景颜色要比识别的字颜色要浅这样识别才有保证,但验证码有的不是这样,影响了识别率。另外就是获取但的图片分辨率不够,ocr识别是需要每个字要有一定的dpi的,验证码很多字达不到,ocr识别率当然差。不要跟我说你能看清,因为人往往是理想的,但技术是脚踏实地的,这块后边我会说。为什么有些网站的验证码特别简单,以上的问题基本没有,ocr识别率应该不低,却没人做识别插件呢?这个需要从商务角度说,我认为有以下几点:
1.还是识别率不够高。对于需要这项技术的公司,一般都是做产品的,他们会对用户体验这块非常的关注。你设想一下,当你抢票的时候,验证码识别结果一出来,竟然有两个字符是错的,你还要去改,你肯定会骂娘,唠叨不如老子自己手输了。对于这些产品公司他们肯定会关注这点啊,所以有些这块不是强需求的公司就不做这块了。但对于有些产品,这块用户需求巨大,比如抢火车票的这种产品,这块是竞争的一个巨大优势,在目前技术达不到非常高的识别率又不想太影响用户体验情况下,他们是怎样做的呢?先要说下引擎的识别结果不是只有一个的,而是很多计算机认为可能的结果,每个结果都有一个分数,最后选分数最高的一个为输出结果。通过大量训练比对,可模糊确定界定正确和不正确结果的一个值。好了回到之前的问题,产品公司通过这个值来只输出他们认为绝对正确的结果,而有的所有识别结果都没超过这个值,那就不输出了,用户自己填。这样做的好处是,减少了用户一定的操作,又不太影响用户体验。真是印证了我们总跟客户说的那句话,目前这些技术只能减轻用户的工作量,而不能完全代替!之前这种方法效果也不是太好,因为这个值太难界定,错误率也不低,所以一些有钱的公司是这样做的:买两家技术,识别结果进行比对,输出比对一样的即他们认为绝对准确的结果,比对不一样的结果则不输出,这种方法是目前比较好的方法,但成本比较高。老版本的智行火车票好像就这么做的。
2.验证码设定奇葩。我们想输入省事儿设定验证码的肯定要阻止啊,出了一批连人都不容易知道怎么输的验证方式,这已经超出图像识别领域,尤其是一些流量大的公司,图片我都看不懂计算机能懂么!
3.技术自主研发公司的壁垒。这些技术公司也要发工资吃饭的,验证码识别只是图像识别应用的很小一部分,和主流的市场需求量大的身份证识别,银行卡识别,票据识别比需求量还是小,况且有重重阻碍,技术推动力自然小,技术进步很慢。好了,以上回答按照我的理解基本可以解答题主问题,目前验证码识别应用率不高主要因为技术瓶颈和市场阻碍因素。下面我说点题外话,仅代表我个人观点,不吐不快。当我刚开始做核心技术销售的时候和后段技术人员冲突很多。以题主想法举例,销售站在客户角度认为既然能够看清,图片效果不错,那识别应该问题不大。而后端技术给出的结果是无法保证,那么冲突来了,是我一厢情愿过于理想还是技术不给力。当我全程看到他们做的事之后,才改变了我的认知。为了提升零点几的识别率,他们需要大量的数据进行训练,这些数据收集来的少大多是买来的,特别贵。大量数据拿来后经过初步的过滤,技术人员通过算法进行切分。你能想想几T的全文字图片数据切分成单个字符有多少么。然后需要数据部门大量人工对这些字符进行人工标注(标注每个字符图片的识别结果),这个时间可能是通宵达旦的几天,可能是几个月。然后将分类好的字符拿给技术进行初步训练,然后统计,优化算法。好,再来一轮,训练,优化算法。一遍一遍,直到达到预期目标。这里需要大量的人工参与,大量的资金,大量的时间为了提升一点点的识别率。这还不算核心技术人员脑洞大开的精力和时间,还有进行前期实验的时间。我不止一次看到他们冥思苦想,通宵达旦,反复实验。说实话,我看着都枯燥,都累。但就是这些我们所说的码农单身狗,让人机智能交互技术一点一点在往前走,脚踏实地。往小了说这是他们的职责,往大了说他们就是在默默无闻的改变我们的生活!为什么我之前会给客户肯定答案呢?因为我理想,想当然,对技术不了解,或者说根本不了解他们在做什么!所以请不要像我以前一样在不了解实际情况之前说:这是可以做的啊,看着挺简单啊,为什么没人做啊?不去了解如何知道可以,如何知道简单,如何知道这东西没人在做?只是不了解不知道罢了,这是对默默无闻搞研究的技术人员的一种不尊重!如果现在在遇到不敢肯定的技术问题,我会坦然的跟客户说:不好意思,这块我确实不是很清楚,我需要问下我们专业的技术人员。

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

2. 有些验证码带字母和数字写不准确怎么办

1.首先是验证码确定是否真正的输入对了,比如遇到1 l 5 S等相似的数字字母用户是容易搞错的,更何况验证码为了防止机器人都是比较难看清的。                                    2.页面上的刷新问题,每次刷新页面登录的验证码都会跟着变换,如果提示验证码错了系统便会更换验证码,这时可能页面还是先前的验证码,你不能输入两次相同的验证码,要待看到新的验证码后再重新输入新的验证码就可以了。这时候可以单击显示有验证码的图片,重新获取验证码,再次输入,重新“发表”,查看是否可以。                   3.输入法的全角/半角问题:输入法中的全角/半角输入数字是不一样的,即全角数字和半角数字是不同的。                          4.在页面停留的时间太久了,可以先关闭页面,再重新打开试试看。【摘要】
有些验证码带字母和数字写不准确怎么办【提问】
1.首先是验证码确定是否真正的输入对了,比如遇到1 l 5 S等相似的数字字母用户是容易搞错的,更何况验证码为了防止机器人都是比较难看清的。                                    2.页面上的刷新问题,每次刷新页面登录的验证码都会跟着变换,如果提示验证码错了系统便会更换验证码,这时可能页面还是先前的验证码,你不能输入两次相同的验证码,要待看到新的验证码后再重新输入新的验证码就可以了。这时候可以单击显示有验证码的图片,重新获取验证码,再次输入,重新“发表”,查看是否可以。                   3.输入法的全角/半角问题:输入法中的全角/半角输入数字是不一样的,即全角数字和半角数字是不同的。                          4.在页面停留的时间太久了,可以先关闭页面,再重新打开试试看。【回答】

3. 验证码是打字母吗?

验证码一般是防止批量注册的,人眼看起来都费劲,何况是机器。
2.某些论坛未登录发贴要输入验证码大概是防止大规模匿名回帖的发生。 目前,不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。
3.现在验证码被使用来防止用户帐号、密码被盗;因为盗窃帐号一般采取特定的软件反复不断地换用各种密码登陆,验证码可以阻止其运行。 所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。
可能是字母也可能是数字或者中文字,或者是字母数字混合型的,都有

验证码是打字母吗?