【人脸检测】MTCNN+Arcsoftmax

1.序言

该项目是由mtcnn+arcsoftmax进行人脸识别的

2 人脸侦测

2.1 总体流程

思路概述:采用 级联 思想,上一个网络的输出作为下一个网络的输入
在这里插入图片描述

2.2 网络结构

在这里插入图片描述

2.2.1 Pnet

在这里插入图片描述

作用:判断是否存在人脸,并给出人脸框和关键点,为R网络提供建议框

输入:12x12x3的图片

输出
1、人脸的概率。我采用二分类的方式做损失函数,故只输出了1x1x1 1个通道(如果采用多分类损失函数,则可输出2个通道)

输出一个通道的原因:一是损失函数采用的是二分类做损失函数,另一个就是在进行坐标反算的时候

在这里插入图片描述
在这里插入图片描述

2、人脸检测框偏移量的坐标(左上右下)。输出了1x1x4 4个通道
在这里插入图片描述
3、人脸关键点坐标。输出为1x1x10(代码中未实现)

2.2.2 Rnet

在这里插入图片描述

作用:对Pnet的输出的建议框,进一步进行判定,并进一步提高人脸的存在与否的精度

输入:24x24x3

输出:全连接
1、1==》人脸/无人脸
2、4==》建议框坐标偏移量
3、10==》关键点坐标偏移量(代码未实现)
在这里插入图片描述

3)Onet

在这里插入图片描述

作用:对Rnet的输出进一步精化,并进一步提高人脸的存在与否的精度
区别:和其他的网络相比,O网络的层数总共为6层

输入:48x48x3
输出: 全连接
1、1==》人脸/无人脸
2、4==》建议框坐标偏移量
3、10==》关键点坐标偏移量(代码未实现)

2.3 数据处理

使用数据集:CelebA
下载链接:https://pan.baidu.com/s/1_e8pSnfeMT0fCFEtvm8pSA
提取码:wpav

2.3.1 数据生成

项目文件夹构成
在这里插入图片描述
思路:
在这里插入图片描述

2.3.2 dataset

注意:我做的时候,在返回值,将图片数据、置信度、偏移量是分开返回的(置信度和偏移量可不分开返回)

在这里插入图片描述
问题:
在进行训练

2.4 网络训练

2.4.1 损失函数

2.4.2 优化器

2.4.3 侦测器

2.5 小工具

2.5.1 IOU

2.5.2 NMS非极大值抑制

3 特征提取

3.1 思路

4 特征比对

猜你喜欢

转载自blog.csdn.net/qq_43586192/article/details/113846119