论文阅读之FaceNet: A Unified Embedding for Face Recognition and Clustering
名称:FaceNet: A Unified Embedding for Face Recognition and Clustering
时间:2015.04.13
来源:CVPR 2015
来自谷歌的一篇文章,这篇文章主要讲述的是一个利用深度学习来进行人脸识别的方法,目前在LFW上面取得了最好的成绩,识别率为99.63%。传统的基于CNN的人脸识别方法为:利用CNN的Siamese网络来提取人脸特征,然后利用SVM等方法进行分类。而本篇文章提出了一个方法叫做FaceNet,它直接学习图像到欧式空间上点的映射,其中两张图像对应的特征的欧式空间的距离用来直接判断两张图片的相似度。这篇文章的最大创新点是提出了不同的损失函数,直接优化特征本身,用特征空间上点的距离来判断两张图片是否是同一类。
上图是文章中所采用的网络结构,其中可以看出,其中,前面部分跟CNN是相同的,只是后面接一个特征归一化(使其特征的||f(x)||2=1,这样子,所有图像的特征都会被映射到一个超球面上),接着再去优化这些特征,而文章这里提出了一个新的损失函数(优化函数),而这也是文章最大的特点所在。
什么是Triplet Loss呢,顾名思义也就是有三张图片输入的Loss(之前的都是Double Loss或者是 Single Loss),本文直接学习特征间的可分性:相同身份之间的特征距离要尽可能的小,而不同身份之间的特征距离要尽可能的大。
对于Triple loss如下图所示
意思就是通过学习,使得类间距离要大于类内的距离,Anchor为 系统选定的锚点。
优化函数为
上式表达的含义是左边类内的距离加上边际数值α要小于右边类间的距离,这个约束要在所有的Triplet图像对上都成立,那么损失函数为
在上式中,如果严格按照上式进行学习的话,它的T(穷举所有的图像3元组)是非常巨大的。
FE:在一个1000人,没人有20张图片的情况下,其所有的可能组合为T=10002020999。O(T)=NN,所以穷举是很困难的,那么我们该如何从这么多的图像中挑选呢?答案是选择最难区分的图像对。
给定一张人脸图片,我们要挑选其中的一张hard positive:即另外19张图像中,跟它最不相似的图片,同时选择一张hard negative:即在20*999张图像中跟它最为相似的图片。挑选hard positive和hard negative有两种方法,offline和online方法,具体的差别只在训练上。本文采用的是在线的方式,在min-batch中挑选所有的anchor positive图像对,同时依然选择最为困难的anchor negative图像对。
那么我们的问题就转为为了如何悬着最为困难的负样本,在实际训练中容易导致很快的陷入局部最优。为了避免这个问题,在选择negative的时候,使其满足式3,把这个约束称为半约束:
论文阅读之FaceNet: A Unified Embedding for Face Recognition and Clustering的更多相关文章
- [论文阅读笔记] Structural Deep Network Embedding
[论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...
- [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion
[论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...
- [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering
[论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...
- 论文阅读:CNN-RNN: A Unified Framework for Multi-label Image Classification
CNN-RNN: A Unified Framework for Multi-label Image Classification Updated on 2018-08-07 22:30:41 Pap ...
- 【CV论文阅读】YOLO:Unified, Real-Time Object Detection
YOLO的一大特点就是快,在处理上可以达到完全的实时.原因在于它整个检测方法非常的简洁,使用回归的方法,直接在原图上进行目标检测与定位. 多任务检测: 网络把目标检测与定位统一到一个深度网络中,而且可 ...
- 【CV论文阅读】Two stream convolutional Networks for action recognition in Vedios
论文的三个贡献 (1)提出了two-stream结构的CNN,由空间和时间两个维度的网络组成. (2)使用多帧的密集光流场作为训练输入,可以提取动作的信息. (3)利用了多任务训练的方法把两个数据集联 ...
- 论文阅读 | Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition
源地址 arXiv:1712.07465: Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition ...
- [论文阅读]VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION(VGGNet)
VGGNet由牛津大学的视觉几何组(Visual Geometry Group)提出,是ILSVRC-2014中定位任务第一名和分类任务第二名.本文的主要贡献点就是使用小的卷积核(3x3)来增加网络的 ...
- [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati
[论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...
随机推荐
- 深入Resource实现多语言支持的应用详解
首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx. Resource1.resx里面如下: Main函数如下:static void Main(){ ...
- 004-行为型-05-职责链模式(Chain of Responsibility)
一.概述 为请求创建一个接收此次请求对象的链 该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式. 在这种模式中,通常每个接收者都 ...
- linux中导入sql文件
在linux中导入sql文件的方法分享(使用命令行转移mysql数据库) 因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述. 上传sql ...
- linux记录-docker配置mysql
docker部署mysql 1.拉取镜像 docker pull mysql 2.docker rm containerID 删除镜像iD 3.创建镜像 docker run --name=m ...
- 在excel图表上添加数据标签
在excel图表上添加数据标签 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://zhidao.baidu.com/question/47838665 方法与步骤 在E ...
- Cheng MeiChun团队的技术支持
本网页为Cheng MeiChun团队的技术支持网址,如果在我们开发的游戏中遇到任何问题,欢迎联系我们! QQ:1505478990 邮箱:1505478990@qq.com
- spring AOP的基本概念
AOP的概念和使用原因 现实中有一些内容并不是面向对象(OOP)可以解决的,比如数据库事务,它对于企业级的Java EE应用而言是十分重要的,又如在电商网站购物需要经过交易系统.财务系统,对于交易系统 ...
- 容器版jenkins安装并且实现使用宿主机docker命令,采用的是docker outside deocker,带jdk、添加maven、git
docker版jekins使用宿主机docker命令 docker版jekins安装,实现CI/CD,也就是实现在容器里面使用宿主机docker命令,这样方式为:docker outside deoc ...
- 推荐Pi(π)币,相当于比特币手机挖矿版
我为什么推荐这个? 说实话,之所以发出来还是因为如果用我的邀请码注册,双方的挖矿速度都会增加些,我的邀请码:leneing,有问题可以咨询我. Pi币简介 1.在这里强烈推荐Pi币,相当于比特币手机挖 ...
- MFC无法使用CDialogEx类
在stdafx.h中添加以下代码: #include <afxcontrolbars.h>