首页 > 编程知识 正文

mtcnn人脸识别,人脸识别用了多少特征数据

时间:2023-05-03 19:59:24 阅读:154736 作者:4007

首先下载facenet网络facenet github,然后打开src文件。 重要的文件基本上都在这里

其中,align文件夹下有面部检测、定位和裁剪。 打开对齐

其中的align_dataset_mtcnn.py是执行面部检测、然后修剪的程序。

您可以通过打开detect_face.py文件来找到此函数。

可知det1.npy、det2.npy、det3.npy是面部检测网络中的权重。

安装和配置Facenet环境

这是我的facenet解压缩位置e :hs yinface net-mastersrc

setpythonpath=e :hs yinface net-mastersrc

接下来可以运行面部检测程序。 我使用的数据集是LFW lfw数据集

因为程序中的神经网络使用的是谷歌的“inception resnet v1”网络模型,所以这是输入该模型时的160*160的图像,而下载的LFW数据集为250*250像素

将lfw数据放置在e :hs yinface net-masterdatalfwraw中,同时创建新的lfw_160文件夹

一个问题是tensorflow版本的问题

max_axis=TF.reduce_max(target,axis,keepdims=True )这是facenet上的代码。

但是我版本的代码

max_axis=TF.Reduce_max(target,axis,keep_dims=True ) )如果更正以上内容,则不会报告错误

打开cmd,将位置切换到E:hsyinfacenet-master目录,然后输入命令。

python srcalignalign _ dataset _ mt CNN.py data/lfw/raw data/lfw/lfw _ 160-- image _ size 160-- margin 32 DD

评价预训练模型的精度

然后去官网下载训练过的模型:

将模型放置在指定文件夹中:输入以下命令: python srcvalidate _ on _ lfw.py datalfwlfw _ 160 srcmodels 2018 04 08-102900结果:

与人脸的对比

1.Facenet可以直接比较人脸通过其网络映射后的欧式距离

可执行文件为facenet-mastersrccompare.py;

选择的是两个不同的人的脸,第一张如下。

第二张呢

执行:

python srccompare.py srcmodels2018 04 08-102900 datalfw _ lfw _ 160aaron _ eckhart _ Aron _ eckhart meck hart

结果如上。 这两张的距离是1.4144。 接下来,我们测试了两张人脸:

选择了第一张和第二张

这两张图的距离是0.5886,所以同一个人的脸的距离越小。 可以设定阈值,当两张图像大于一定值时判断他们不是同一个人

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。