{image}

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

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

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

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

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

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

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

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