最近学习验证码识别,规则是 4 位的字母和数字组合,图片是 gif 的,有一定的干扰,gif 图片有几帧,目前能二值化识别其中 3 个,gif 不知道怎么处理好,用的语言是 python,大家有什么好的思路吗,有开源的识别项目推荐吗 验证码如图
1
hkitdog 2019-11-19 23:04:36 +08:00 via iPhone
用打码兔
|
2
Velip 2019-11-19 23:22:16 +08:00
假设图片有 5 帧,逐帧获取每一张图片,一共 5 张图片
然后对每张图片根据字母位置 4 等分 对第一个字母 f,5 帧能有 5 张 f 的图片, 先根据这 5 张 f 的图片上像素点或者颜色啥的去除掉干扰线 然后识别剩下的几张字母 f 的图片,根据识别结果取出现频率最高的字母 剩下的三个字母跟上面的一样处理 抛个砖,看看楼下有没有什么更好的办法 |
4
nosilence 2019-11-19 23:33:49 +08:00
实际上变简单了,先把 gif 分解为单张图片,随便找了个网站分解出了 4 张,即 4 帧。
每个位置取 2 次有颜色的点,画新的图,干扰线基本没了,然后分割。 |
5
picone 2019-11-19 23:35:35 +08:00
差帧法轻松提取。。都不用分割了。。
|
6
dongyulin353 OP @nosilence #4 感谢楼上各位,思路大概是将 gif 的每一帧提取出来,然后分别处理
|
7
wangkai0351 2019-11-20 10:26:02 +08:00
@dongyulin353 你经过发帖讨论后得出的这个方案啊也太。。。了吧
|
8
tfdetang 2019-11-20 10:56:55 +08:00
首先 gif 肯定要把每一帧提取出来。然后用 rcnn+ctc loss 的模型来识别就好了,这种验证码应该算是 very easy 难度了吧
|
9
dongyulin353 OP @wangkai0351 #7 至少知道怎么处理了,难道等哪位大佬现场贴出代码?
|
10
photon006 2019-11-20 14:13:16 +08:00
多收集点样本,标注一下,cnn 模型撸它
|
11
Marsss 2019-11-21 10:33:45 +08:00
如果不分割,标注样本将是很痛苦的工作,当然花钱或者能在网上找到别人分享的样本除外。所以,可以尝试自己折腾一个有效的分割算法。这种程度的验证码,折腾的难度不算难,可也不是那么简单,正好拿来练手。分割之后的标注工作量,肉眼可见。分割:不分割,大约为 100:5000 这样子。而且分割之后只需要 sklearn 即可,不用搭 cnn 环境。
|
12
goodlucky 2019-12-30 16:18:13 +08:00
我还比较好奇一点是,他每帧图片缺失的字母位置不一样,识别出来每张图片的字母,如何确定那个是第一个,就是要正确排列字母的顺序,这个我没有想到如何处理的,请大佬指教
|