使用Tesseract破解验证码并训练字库的方法

介绍:Tesseract是一个Google支持的开源的OCR图文识别开源项目,可以较好的识别常见的字体(字母、数字和汉字)并且可以根据需求训练出指定字体的字库,GitHub上有众多开发者贡献的字库。

最近Boss让破解一中类型的验证码,大概长这个样子验证码

破解的详细过程下面会慢慢描述,在破解的时候遇到了各种坑,然而总结出来就只有这两点
1、图片不能太小
2、图片不能太脏
满足了这些条件破解成功率基本就能保证在85%以上

首先安装tesseract(需要JDK环境),并下载jTessBoxEditor训练字库工具

一、图片的预处理
处理干净的图片可以提高识别率,对于上面这种干扰点和背景色比较乱的验证码来说是必不可少的一步,我就对上面的图片进行了比较繁琐的处理,最后得到的结果完全就是一个白色的背景和剩下的字母数字,如果需要,可以将图片放大几倍提高正确率;
然后就需要一个比较全的样本文件集合,我将上面的一个验证码切割成了四个独立的图片文件(当然了,一个好的验证码要有随机的扭曲和黏合,字符不能只出现在固定的位置,这种才能称为有效的验证码,否则能被这样切割成独立字符的简直就是对验证码的侮辱)拉取了上千个验证码后就能得到相当丰富的样本集。
在样本中选取一些比较有代表性的字符取组装成一个模版:
1、大写字母:
ALPHA
2、小写字母:
alpha
3、数字:
num

二、训练字库
使用jTessBoxEditor将上面的图片模版合并成一个tif文件:
Tools–>Merger TIFF(使用shift选中多个文件)
然后输入命令行生成box文件
tesseract ybx.font.exp0.tif ybx.font.exp0 batch.nochop makebox
ybx.font.exp0.tif是我tif文件的名称,tif和box名称要保持一致并且要符合以下格式:

tesseract [lang]
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Tesseract.js训练字库,您需要遵循以下步骤: 1. 准备训练数据集:您需要收集包含所需字体和字符的图像数据集。这些图像应该包含您希望Tesseract.js能够识别的所有字符。 2. 准备标注数据:使用一个OCR标注工具(如LabelImg或RectLabel),为每个图像创建相应的标注文件。标注文件应该包含图像中每个字符的边界框位置。 3. 生成训练数据:使用Tesseract提供的训练数据生成工具,将标注文件转换为Tesseract.js可用的训练数据格式。这通常涉及将图像转换为Tesseract.js的box文件格式。 4. 创建配置文件:为训练过程创建一个配置文件,其中包含有关训练的参数和设置。您可以根据需要调整这些参数,以提高训练效果。 5. 开始训练使用Tesseract提供的训练工具,根据准备好的训练数据和配置文件开始训练过程。这个过程可能需要一些时间,具体取决于您的数据集大小和计算资源。 6. 评估和调整:一旦训练完成,您可以使用测试数据集评估模型的性能,并根据需要调整配置文件和训练数据。 7. 导出字库:最后,您可以将训练完成的字库导出为一个文件,以便在Tesseract.js中使用。这个字库文件将包含训练过程中学习到的字符识别模型。 请注意,这只是一个概述,并且涉及到一些复杂的步骤和概念。如果您是初学者,可能需要更多的研究和学习来更好地理解和实施这个过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值