1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 人脸识别之人脸检测算法

人脸识别之人脸检测算法

时间:2019-04-06 23:18:19

相关推荐

人脸识别之人脸检测算法

人脸识别的一般步骤:人脸检测->人脸对齐->人脸特征提取->(计算人脸的差值)三元组损失/中心损失->差值小于某一阈值则为同一个人,差值大于某一阈值则不是同一人。

本文将对每一个步骤的技术现状,进行分析,并尝试实现其中最优的几种技术。

一、现有算法

1.非监督学习算法

2.监督学习算法

从以上描述可以看出

1) 传统人脸检测方法能在CPU上也能达到很高的速度,其中libfasedetection,速度达到367/1533FPS

且在100的误检率基础上,召回率高到0.8236

2) 深度学习算法虽然FasterRCNN的精度很高,但是速度却非常满,只有GPU 3FPS,只能用在竞赛环境。

SFD的精度高达0.9438,而且在GPU上的速度能达36FPS,速度也能满足要求。

还有fastMTCN/ICC-CNN/MTCNN性能都不错,都可以进行尝试。

二、本文尝试的算法

1.MTCNN

1.1 MTCNN的网络结构

MTCNN 由三个神经网络组成,分别是P-Net,R-Net,O-Net。在使用这些网络之前,首先要先将原始图片缩放到不同尺度,形成一个“图像金字塔”,然后在分别通过P-Net,R-Net,O-Net。如下图所示:

1.2MTCNN的损失函数

针对人脸判定部分使用交叉熵损失,针对框回归和关键点判定使用L2损失

人脸判定部分:

人脸框:

人脸关键点:

总损失函数:这三部分损失各自乘以自身的权重再加起来,就形成最后的总损失。

在训练P-Net和R-Net时,更关心框位置的准确性,而较少关注关键点判定的损失,因此关键点判定损失的权重很小。对于O-Net,关键点判定损失的权重较大。

1.3 使用MTCNN进行人脸检测

(1) 数据集:

使用LFW 人脸数据库,在 LFW 数据库中人脸的光照条件 、姿态多种多样,有的人脸还存在部分遮挡的情况,因此识别难度较大 。现在 , LFW 数据库性能测评已经成为人脸识别算法性能的一个重要指标 。

1) 下载数据集:在网站 http ://vis-www.cs.umass.edu/lfw/lfw. tgz 下载 LFW 数据库,该数据是完全开源的。

2) 解压数据集:

cd ~/datasetsmkdir -p lfw/rawtar xvf ~/Downloads/lfw.tgz -C ./lfw/raw --strip-components=1

3) 查看数据集:每个文件夹代表一个人名

(2)在LFW 数据库上的人脸检测和对齐

1) 下开源代码:git clone/davidsandberg/facenet.git

2) 进行人脸检测和对齐:

python src/align/align_dataset_mtcnn.py \~/datasets/lfw/raw \~/datasets/lfw/lfw_mtcnnpy_160 \--image_size 160 --margin 32 \--random_order

该命令会创建一个../lfw/lfw_mtcnnpy_160的文件夹,并将所高对齐好的人脸图像存放到这个文件夹中,数据的结构和原先../lfw/raw 中相同 。 参数 --image_size 160 --margin 32 的含义是在MTCNN 检测得到的人脸框的基础上缩小32像素(训练时使用的数据偏大),并缩放到 160× 160 大小 。 因此最后得到的对齐后的图像都是 160 x l60 像素的 。这样的话,就成功地从原始图像中检测并对齐了人脸 。

(3)源码介绍

MTCNN 的实现主要在文件夹facenet/src/align 中。其中, detect_ face.py中定义了 MTCNN 的模型结构,由 P-Net 、R-Net 、O_Net 三部分组成 。这三部分网络已经提供好了预训练的模型,模型数据分别对应文件 detl.npy 、det2.npy 、 det3.npy 。 align_ dataset_mtcnn.py 是使用 MTCNN 的模型进行人脸的检测和对齐的入口代码 该文件夹中还有两个文件 align_dataset. py 和align_ dlib.py ,官们都是使用 dlib 中的传统方法对人脸进行检测,性能比MTCNN 稍差。

2. SFD

3. fastMTCNN

4. FasterRCNN

5.非深度学习的libfasedetection.

【参考论文】

1.人脸检测(十九)--人脸检测综述(.2): /App_1206/article/details/80537518

2.OpenCV学习笔记(11):libfacedetection人脸检测的配置与使用:/cv_jason/article/details/78819088

3.人脸检测:MTCNN/tinyzhao/article/details/53236191

4.《21个项目玩转深度学习:基于TensorFlow的实践详解》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。