zoukankan      html  css  js  c++  java
  • facenet 人脸识别(一)

    前言

    已完成TensorFlow Object Detection API环境搭建,具体搭建过程请参照:

    安装运行谷歌开源的TensorFlow Object Detection API视频物体识别系统

    Ubuntu系统安装配置tensorflow开发环境

     

    下载Facenet源码工程

    1. 源码下载地址:https://github.com/davidsandberg/facenet.git

    2. 将下载的源码解压,如图所示:

     

    安装和配置Facenet环境

    1. 在自己电脑对应的Anaconda3Libsite-packages目录下,新建facenet文件夹,本人的目录如下:

    2. 然后,将facenet-mastersrc目录下的全部文件复制到上面新建的facenet文件夹内;

    facenet-mastersrc目录下的全部文件信息如下:

    复制到facenet目录内,如下:

    3. 最后,在Anaconda Prompt内输入import facenet,不会报错即可,如下:

    下载LFW数据集


    1. LFW数据集是由美国马萨诸塞大学阿姆斯特分校计算机视觉实验室整理的人脸检测数据集,是评估人脸识别算法效果的公开测试数据集,全称为带标签的自然人脸数据库(Labeled Faces in the Wild);

    2. LFW数据库内每张图片命名方式为“lfw/name/name_xxxx.jpg”,这里“xxxx”是前面补零的四位图片编号。例如,前美国总统乔治•W•布什的第10张图片为“lfw/George_W_Bush/George_W_Bush_0010.jpg”。

    3. LFW数据库 总共有 13233 张 JPEG 格式图片,属于 5749 个不同人。每张图片尺寸都是 250x250;

    4. 数据库下载地址:http://vis-www.cs.umass.edu/lfw/lfw.tgz

    5. 下载完成后,把数据集解压到facenet-masterdata下面,如下:

     

    对LFW数据集进行预处理


    1. 在data目录新建一个空文件夹,命名为“lfw_160”;

    原图像大小为250*250,如下图:

    2. 我们需要将待检测所使用的数据集校准为和预训练模型所使用的数据集大小一致(160*160),转换后的数据集存储在lfw_160文件夹内;

    3.切换目录至facenet-master下

    4.图片预处理——运行人脸对齐程序(srcalignalign_dataset_mtcnn.py)

    命令校准

    python srcalignalign_dataset_mtcnn.py --help

     

    缺少align模块,进行安装

    pip install align -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

    再次运行

    python srcalignalign_dataset_mtcnn.py --help

    需配置环境变量

    再输入

    python srcalignalign_dataset_mtcnn.py --help

     执行转换

    python srcalignalign_dataset_mtcnn.py data/lfw data/lfw_160 --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25

    下载训练好的网络模型


    1. facenet提供了两个预训练模型,分别是基于CASIA-WebFace和MS-Celeb-1M人脸库训练的,如下:


    2. 本人使用的是基于数据集CASIA-WebFace采用Inception ResNet v1神经网络结构训练好的模型。模型存储在Google网盘,需要翻墙。推荐大家用Lantern;

    3. 把下载的文件解压到srcmodels目录下面,如下所示:

    4. 程序也下载了,测试数据集LFW也有了,模型也有了,接下来就是评估模型的准确率;

     

    评估预训练模型的准确率


    1. 在cmd命令行或者Anaconda Propmt下定位到facenet文件夹下;

    cd D:eclipse-workspacefacenet-master

    2. 输入以下命令:

    python srcvalidate_on_lfw.py D:eclipse-workspacefacenet-masterdatalfw_160 D:eclipse-workspacefacenet-mastermodels20180408-102900

    预测中,结果如图:

    人脸对比

    1. Facenet可以直接对比2个人脸经过它的网络映射之后的欧式距离;

    运行程序为facenet-mastersrccompare.py;

    2.在dataimages目录下有两张图片进行测试;

    python srccompare.py D:eclipse-workspacefacenet-mastermodels20180408-102900 D:eclipse-workspacefacenet-masterdataimagesAnthony_Hopkins_0001.jpg D:eclipse-workspacefacenet-masterdataimagesAnthony_Hopkins_0002.jpg

  • 相关阅读:
    MongoDB+Lucence.net
    hubble+sqlserver
    C# 设计模式 1 接口模式 1.1 适配器模式 IT
    SQLServer2005 中 XML类型方法中 XQuery中变量的参数化匆忙整理 IT
    DoNET 类库设计准则01 名称规则 IT
    GMRES在matlab中的描述
    矩阵良态与病态
    调试vc++的一点感悟
    基于GramSchmidt正交法的广义极小残量法(GMRES)
    VC6 vs2003 vs2005 使用技巧(转)
  • 原文地址:https://www.cnblogs.com/gmhappy/p/9472388.html
Copyright © 2011-2022 走看看