原理简介
如下图,将点选验证码作为输入,使用yolo框架进行字符检测,并分为两类,一个是带语序的白色背景的文字,一个是图片中没有语序的文字;再将文字裁切送入一个特征提取模型,提取出图片的特征(本项目中是64维度的特征向量);再进行余弦相似度计算,匹配两种文字,输出带语序的文字检测框。
项目代码
https://aistudio.baidu.com/aistudio/projectdetail/6329495
整个训练流程和代码,以及部署demo,都在aistudio平台上开源,感兴趣的朋友可以去实践一下。
训练细节
详细的训练过程都在上面的链接中了,这里简单介绍一些细节:
YOLO目标检测
这部分比较简单,直接用框架改为自己的数据集就能训练了。
特征提取模型
特征提取模型的训练如下图,将裁切后的图片组合为3样本对,分别是anchor和positive的正样本对,anchor和negative的负样本对,训练时缩小正样本对之间的距离,扩大负样本对之间的距离。此外还在分类学习中用insightface loss来缩小类内距离,扩大类间距离,这里每一个汉字就是一个分类。
识别效果
在14张测试图片上实测识别准确率为100%
项目部署
部署采用的是onnx,在链接项目的最后一部分有代码和介绍,欢迎交流