您好!欢迎来到北极熊

北极熊

热门搜索: 任正非传    神雕侠侣    红楼梦   

利用tesseract进行识别验证码

分类:软件开发应用 时间:2019-12-23 21:04 浏览:622
概述
最近需要爆破一个后台,但是因为有验证码所以尝试了一下使用tesseract做ocr识别0x1:环境搭建https://digi.bib.uni-mannheim.de/tesseract/  翻到最下面,下载最新版本的tesseract,安装完成以后配置安装目录到环境变量中pip安装库pip i
内容

最近需要爆破一个后台,但是因为有验证码所以尝试了一下使用tesseract做ocr识别

0x1:环境搭建

https://digi.bib.uni-mannheim.de/tesseract/  

翻到最下面,下载最新版本的tesseract,安装完成以后配置安装目录到环境变量中


pip安装库

pip install pytesseract
pip install pillow
pip install requests


目标验证码
1.jpg
import pytesseract
from PIL import Image

image = Image.open('./captcha1.png')
image = binaryzation(image)
result = pytesseract.image_to_string(image)
print(result)

2.jpg
少部分验证码可以直接识别出来,但是大部分倾斜变形比较严重的会识别不出来,判断为空

3.jpg
针对一些比较轻微的变形,通过一些预处理手段可以有效的提高识别率

#二值化函数
def binaryzation(image,threshold=150):
    image = image.convert('L')
    table = []
    for i in  range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    image = image.point(table,"1")
    return image

右图 为二值化处理以后的图像,去除了很多干扰像素点,可以一定程度上提升正确率
4.jpg
但是tesseract的识别能力还是很差,如果要追求更高的正确率必须进行训练

可以参考这篇文章
https://zhuanlan.zhihu.com/p/40178190

对于开源的cms,可以下载源码在源码里面找到验证码生成的程序,生成大量的识别样本,然后通过深度学习来进行识别

通过tensorflow训练dede的验证码识别,大概训练一万张验证码样本大概就能达到98%的识别率.

5.jpg

评论
资讯正文页右侧广告
联系我们
电话:18936411277
邮箱:1044412291@qq.com
时间:09:00 - 19:00
公众号:北格软件
底部广告