人脸识别之FaceNet

这是一篇2015年的cvpr,FaceNet: A UnifiedEmbedding for Face Recognition and Clustering,取得了当时人脸识别的state-of-the-art,论文主要提出了tripletloss这一思想。

 

如上图所示,简单的说,triplet就是一个由(Anchor ,Positive,Negative)组成的三元组。其中,Anchor(表示为Xa)为锚,表示从数据集中随机选择的一个样本,Positive(表示为Xp)表示和Anchor属于同一类别的样本,Negative(表示为Xn)表示和Anchor属于不同类别的样本。

         我们分别用下面的三个元素来表示其学习到的特征向量:

tripletloss的作用就是训练的过程中,使得Xa与Xp之间的距离尽可能小,Xa与Xn之间的距离尽可能大,为了绝对的区分开,真正做到discriminative,还要使得Xa与Xp的距离比Xa与Xn的距离小一个间隔,类似svm中的几何间隔。

 

triplet loss相应的目标函数为

 

 

 

即目标函数取0或者上面式子的最大值,当上面式子有值的时候,表示会产生损失,为0的时候表示没有产生损失。

在逆向传播的过程中,梯度按下面的公式计算:

 

具体在caffe中,triplet loss的实现,可以参考happynear在github上分享的他自己维护的caffe,里面有相应的实现。https://github.com/happynear/caffe-windows

 

另外CMU开源的openface中也用到了基于torch的tripletloss。

基于TensorFlow的facenet的实现,目前lfw识别率已经更新到了99.4%,https://github.com/davidsandberg/facenet

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值