基于cnn的人脸检测,人脸识别系统数据

  基于cnn的人脸检测,人脸识别系统数据

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

  其中align文件夹下有人脸检测、定位、裁剪。开放对齐

  align_dataset_mtcnn.py是一个执行人脸检测然后修剪的程序。

  你可以通过打开detect_face.py文件找到这个函数。

  可以看出,det1.npy、det2.npy和det3.npy是人脸检测网络中的权重。

  安装和配置Facenet环境

  这是我的面网解压位置e :hs尹面网-mastersrc

  setpythonpath=e: hs yin face net-master src

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

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

  lfw数据放在e: hsyin facenet-master data lfw raw中,并创建一个新的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 src align align _ dataset _ mt CNN . py data/lfw/raw data/lfw/lfw _ 160-image _ size 160-margin 32 DD

  评估预训练模型的精度

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

  将模型放在指定的文件夹中:输入以下命令:python src validate _ on _ lfw . pydata lfw lfw _ 160 src models 2018 04 08-102900结果:

  与人脸形成对比

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

  可执行文件为facenet-master src compare . py;

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

  第二个呢?

  执行:

  python src compare . py src models 2018 04 08-102900数据 lfw _ lfw _ 160 aaron _ eckhart _ Aron _ eckhart meck hart

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

  第一张和第二张照片被选中。

  两张图的距离是0.5886,所以同一个人的脸之间的距离越小。可以设置一个阈值,当两个图像大于某个值时,就可以判断不是同一个人。

基于cnn的人脸检测,人脸识别系统数据