验证码识别请教

2019-11-19 22:46:10 +08:00
 dongyulin353

最近学习验证码识别,规则是 4 位的字母和数字组合,图片是 gif 的,有一定的干扰,gif 图片有几帧,目前能二值化识别其中 3 个,gif 不知道怎么处理好,用的语言是 python,大家有什么好的思路吗,有开源的识别项目推荐吗 验证码如图

3530 次点击
所在节点    Python
12 条回复
hkitdog
2019-11-19 23:04:36 +08:00
用打码兔
Velip
2019-11-19 23:22:16 +08:00
假设图片有 5 帧,逐帧获取每一张图片,一共 5 张图片
然后对每张图片根据字母位置 4 等分
对第一个字母 f,5 帧能有 5 张 f 的图片,
先根据这 5 张 f 的图片上像素点或者颜色啥的去除掉干扰线
然后识别剩下的几张字母 f 的图片,根据识别结果取出现频率最高的字母
剩下的三个字母跟上面的一样处理

抛个砖,看看楼下有没有什么更好的办法
Velip
2019-11-19 23:27:32 +08:00
@Velip 先去干扰线,再分割图片
nosilence
2019-11-19 23:33:49 +08:00
实际上变简单了,先把 gif 分解为单张图片,随便找了个网站分解出了 4 张,即 4 帧。
每个位置取 2 次有颜色的点,画新的图,干扰线基本没了,然后分割。
picone
2019-11-19 23:35:35 +08:00
差帧法轻松提取。。都不用分割了。。
dongyulin353
2019-11-19 23:41:25 +08:00
@nosilence #4 感谢楼上各位,思路大概是将 gif 的每一帧提取出来,然后分别处理
wangkai0351
2019-11-20 10:26:02 +08:00
@dongyulin353 你经过发帖讨论后得出的这个方案啊也太。。。了吧
tfdetang
2019-11-20 10:56:55 +08:00
首先 gif 肯定要把每一帧提取出来。然后用 rcnn+ctc loss 的模型来识别就好了,这种验证码应该算是 very easy 难度了吧
dongyulin353
2019-11-20 11:30:46 +08:00
@wangkai0351 #7 至少知道怎么处理了,难道等哪位大佬现场贴出代码?
photon006
2019-11-20 14:13:16 +08:00
多收集点样本,标注一下,cnn 模型撸它
Marsss
2019-11-21 10:33:45 +08:00
如果不分割,标注样本将是很痛苦的工作,当然花钱或者能在网上找到别人分享的样本除外。所以,可以尝试自己折腾一个有效的分割算法。这种程度的验证码,折腾的难度不算难,可也不是那么简单,正好拿来练手。分割之后的标注工作量,肉眼可见。分割:不分割,大约为 100:5000 这样子。而且分割之后只需要 sklearn 即可,不用搭 cnn 环境。
goodlucky
2019-12-30 16:18:13 +08:00
我还比较好奇一点是,他每帧图片缺失的字母位置不一样,识别出来每张图片的字母,如何确定那个是第一个,就是要正确排列字母的顺序,这个我没有想到如何处理的,请大佬指教

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621183

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX