4-文本字符交易验证码识别算法
项目
比赛项目介绍 : 使用已标记字符信息的实例字符验证码图像数据为训练样本(15000张),验证码中包含 噪声点、噪声线、重叠、形变等干扰。需基于提供的样本构建模型,对测试集中的字符验证码图像进行识别(15000张),提取有效的字符信息,使得能同时过滤多种干扰的验证码模型。最终通过计算识别精确度进行比赛排序。
主要工作:
1.采用自动生成伪数据对模型进行预训练,使得更快拟合训练数据。
2.采用图像中值滤波,对图像进行降噪操作,去除椒盐噪声。并做一定的数据增强,如Rotate、Mix-up、Crop等。
3.采用半监督学习的策略进行样本学习,利用Fixmatch对图像进行强弱增强,有效利用无标签数据。采用Swin-transformer对模型进行训练。
4.训练策略采用CosLR策略 + Focal Loss损失。
5.最终识别精度98.87%,获2022数字中国创新大赛全国第三名(奖金2万元)。
Swin-transformer:
- 分层的注意力机制:Swin Transformer 采用了分层的注意力机制,允许有效地处理大规模图像数据。这种设计使得它在处理长序列输入时,计算复杂度不会显著增加,从而避免了耗时较长的问题。
- 跨层连接:Swin Transformer 引入了 CNN 的局部感知能力,同时保留了 Transformer 的自注意力机制。这种混合模型的设计使得 Swin Transformer 在多个视觉任务上表现出色。
OCR处理本身可以理解为转换序列的问题,使用tansformer更加契合当前任务。而使用SWin机制,采用分层注意力机制,更能捕获到局部特征关系。
Focal Loss:介绍,为什么用?
目的:解决分类问题中的类别不平衡问题。
原理:通过调整交叉熵损失函数,聚焦难以分类的样本。
动态缩放因子:用于降低易区分样本的权重,增加难分样本的损失比例。
整体流程和思路?
1.拿到数据之后要对数据进行分析,包括整体数字字符的数量分布。图片的大小分布,以及统计图片的均值方差等。
2.采用简单模型训练baseline,确定一下训练策略,如损失函数的定义,怎么预处理,图像降噪等。
3.以及是否需要其他策略,如半监督学习、对比学习等等。
4.通过确定训练策略,然后尝试更换backbone模型。
5.通过参数搜索调整,选择最佳参数训练模型。
比赛收获:这种打榜算法类比赛一般需要对数据的理解,然后通过分析数据,数据预处理,选择合适的模型,以及合适的训练策略,损失函数以及识别训练的一些trick提高分数。