手指指纹识别开源竞赛
最后更新 2021/01/21 16:57
阅读 13735
PyTorch ResNet
HelloWor1d
0
获得赞0
发布的文章0
答辩的项目Batch大小为1,循环次数为1次,通过在线上环境完成训练,模型最优精度评分为100.00。
最后更新 2021/01/21 16:57
阅读 13735
PyTorch ResNet
一、问题分析
从项目的介绍来看,可以提取以下3点信息:
(1) 本项目为图像识别类项目,不是分类项目。
(2) 训练数据集样本仅提供两两匹配的情况,而评估数据集中含有不匹配的样本数据。
(3) 该训练数据集一共包含16844张指纹图像,所有指纹图像的分辨率为1×96×103(灰×宽×高)。
因此,对应的,我们可以分析出以下信息:
(1) 指纹识别与人脸识别类似,可以通过特征比对的方式进行验证。
(2) 需要对训练集进行数据处理。
(3) 输入图像为1×96×103,需要设计合理的网络结构。
二、数据处理
将比赛提供的训练数据集中两两匹配的数据对进行类别分类,与人脸识别任务类似,最后将其转换为分类任务的训练。
三、网络设计
1.网络结构
(1) 基础网络架构选用ResNet50。
修改之处包括:输入尺寸1×96×103;去除MaxPooling层;增加一个全连接层进行特征提取;最后再使用一个全连接层进行分类。
(2) 损失函数使用ArcFace Loss(Additive Angular Margin Loss,加性角度间隔损失函数)。该损失函数来源于人脸识别任务中;作用是使得提取的指纹特征:类间远离,类内紧致,即使得提取到的特征,同一个人的尽可能相似,不同人的指纹尽可能差异明显。
2.如何验证
模型保存:网络训练完成后,去掉最后的全连接分类层,保留到最后的特征层。
验证两个指纹:分别通过模型提取特征;将两个特征向量进行余弦相似度计算;设定阈值,相似度大于阈值即可视为匹配。
3.训练细节
数据增强:20度角随机旋转,随机水平翻转,随机剪裁。
训练参数:batch_size=128;epochs=30;lr=0.001,15epoch时乘0.1;Adam优化器,weight_decay=1e-4。
ArcFace Loss参数:s=30,m=0.5。
余弦相似度阈值设置:0.75。
PyTorch ResNet
请先绑定您的微信账号 点击立即绑定
敬请谅解,如有疑问请联系FlyAI客服