DataCastle[验证码识别竞赛]——思路与代码

进入正题

队名:临兵斗者皆阵列前行
代码:已上传到github
MIT协议,放心使用,欢迎Star

本次放出代码,旨在抛砖引玉,期待能看到更多更好的竞赛代码分享,共同进步!
代码风格略凌乱,原谅我一生放荡不羁唯一追求只是没BUG而已:joy: 有疑问这几天在论坛或QQ群或github提出都行,会尽力解答。


思路分析

所有验证码都遵循先分割再识别的流程,分割主要方法是等距分割:type1字符位置固定,分割较简单;type2,type4由于字符数目固定,可以直接等距分割;type3,type5,type6由于字符数目并不固定,所以第一步是识别验证码所包含的字符数,然后再等距分割。汉字/字母/数字的识别模型都是卷积神经网络。

type1由于训练集无法直接使用,所以我们根据常用汉字训练了一个通用汉字/拼音识别模型,其他类型验证码均可使用训练集来训练识别模型,其中type3和type4还有可利用的语言上下文信息。

关键技术:当字符数目不确定时,先预测验证码包含的字符个数,再根据字符数进行分割,这样type5,type6的识别问题就分别和type2,type4类似了,这是一种简单通用的验证码识别方案。

算法总体思路如下图,先分割再识别。分割采用等距分割思想,识别采用CNNs模型


type1

此类验证码上方九宫格部分由于字符位置固定,可以直接定位识别。下方3个汉字和一个拼音,垂直方向位置也是固定的,只是水平方向结束的位置在变化,可以按列相加的方法确定结束的位置,然后同时从左右两端开始识别汉字并且确定和上方九宫格汉字的对应关系,找到相似度最大的三个汉字后,剩下的位置就是拼音,直接识别拼音再次到九宫格寻找对应汉字即可。共包含两种识别模型,汉字识别:挑选常用4800个汉字,拼音识别:所有408个拼音。


type2

如图1所示,此类验证码包含26个字母和10个数字,而且每张验证码均包含5个位置固定的字符,间距变化很小,所以直接等距分割(相邻字符有重叠)。利用训练集共10万个字符直接训练CNN即可,无需重新生成训练数据。


type3

此类验证码分两种情况。

1) 根据水平方向从左至右第85像素将图像分割为两部分;

2) 预测左边图像部分包含字符的个数n={4,5},是个二分类问题,这一步实验中识别率达到0.999以上;

3) 确定最左边字符的起始位置后,根据n的大小,可以在水平方向上进行等距分割;

4) 由于垂直方向字符位置有较大变化,所以去除背景像素后,计算每列像素的重心,依次可以进一步确定每个字符在垂直方向的精确位置;

5) 分割出来之后,用训练集所训练的汉字识别模型进行识别。测试时,如果所识别出的成语或诗句未在训练集出现,则在训练集中寻找最相似的代替;

2.成语。要求直接输出成语本身,这种验证码与输出首字母的验证码类似,但是只需要3) 4) 5)三步即可。


type4

识别思路与type3的第2种情况完全相同,只是数据集不同而已。


type5

统计训练集可知,每个验证码只包含4-5个字母或数字,相邻字符粘连在一起。

水平方向采用按列相加的方法可以确定起始和结束的位置,垂直方向字符都在第1至36像素间,据此可以从整幅图像中获得验证码的具体位置
预测验证码包含的字符数之后进行等距分割并识别得到最终结果


type6

识别思路完全和type5相同,只是字母数字变为了汉字。

原文链接:http://bbs.pkbigdata.com/static/413_detail.html

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
datacastle训练赛中的客户流失判断问题是根据一家虚构公司的客户数据,通过分析和建模来预测客户是否会流失。该问题的目标是通过对已有的客户数据进行挖掘和分析,找出可能导致客户流失的关键因素,并建立一个预测模型来判断新客户是否会流失。 在解决这个问题时,首先需要对数据进行清洗和预处理,包括去除空值、异常值的处理以及对数据进行标准化等操作。然后进行数据探索和特征工程,通过统计分析和可视化方法,了解客户数据的分布情况和特征之间的相关性。 接着,选择合适的建模方法来构建客户流失预测模型,常用的方法包括逻辑回归、决策树、随机森林等。可以通过交叉验证和调参等方法,选择最佳的模型和参数。在建模过程中需要注意特征选择的重要性,可以使用特征重要性排序、L1正则化等方法来选择最具有预测能力的特征。 最后,利用建立好的模型对新客户进行预测,根据模型输出的概率或者分类结果来判断客户是否会流失。可以设置适当的阈值来平衡准确率和召回率,从而得到最优的预测结果。 值得一提的是,为了提高模型的预测准确性,可以采用一些策略,如对不同类别的样本进行重采样、调整类别权重等。此外,还可以通过特征工程进一步挖掘数据的内在模式,提取更多的有价值的特征。 在整个解决问题的过程中,需要综合运用数据分析、特征工程和机器学习等技术,通过不断迭代、优化模型,来实现对客户流失的准确预测和有效防范。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值