精华内容
参与话题
问答
  • facenet人脸识别

    2018-09-21 09:40:37
    基于tesorfow, facenet, 这是完整项目,运行mytest1.py,可实现人脸识别
  • facenet 人脸识别

    2020-03-25 14:54:17
    转载 : MTCNN+facenet实现实时人脸识别 1 构造人脸数据库 每个人有10张人脸,通过facenet事先将每张人脸的特征提取出来存储在一个词典中 2 将视频中提取的帧利用MTCNN提取人脸框,将人脸框输入到facenet中进行特征...

    转载 : MTCNN+facenet实现实时人脸识别

    1 构造人脸数据库
    每个人有10张人脸,通过facenet事先将每张人脸的特征提取出来存储在一个词典中
    2 将视频中提取的帧利用MTCNN提取人脸框,将人脸框输入到facenet中进行特征提取
    3 将提取的结果与数据库中的所有人脸特征进行比较,找到小于一定阈值的所有人脸特征,
    在这个阈值内找到最小的距离所对应的标签,给图片;如果所有结果都大于一定的阈值,则判定为非数据库内的人。

    展开全文
  • 参考以下链接 博客地址:https://blog.csdn.net/guyuealian/article/details/84896733 GitHub地址:https://github.com/PanJinquan/Face_Detection_Recognition
    展开全文
  • facenet 人脸识别(一)

    千次阅读 2018-07-20 13:32:02
    安装运行谷歌开源的TensorFlow Object Detection API视频物体识别系统 或 Ubuntu系统安装配置tensorflow开发环境 下载Facenet源码工程 1. 源码下载地址:https://github.com/davidsandberg/fac...

    前言

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

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

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

     

    下载Facenet源码工程

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

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

     

    安装和配置Facenet环境

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

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

    facenet-master\src目录下的全部文件信息如下:

    复制到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/#download http://vis-www.cs.umass.edu/lfw/lfw.tgz

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

     

     

    对LFW数据集进行预处理


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

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

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

    3.切换目录至facenet-master下

    4.图片预处理——运行人脸对齐程序(src\align\align_dataset_mtcnn.py)

    命令校准

    python src\align\align_dataset_mtcnn.py --help

     

    缺少align模块,进行安装

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

    再次运行

    python src\align\align_dataset_mtcnn.py --help

    需配置环境变量

    再输入

    python src\align\align_dataset_mtcnn.py --help

     执行转换

    python src\align\align_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. 把下载的文件解压到src\models\目录下面,如下所示:

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

     

    评估预训练模型的准确率


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

    cd D:\eclipse-workspace\facenet-master

    2. 输入以下命令:

    python src\validate_on_lfw.py D:\eclipse-workspace\facenet-master\data\lfw_160 D:\eclipse-workspace\facenet-master\models\20180408-102900

    预测中,结果如图:

    人脸对比

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

    运行程序为facenet-master\src\compare.py;

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

    python src\compare.py D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\data\images\Anthony_Hopkins_0001.jpg D:\eclipse-workspace\facenet-master\data\images\Anthony_Hopkins_0002.jpg

    展开全文
  • 搭建人脸库 选择的方式是从百度下载明星照片 照片下载,downloadImageByBaidu.py # coding=utf-8 """ 爬取百度图片的高清原图 """ import re import sys import urllib import os...

    搭建人脸库

    选择的方式是从百度下载明星照片

    照片下载,downloadImageByBaidu.py

    # coding=utf-8
    """
    爬取百度图片的高清原图
    """
    import re
    import sys
    import urllib
    import os
     
    import requests
     
     
    def get_onepage_urls(onepageurl):
        if not onepageurl:
            print('执行结束')
            return [], ''
        try:
            html = requests.get(onepageurl).text
        except Exception as e:
            print(e)
            pic_urls = []
            fanye_url = ''
            return pic_urls, fanye_url
        pic_urls = re.findall('"objURL":"(.*?)",', html, re.S)
        fanye_urls = re.findall(re.compile(r'<a href="(.*)" class="n">下一页</a>'), html, flags=0)
        fanye_url = 'http://image.baidu.com' + fanye_urls[0] if fanye_urls else ''
        return pic_urls, fanye_url
     
     
    def down_pic(pic_urls,pic_name,localPath):
        if not os.path.exists(localPath):  # 新建文件夹
            os.mkdir(localPath)
        """给出图片链接列表, 下载图片"""
        for i, pic_url in enumerate(pic_urls):
            try:
                pic = requests.get(pic_url, timeout=15)
                string = pic_name + "_" + str(i + 1) + '.jpg'
                with open(localPath + '%s' % string, 'wb')as f:
                    f.write(pic.content)
                    print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))
            except Exception as e:
                print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))
                print(e)
                continue
     
     
    if __name__ == '__main__':
        keyword = '范冰冰1920*1080'  # 关键词, 改为你想输入的词即可
        url_init_first = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1497491098685%5E00_1519X735&word='
        url_init = url_init_first + urllib.parse.quote(keyword, safe='/')
        all_pic_urls = []
        onepage_urls, fanye_url = get_onepage_urls(url_init)
        all_pic_urls.extend(onepage_urls)
     
        fanye_count = 1  # 图片所在页数,下载完后调整这里就行
        while 1:
            onepage_urls, fanye_url = get_onepage_urls(fanye_url)
            fanye_count += 1
            print('第%s页' % fanye_count)
            if fanye_url == '' and onepage_urls == []:
                break
            all_pic_urls.extend(onepage_urls)
     
        down_pic(list(set(all_pic_urls)),'fbb','D:/eclipse-workspace/facenet-master/data/face_store/fbb/')#保存位置也可以修改

     

    因为是从网上下载的照片有些是不符的,需要手动删除部分

    检测对齐人脸

    python src\align\align_dataset_mtcnn.py data/face_store/old data/face_store/new --image_size 160 --margin 32 --random_order --gpu_memory_fraction 0.25

    用自己的人脸库结合SVM训练一个人脸识别系统

    用到的代码:calssifier.py,这个程序的基本原理是:通过用图像算出来的向量数据来训练一个SVM分类器,从而对人的身份进行一个判断,同时在.pkl格式的文件中存储每一个分类。这也是作者对于FaceNet程序应用的一个探索。 
    这个函数有两个模式,一个模式用来训练,另一个模式用来测试。具体功能如下:

    模式= TRAIN:

    使用来自数据集的计算出来的向量来训练分类器 
    将训练好的分类模型保存为python pickle文件

    模式= CLASSIFY:

    加载分类模型
    使用来自数据集测试部分的嵌入来测试分类器

    执行本代码需要添加的参数以及各参数的含义:

    mode: 设定“TRAIN”和“CLASSIFY”两种模式。
    data_dir: 图片数据所在文件夹
    model: 训练好的模型
    classifier_filename:类似于标签,如果mode参数是TRAIN,那么需要指定一个输出的文件位置(以.pkl结尾,例如/.pkl),如果mode参数是CLASSIFY,那么就需要指定参数的路径(.pkl文件)。

    python src\classifier.py TRAIN D:\eclipse-workspace\facenet-master\data\face_store\new D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\models\classifier.pkl
    

    python src\classifier.py CLASSIFY D:\eclipse-workspace\facenet-master\data\face_store\new D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\models\classifier.pkl
    

    验证

    调用facenet-master\contributed\predict.py

    网上找张女神的图片

     

    python contributed\predict.py D:\eclipse-workspace\facenet-master\data\test\test1.jpg D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\models\classifier.pkl
    

    再找一张不在人脸库的照片

     

    python contributed\predict.py D:\eclipse-workspace\facenet-master\data\test\test2.png D:\eclipse-workspace\facenet-master\models\20180408-102900 D:\eclipse-workspace\facenet-master\models\classifier.pkl
    

    后续打算基于摄像头进行人脸检测识别


    摄像头识别人脸效果

    修改contributed目录下的face.py

    执行

    python contributed\real_time_face_recognition.py

    最后,附上原来的文件中各py文件的作用(持续更新):

    一、主要函数

    facenet/src/align/ :用于人脸检测与人脸对齐的神经网络

    facenet/src/facenet.py :用于人脸映射的神经网络

    facenet/util/plot_learning_curves.m :这是用来在训练softmax模型的时候用matlab显示训练过程的程序

    二、facenet/contributed/相关函数:

    1、基于mtcnn与facenet的人脸聚类

    代码:facenet/contributed/cluster.py(facenet/contributed/clustering.py实现了相似的功能,只是没有mtcnn进行检测这一步)

    主要功能:

    ① 使用mtcnn进行人脸检测并对齐与裁剪

    ② 对裁剪的人脸使用facenet进行embedding

    ③ 对embedding的特征向量使用欧式距离进行聚类

     

    2、基于mtcnn与facenet的人脸识别(输入单张图片判断这人是谁)

    代码:facenet/contributed/predict.py

    主要功能:

    ① 使用mtcnn进行人脸检测并对齐与裁剪

    ② 对裁剪的人脸使用facenet进行embedding

    ③ 执行predict.py进行人脸识别(需要训练好的svm模型)

     

    3、以numpy数组的形式输出人脸聚类和图像标签

    代码:facenet/contributed/export_embeddings.py

    主要功能:

    ① 需要对数据进行对齐与裁剪做为输入数据

    ② 输出embeddings.npy;labels.npy;label_strings.npy

    展开全文
  • 人脸识别算法实验:facenet人脸识别率测试

    千次阅读 热门讨论 2020-04-07 20:32:02
    本文记录对人脸识别算法facenet在亚洲人脸数据集上准确率的详细测试结果。 2020-4-7 日更新每个人三张底片 2020-4-2 日更新每个人一张图片作为数据和两张图片作为数据。 数据集 CASIA Face Image Database Version ...
  • Google提出的开源人脸识别算法FaceNet的预训练模型,FaceNet的官方的预训练模型,20180408-102900 NOTE: If you use any of the models, please do not forget to give proper credit to those providing the ...
  • Google提出的开源人脸识别算法FaceNet的预训练模型,FaceNet的官方的预训练模型,20180402-114759 NOTE: If you use any of the models, please do not forget to give proper credit to those providing the ...
  • Google提出的开源人脸识别算法FaceNet的预训练模型,FaceNet的官方的预训练模型,20170512-110547 NOTE: If you use any of the models, please do not forget to give proper credit to those providing the ...
  • Google提出的开源人脸识别算法FaceNet的预训练模型,FaceNet的官方的预训练模型,20170511-185253 NOTE: If you use any of the models, please do not forget to give proper credit to those providing the ...
  • 分为人脸检测,人脸矫正,特征提取,特征比对得出阈值!...这样有利于特征提取,在一定程度上可以提高识别率,本文通过mtcnn定位人脸并回归得到人脸五个点的坐标,两个眼睛坐标,鼻子坐标喝嘴巴两角坐标,
  • 基于facenet人脸识别设计文档 一、概述 在Ubuntu系统上,创建人脸库搭建基于facenet的人脸识别库,本文采用Python从百度下载明星照片,通过facenet的检测对齐人脸函数制作人脸库,并使用facenet做人脸识别。 二、...
  • facenet 人脸识别原理理解(三)

    千次阅读 2019-03-11 17:43:19
    在前两篇文章已经介绍了facenet人脸识别代码的使用和具体操作,但相关的原理还是没有说,这篇文章进行简单的讲解一下。 1. 原理 在人脸识别中,当我们需要加在图片数据库入新的一张人脸图片时,是怎么做到识别的呢...
  • 基于Tensorflow的Facenet 人脸识别实现

    千次阅读 2018-03-24 21:52:30
    参考GitHub地址,相关FaceNet paper ,此paper是Google的facenet原理介绍,本人现在也在进行人脸识别Facenet相关学习,随后会将相关论文解析笔记整理供大家参考。关于FaceNet相关的Tensorflow基本配置请参考我的...
  • facenet人脸识别从理解到手把手训练

    千次阅读 2018-12-04 22:43:14
    人脸识别算法,结合facenet网络结构和center loss作为损失,基于tensorflow框架,含训练和测试代码,支持从头训练和摄像头测试 具体代码实现即讲解请参考我的github,...
  • 1. 开发环境 OS:ubuntu16.04 tensorflow版本:1.12.0 ...facenet官方github:https://github.com/davidsandberg/facenet.git git clone https://github.com/davidsandberg/facenet.git 在requ...
  • 1.原理与训练 目前只初步完成算法在VGG_face2数据集上的训练,训练误差在30个epoch之内可以降到0.005以下。 算法基于triple loss, 训练的目的是使组内的距离尽可能的小,组间的距离尽可能的大。...
  • 1.前言 2.整体流程 上图就是facenet网络进行人脸识别的整体流程,所以
  • FaceNet 模型特点 该模型的主要特点在损失函数,使得所有同类人脸特征向量的欧式距离要小于非同一人脸间的欧式距离。表达式如下: 损失函数如下,最小化L: 如上图所示,我们能看出同一人脸的距离要远小于...
  • 在说到人脸检测我们首先会想到利用Harr特征和Adaboost分类器进行人脸检测,其检测效果也是不错的,但是目前人脸检测的应用场景逐渐从室内演变到室外,从单一限定场景发展到广场、车站、地铁口等场景,人脸检测面临的...
  • facenet人脸识别】利用LFW数据集进行人脸比对测试

    千次阅读 热门讨论 2019-04-01 12:00:37
    近期,做人脸识别项目,用到了facenet这个开源框架,并使用LFW人脸数据集进行了测试。现将该过程总结如下: 1 facenet简介 GitHub地址:https://github.com/davidsandberg/facenet.git facenet的原理就是基于同一...
  • 1. 开发环境 OS: ubuntu16.04 tensorflow版本:1.12.0 python版本: 3.6.7 ...facenet官方github:https://github.com/davidsandberg/facenet.git git clone https://github.com/davidsandberg/fac...
  • 上一篇文章介绍了facenet人脸识别的源码使用,这篇文章就来搭建自己的人脸识别库。 1. 制作自己的人脸识别库 1.1 准备数据集 通过百度图片爬取一些明星图片为例,这里准备了一个DownloadImageByBaidu.py文件用来...
  • 利用MTCNN和facenet实现人脸检测和人脸识别

    万次阅读 多人点赞 2018-12-09 14:29:07
    利用MTCNN和facenet实现人脸检测和人脸识别 人脸检测和人脸识别技术算是目前人工智能方面应用最成熟的技术了。本博客将利用mtcnn和faceNet搭建一个实现人脸检测和人脸识别的系统。基本思路也很简单,先利用mtcnn的...
  • mtcnn实现人脸检测,使用的haar人脸特征分类器,FaceNet实现人脸识别; 使用PyCharm可直接打开,开箱即用 使用了FaceNet的预训练模型,因为模型资源过大,我分开上传了,可在我的个人主页找到对应预训练模型下载,...
  • 基于mtcnn和facenet人脸识别,已经试验过了,可以直接运行
  • Matlab实现人脸识别

    万次阅读 多人点赞 2018-06-13 21:35:23
    最近在学习matlab图像处理部分,发现人脸识别这一块非常好玩,在这里做个总结。人脸识别之一:查找图片中的人脸并用方框圈出 这种类似于智能手机拍照时,屏幕里那个框任务头部的红框。大致步骤为:获取RGB图片---&...
  • 主要介绍了Python facenet进行人脸识别测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

空空如也

1 2 3 4 5 ... 20
收藏数 34,454
精华内容 13,781
关键字:

facenet