请教识别这样子的验证码的思路

讨论 未结 13 62
sleepybear1113
sleepybear1113 会员 2022年7月13日 03:28 发表
<p>有如下验证码,是某个游戏的。这个验证码有点阴间,人眼辨别也不简单。于是想走识别。</p> <p>收集了大几千张,统计出来,大约有 500 个字的选项。然后上面的条纹背景的字自动生成的。</p> <p>自己主业是写 Java 后端的,然后尝试现学 Python 先用 OpenCV 搞了一下。先做轮廓检测,再二值化,抠字。发现部分能抠出来,但是部分背景和字不太能区分,或者把字当做了背景。字可以走 ocr 问题不大。</p> <p>由于自己是垃圾本科,没有研究生的机器学习、深度学习的前置知识,所以这块还得重新学。</p> <p>然后这个图是一张样图。</p> <p><img alt="验证码-dt" class="embedded_image" loading="lazy" referrerpolicy="no-referrer" rel="noreferrer" src="https://raw.githubusercontent.com/sleepybear1113/image-host/main/%E9%AA%8C%E8%AF%81%E7%A0%81dt.png"></p> <p>下面是已经有标注 ABCD 答案的样本,有大几千张,正确率在 90-95%。</p> <p>现在需要处理的思路,就是,具体需要学习哪些方面的知识,样本大致的处理方向,和识别的方式,还有样本最好的数量规模是多少。</p> <p><img alt="验证码-all" class="embedded_image" loading="lazy" referrerpolicy="no-referrer" rel="noreferrer" src="https://raw.githubusercontent.com/sleepybear1113/image-host/main/%E9%AA%8C%E8%AF%81%E7%A0%81-all.png"></p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
13个回复
  • raycool
    2022年7月13日 03:59
    直接神经网络一把梭 不过肉眼看着都费劲,标注数据能准确吗。
    0 0
  • cutepig
    2022年7月13日 03:59
    我猜这种验证码 ai 做得比人都好
    0 0
  • sleepybear1113
    2022年7月13日 03:59
    标注正确率差不多是有 90-95 ,也是花钱了的。可惜这方面没学过
    0 0
  • rming
    2022年7月13日 03:59
    对整张图片进行 ABCD 分类的话,准确率不太确定能做到多少,不过可以尝试下,先搜集所有图片子元素,然后做数据增强,好处是分类少。 或者对中间文字区域的文字分割出来,就变成了三部分 OCR ,其实也是分类,会增加一部分预处理和业务逻辑,不过应该准确率可以搞上去
    0 0
  • newaccount
    2022年7月13日 04:28
    总有一天这验证码会变成: 人一定识别不出来,你能识别出来一定不是人
    0 0
  • BeautifulSoup
    2022年7月13日 04:28
    问题和选项部分都是很规整的宋体字,直接 ocr 就行。验证码核心部分我的思路是目标检测+分类;目标检测主要是确定哪个部分是字,哪个部分是背景,以及框选出来第几行第几列的那个目标字。如果用 yolo3 这样的框架去实现,大概训练集在 500 张左右就可以做的很好了。 考虑到图中的字都是华文舒体,因此分类部分可以设计一个多层卷积+前馈网络,输入为选项的华文舒体图像(颜色及大小有待进一步考虑)以及框选出来的目标字,输出为标签( 0-不匹配; 1-匹配)这个部分优化的关键是对图中目标字如何处理,使得文字和背景能有效分离,如果得到二值化图像则最好。参考收集的数据,文字部分随机性较大,个人估计训练集规模可能得上万。 我主要做 nlp ,上面这个思路可能比较粗浅的,供大家参考。
    0 0
  • Juszoe
    2022年7月13日 07:27
    关于数据,我建议你也可以按照他的逻辑生成,看起来还是挺有规律的,背景是各种彩色条纹线性渐变,字体扭曲一下,这类规律的图像手动标费时费力。
    0 0
  • Juszoe
    2022年7月13日 07:27
    #8 输入图像预测是否匹配的设计训练难度比较大,也不方便推理,OP 已知只有 500 个字的话直接做五百类的分类就可以了
    0 0
  • sakujo
    2022年7月13日 07:27
    第一行第一个好像是起或者超
    0 0
  • BeautifulSoup
    2022年7月13日 07:59
    也有道理,上面说的思路我解决过一个只包含英语字母+数字的验证码。我又仔细看了一下图片,随机变换的形态差异比较大,匹配训练的难度确实不小。
    0 0
  • Saxton
    2022年7月13日 08:59
    这验证码,别说机器了,我一个人都识别不了
    0 0