前言
前戏回顾(点击可直接访问)
正文
有的时候,并不是说所有验证码用api或者tesseract都可以正确识别出来的,还是需要经过相关训练,让tesseract知道你想让它识别出来的验证码。
首先安装tesseract和其训练工具
brew install tesseract --with-training-tools
直接用命令识别验证码
tesseract 1.jpg 1
发现识别还是有点问题
我们利用jTessBoxEditor进行训练
首先我们先下载点图片下来
然后把要训练的图片合为tif格式
保存文件名为[lang].[fontname].exp[num].tif,如yuyan.ziti.exp0.tif
使用命令生成box文件
tesseract yuyan.ziti.exp0.tif yuyan.ziti.exp0 batch.nochop makeboxbox文件为各个分割出来的内容的坐标
利用jTessBoxEditor打开tif文件来对内容进行纠正并保存。
PS:x往左右移动大小不变, y上下移动大小不变,w往左右扩张 ,h上下扩张。
使用命令训练生成tr文件
tesseract yuyan.ziti.exp0.tif yuyan.ziti.exp0 nobatch box.train
使用命令输出字符集
unicharset_extractor yuyan.ziti.exp0.box
创建font_properties文件来表示字体样式信息。
内容为
ziti 0 0 0 0 0
使用命令创建聚类
shapeclustering -F font_properties -U unicharset –O yuyan.unicharset yuyan.ziti.exp0.tr
使用命令创建特征
mftraining -F font_properties -U unicharset yuyan.ziti.exp0.tr
使用命令输出数据文件
cntraining yuyan.ziti.exp0.tr
把unicharset, inttemp, normproto, pffmtable,shapetable这四个文件加上前缀"ziti"
使用命令生成语言包
combine_tessdata ziti.
复制traineddata文件到tesseract-OCR字体目录
先不用我们的字体识别一下试试
使用-l指定我们的字体包试试
后续
完。
原文始发于微信公众号(中国白客联盟):识别验证码继续爆破后台(三)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论