PS:为了不影响讲解效果,模型 下载放置于文章末尾
本文使用
[https://github.com/kerlomz/captcha_trainer] 项目进行训练
[https://github.com/kerlomz/captcha_platform] 项目进行部署
一般来说,大家伙儿肯定是想不到它居然还自带裁图,并且可自动以批次传入预测,只不过需要修改一波参数,后面会提及需要修改的地方。
因为是九宫格形态,识别的时候可以切割预处理把多张图片作为一个有序批次传入识别。
如下图CorpParams参数,分两部分裁剪,一是中文标签图,二是8张小图。
model.yaml部分配置如下:
FieldParam:
Category: ['航母', '雨靴', '毛线', '安全帽', '调色板', '海鸥', '日历', '网球拍', '公交卡', '沙包', '风铃', '红豆', '路灯', '鞭炮', '黑板', '菠萝', '高压锅', '手掌印', '拖把', '本子', '烛台', '文具盒', '盘子', '海报', '创可贴', '漏斗', '电饭煲', '苍蝇拍', '蜡烛', '啤酒', '档案袋', '狮子', '排风机', '双面胶', '中国结', '茶盅', '金字塔', '剪纸', '卷尺', '锅铲', '牌坊', '钟表', '冰箱', '锣', '海苔', '蚂蚁', '开瓶器', '跑步机', '挂钟', '蒸笼', '仪表盘', '话梅', '印章', '老虎', '护腕', '锦旗', '樱桃', '热水袋', '珊瑚', '龙舟', '耳塞', '棉棒', '订书机', '茶几', '药片', '篮球', '蜥蜴', '绿豆', '电子秤', '沙拉', '薯条', '红酒', '蜜蜂', '口哨', '辣椒酱', '打字机', '红枣', '刺绣', '电线', '铃铛']
Resize: [60, 30]
ImageChannel: 3
ImageWidth: 293
ImageHeight: 190
MaxLabelNum: 1
ReplaceTransparent: False
HorizontalStitching: False
OutputSplit: ","
CorpParams: [
{
"start_pos": [118, 0],
"interval_size": [0, 0],
"corp_num": [1, 1],
"corp_size": [60, 30]
},
{
"start_pos": [5, 40],
"interval_size": [5, 5],
"corp_num": [4, 2],
"corp_size": [66, 66]
}
]
下载模型包中 model 路径下有全部的 yaml 配置
返回:
其中首个结果为60x30的文字标签[锣],其余为下方小图[红枣/茶盅/黑板/蜥蜴/锣/锣/茶盅/黑板],分别以从左至右的顺序。
{"message": "锣,红枣,茶盅,黑板,蜥蜴,锣,锣,茶盅,黑板", "code": 0, "success": True, "uid": "6d5517e8-a1a3-11ea-b053-c8d3ff4317e4"}
使用的时候可以根据逗号进行拆分,0,1,2,3,4,5,6,7,8
与将索引后8个预测值与索引0进行匹配判断,再根据索引计算出坐标即可,妈妈再也不用担心过年回家抢不到票,而去交携程的智商税了。
模型下载地址:
https://github.com/kerlomz/captcha_platform/releases
使用 https://github.com/kerlomz/captcha_platform 项目进行部署:
将下载后的 12306.zip 解压,得到 graph 和 model 两个路径。
放置于 captcha_platform 项目根目录即可,若不像安装环境可以使用链接中的编译版进行部署。
Windows:
双击 captcha_platform_tornado.exe 或 使用命令行执行(若遇闪退)
Ubuntu:
使用./captcha_platform_tornado 启动即可,可配合 nohup 后台运行。
MacOS:
使用方法与Ubuntu一致。
喜欢的话可以Star笔者的开源项目,本文的模型将文字标签与小图混合训练为一个模型,大小仅1.5mb左右,传入整图(293x190)识别速度约15ms左右。