算法面试高频知识点:人脸识别FaceNet解析

图片说明

FaceNet解决的问题

虽然传统人脸识别技术发展很快,但是人脸验证和人脸识别在自然条件下应用依然存在很多困难。论文中作者提出了一个新的人脸识别模型:FaceNet。这个模型可以直接向人脸图片映射到欧几里得空间,空间距离的长度代表了人脸图像的相似性。只要映射空间生成,以FaceNet嵌入作为特征向量,那么人脸识别,验证和聚类等任务就可以轻松完成。

FaceNet的创新点

  1. FaceNet是一个通用系统,可以用于人脸验证(是否是同一个人?),人脸识别(这个人是谁?)和聚类(寻找类似的人)。

  2. FaceNet采用的方法是通过卷积神经网络学习将图像映射到欧几里得空间,比起之前的方法更加简单,只需要对图片进行很少量的处理(只需要裁剪脸部区域,而不需要额外预处理,比如3d对齐等)。并且空间距离直接和图片相似度相关:同一个人的不同图像在空间距离很小,不同人的图像在空间中有较大的距离。

  3. 当前存在的基于深度神经网络的人脸识别模型使用了分类层(classification layer):中间层为人脸图像的向量映射,然后以分类层作为输出层。这类方法的弊端是不直接和效率低。为此论文中提出了==三元组损失==用于对FaceNet区分正负类。

  4. 更好的表现效率:论文实现了当时最先进的人脸识别性能,每个人脸仅使用128维向量。

  5. FaceNet在LFW数据集上,准确率为0.9963,在YouTube Faces DB数据集上,准确率为0.9512。

FaceNet的框架流程

在这里插入图片描述

FaceNet网络backbone

  1. Zeiler&Fergus研究中使用的神经网络。
  2. Inception网络。

模型结构的末端使用triplet loss来直接进行分类。

三元组损失(triplet loss)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其中,a为positive/negative的边界。

triplets筛选:

我们选择了大样本的mini-batch(1800样本/batch)来增加每个batch的样本数量。每个mini-batch中,我们对单个个体选择40张人脸图片作为正样本,随机筛选其它人脸图片作为负样本。负样本选择不当也可能导致训练过早进入局部最小。为了避免,我们采用如下公式来帮助筛选负样本:

在这里插入图片描述

Facenet训练

采用adagrad优化器,使用随机梯度下降法训练CNN模型。在cpu集群上训练了1000-2000小时。边界值a设定为0.2。

总共实验了两类模型,参数如表1和表2所示。

在这里插入图片描述

在这里插入图片描述

#面经##秋招##实习##面试八股文##面霸的自我修养#
全部评论
看上去好高深的样子啊
点赞 回复 分享
发布于 2022-08-27 22:29 陕西

相关推荐

牛客840099999号:没见过这样的大厂,至少头部的肯定没有
点赞 评论 收藏
分享
03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客企业服务