【无标题】

Retinaface预测过程:

  • 利用主干特征提取网络MobilenetV1对图片进行初步的特征提取,其中mobilenetv1的核心思想是深度可分离提取网络。

  • 利用FPN特征金字塔,对初步特征提取的最后三层进行特征融合。

  • 为了进一步加强特征提取,Retinaface使用SSH模块加强感受野,获得三个有效特征层SSH1SSH2SSH3

  • 假设输入图像shape为640*640*3  那么SSH1的特征层shape应为80*80*64,表示将原图像划分为80*80的网格,每个网格上有两个先验框,然后Retinaface对先验框的结果进行预测,预测结果有三个,第一个是判断是否有物体,第二个是对先验框的宽高进行预测,第三个获得人脸的五个关键点。

  • 在完成调整和判断后,进行非极大抑制,其作用是筛选出一定区域内属于同一种类得分最大的框。

训练过程:

  • 对真实框的处理:计算所有真实框和所有先验框的重合程度,对这些与真实框重合程度较大的先验框进行编码操作,编码操作分为三个部分,分别是分类预测结果,框的回归预测结果和人脸关键点的回归预测结果的编码。

  • 利用处理完的真实框与对应图片的预测结果计算损失loss。

Facenet预测部分:

  • 第一步:将Retinaface提取和矫正后的人脸图像输入Facenet,facenet对输入的人脸图像,进行特征提取获得初步的特征层,对特征层进行平均池化并将其平铺,得到一个特征长条,对特征长条进行全连接,全连接的神经元个数为128,这样就得到一个长度为128的特征长条。

  • 第二步:为了方便人脸对比,facenet对得到的特征长条进行L2标准化,标准化后特征长条的模就为1了。

  • 第三步:因为仅仅采用三元组损失训练会使网络难以收敛,因此facenet使用交叉熵损失辅助三元组损失收敛。而想要利用交叉熵损失进行训练,就需要构建分类器,因此对上一步的特征长条再次进行一个全连接用于分类。

训练部分:

  • 使用的数据集是CASIA-WebFace数据集

  • facenet使用三元组损失作为损失,三元组损失的输入三个长度为128的特征长条,分别是基准图片,正样本图片和负样本的图片的特征长条。三元组损失使不同人脸的人脸特征向量欧几里得距离扩张,是同一个人的不同状态的人脸特征向量欧几里得距离减小。交叉熵损失用于人脸分类,具体作用是辅助三元组损失收敛。

你可能感兴趣的:(有趣的人脸识别,考研复试专栏,深度学习,python,人工智能)