Facenet + triplet_loss / arcface / constrastive_loss


前言

Facenet是一个经典的人脸识别模型,训练采用了triplet_loss。但是使用triplet_loss有一些问题,比如模型难收敛,三元组组合爆炸等。之后ArcFace的出现,使得模型能够快速收敛,不同人的人脸能够得到较好的区分。但是,上述两种模型/方法本质上都是在做分类,而实际人脸识别/比对应该是openset的,两者之间有出入。对比学习是一种应对该问题的方式,部分出现类别限制。
因此,本篇基于bubbliiiing的facenet做了一些拓展:除了原始的triplet_loss,还加入了arcfacecontrastive_loss


一、项目

repo:https://github.com/DaiHaoguang3151/facenet_with_contrastive_learning
在这里插入图片描述

二、心得

  1. 使用arcfacecontrastive_loss训练,收敛速度远快于triplet_loss
  2. 条件允许的情况下,尽可能调大batch,模型会更快的收敛;
  3. 对比学习真的香,但是理论上训练一个好的模型也很吃数据量。

三、onnxruntime-web推理

需要将facenet作为人脸识别模型放到web段推理的朋友,可以参考web端实现基于face-api.js + facenet的人脸识别


总结

本篇对Facenet做了一些拓展和对比,供大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值