05-人脸识别-FaceNet的感性认识 04-人脸识别-triplets loss 的解释(转载) 04-人脸识别-triplets loss 的解释(转载)

源码链接:https://github.com/davidsandberg/facenet

论文链接:https://arxiv.org/pdf/1503.03832.pdf

B站大神视频解读论文:https://www.bilibili.com/video/av17281188

FaceNet是一个用于人脸识别的网络。关于人脸,往往分为2个任务:

1.人脸检测(在图中找到人脸,找特征,矫正)

2.人脸识别(看看这是谁)

在本系列的随笔里,人脸检测使用MTCNN,人脸识别采用FaceNet。下面就谈谈FaceNet.

FaceNet的3个任务

  • 人脸判断(是不是这个人,是?不是)
  • 人脸识别(这人是谁?)
  • 人脸聚类(和这张脸相似的脸有哪些?)

FaceNet的大致流程

(经提取的,无需矫正)待判断人脸 -> FaceNet网络 -> embedding(脸的特征向量)

--- 任务1 ---> 和已知人脸的特征向量求L2距离 -> 距离小于阈值就是同一张脸。

--- 任务2 ---> KNN最近邻分类,求是谁的脸(最近邻检索,参考其他随笔)。

--- 任务3 ---> K-means聚类,求相似的脸集合。

FaceNet的技术

上面可以看出,最核心的,应该就是FaceNet网络怎么设计了。3个任务,都是在网络输出的  有代表性的  脸特征embedding 的基础上,使用传统的一些技术实现的。

FaceNet的技术之一:

  • 三元组 triplets

    所谓的 triplets,可见我的随笔“04-人脸识别-triplets loss 的解释(转载)

http://www.cnblogs.com/alexYuin/p/8855972.html

    在使用中,一个训练数据样本由3张图组成:

(anchor-要判定的脸,positive-和anchor一类的脸,negative-和anchor不同类的脸)

    这就是一个 triplet 。

FaceNet的技术之二:

  • Triplets Loss 损失函数

    可见我的随笔“04-人脸识别-triplets loss 的解释(转载)

http://www.cnblogs.com/alexYuin/p/8855972.html

    这里,triplet 中的核心,是anchor。

    04-随笔中,L函数=0的意义,就是 anchor 到 positive 的距离+alpha <= anchor 到 negative 的距离。这就我们想要的结果。也就是优化的方向。

FaceNet的网络可以是什么样的

FaceNet的训练过程

猜你喜欢

转载自www.cnblogs.com/alexYuin/p/8858379.html