OCR识别验证码

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了OCR识别验证码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在爬某网站,老是蹦出来验证码,就想着找个OCR破了这个验证码,然后就开始了OCR探索之旅。

首先简单说一下什么是OCR

OCR是(Optical Character RecognITion,光学字符识别)的简称,主要用途

  1. 办公用途,用来识别图片里面的文字,可以高效率的录入图片类型文件。

  2. 识别网站验证码

  3. 详见维基百科或者百度百科

OCR识别的验证码原理

  1. 采集一批验证码,根据图片特点进行初步处理(二值化/灰度化/滤波/降噪等处理)

  2. 然后分割图片,旋转图片,模板选取,训练算法,让它更准确。

  3. 有兴趣的可以看一个Python实现的OCR识别验证码详细demo,实际操作过程挺有意思的,大家有兴趣了可以试试

OCR识别验证码的具体操作

  1. 首先我测试了一个百度的Node.js实现的OCR包
    gitHub地址 https://github.com/netpi/baidu-ocr-api

安装也很简单直接按照官方的文档安装即可
发现百度的这个OCR包识别效果不太理想

![node_ocr.png][1]  
  1. 然后经过一番GOOGLE和小伙伴们的推荐 选择一个Google开源的tesseract这个是C++写的,直接融合到爬虫里不太方便,__有外国朋友基于tesseract封装了一个Python的包pytesseract__,直接开箱即用,融入爬虫程序中。

  2. 百闻不如一run

    **ps(这里使用的操作系统是Ubuntu16.04;Python版本是2.7)**  
    直接 `pip install pytesseract` 然后Python图片处理要用到PIL(Python Imaging Library) `pip install PIL`
    原图片   

    OCR识别验证码

写个简单的测试demo
![code.png][3]

看下识别结果   
![error.png][4] 

报错了, 根据报错信息来看,是确实了什么文件,或者依赖lib
我跟踪了pytesseract的代码,发现是少了C++提供的OCR服务,因为pytesseract是调用的tesseract(C++写的)
然后安装tesseract ```sudo apt install tesseract```
再run一下代码

OCR识别验证码

整体结果还可以(倒数第四位识别错了),再训练一下准确率就更高了。
预知后事如何,且听下回分解

脚本宝典总结

以上是脚本宝典为你收集整理的OCR识别验证码全部内容,希望文章能够帮你解决OCR识别验证码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。