HelloWor1d

  • 0

    获得赞
  • 0

    发布的文章
  • 0

    答辩的项目

FlyAI手指指纹识别开源竞赛答辩

Batch大小为1,循环次数为1次,通过在线上环境完成训练,模型最优精度评分为100.00。

最后更新 2021/01/21 16:57 阅读 322

手指指纹识别开源竞赛

最后更新 2021/01/21 16:57

阅读 322

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。

本文为作者在FlyAI平台发布的原创内容,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://flyai.com/n/157620
立即参加 手指指纹识别开源竞赛
代码展示

PyTorch ResNet

选择查看文件
$vue{codeKeys}
  • $vue{ix}
$vue{typeSign ? "" : "15天内累计签到7天以上即可下载代码哦~"}
已签到
签到
©以上内容仅用于在FlyAI平台交流学习,禁止转载、商用;违者将依法追究法律责任。
讨论
500字
表情
每日优质讨论奖励 20FAI
发送
每日优质讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除
感谢您的关注
该篇内容公开后我们将会给你推送公开通知
好的
发布成功!
您的公开申请已发送至后台审核,
通过后将公开展示本详情页!
知道了
向贡献者赞赏
¥23.06
微信支付
支付宝

请先绑定您的微信账号 点击立即绑定

立即支付
温馨提示:
支付成功后不支持申请退款,请理性消费;
支付成功将自动解锁当前页面代码内容,付款前请确认账号信息。
微信扫码支付
请前往Web网页进行支付

敬请谅解,如有疑问请联系FlyAI客服

知道了
举报
请选择举报理由
确定
提示
确定要删除?
取消删除

今日签到成功

获得 $vue{sianData.sign_fai} FAI的GPU算力积分

知道了