机器自动识别验证码的原理是怎么样的?
机器自动识别验证码的原理是怎么样的?
http://www.zhihu.com/question/22479139
----部分摘录
文字识别主要有两大步骤,第一步是特征提取,第二部是分类识别。
第一步包括:二值化,页面矫正,文字块提取,文字baseline提取,文字分割,特征提取,etc.
第二步包括:训练时的特征与字符的映射关系存储,识别时的特征识别。
第一部是通用的,第二步可以用各种机器学习的算法,包括ANN,SVM等算法,典型代表:tesseract(tesseract-ocr - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.)。这种比较通用,用户可通过自己训练以应用于其他语言的识别。
当然也可以不用机器学习的算法,直接硬编码,指定哪些特征属于哪个字符,典型代表:GOCR (http://jocr.sourceforge.net/index.html)。这种适用于小字符集,比如英语,或者指定某个范围的汉语字符等情况,速度较快。
我认为OCR最复杂的还是在于第一步,文字的分割提取。
【签名→→→】【****知其然知其所以然****】
工具只能帮助我们解决我们认识到的问题,解决不了我们都没理解的问题。
不能再把一切扔给框架、容器、工具!
首先理解你的业务逻辑,理解你要实现的功能,
然后搞清楚框架、容器、工具会帮助我们做什么。
只有理解了自己的业务逻辑,理解了自己的代码,理解了自己要用到的第三方代码,
才能真正完美地实现我们需要的功能!