1.简介:facenet 是基于 TensorFlow 的人脸识别开源库,有兴趣的同学可以扒扒源代码:https://github.com/davidsandberg/facenet

2.安装和配置 facenet

我们先将 facenet 源代码下载下来:

git clone https://github.com/davidsandberg/facenet.git

在使用 facenet 前,务必安装下列这些库包:

或者直接移动到 facenet 目录下,一键安装

pip install -r requirements.txt

3.下载 LFW 数据集

LFW 是由美国马萨诸塞大学阿姆斯特分校计算机视觉实验室整理的。它包含13233张图片,共5749人,其中4096人只有一张图片,1680人的图片多余一张,每张图片尺寸是250x250 。

下载地址:http://vis-www.cs.umass.edu/lfw/   ->Menu->Download->All images as gzipped tar file

下载完成后,我们将文件解压到 facenet/data/lfw_data/lfw 目录下(没有的话自己建个目录),在 lfw_data 目录下新建一个目录 lfw_160,用来存放裁剪后图片。

4.对图像进行预处理

因为程序中神经网络使用的是谷歌的“inception resnet v1”网络模型,这个模型的输入时160*160的图像,而我们下载的LFW数据集是250*250限像素的图像,所以需要进行图片的预处理。

运行 facenet/src/align/align_dataset_mtcnn.py 来修改图片尺寸大小,加入下列参数

facenet/data/lfw_data/lfw        #输入图像文件夹

facenet/data/lfw_data/lfw_160          #输出图像文件夹--image_size 160 --margin 32 --random_order--gpu_memory_fraction 0.25     #指定裁剪后图像大小(如果不指定,默认的裁剪结果是182*182像素的)

python align_dataset_mtcnn.py facenet/data/lfw_data/lfw facenet/data/lfw_data/lfw_160 --image_size 160 --margin 32 --random_order--gpu_memory_fraction 0.25

如果用的是 pycharm,可以在 RUN -> Edit Configurations 下添加参数信息,然后运行 align_dataset_mtcnn.py 文件:

**这里自己运行的时候一直报错提示:No module named 'align'

将 align_dataset_mtcnn.py 移动至 src 文件夹下再运行就不会报错了。

校准后图像大小即变为160 x 160 。

5.评估 Google 预训练模型在数据集中的准确性

facenet提供了两个预训练模型,分别是基于CASIA-WebFace和 VGGFace2人脸库训练的。(由于存储在 Google 网盘中,需要 FQ 下载使用)

这里我采用的是 CASIA-WebFace 预训练模型,有兴趣了解的小伙伴,可以到CASIA-WebFace 官网看看:

将下载好的预训练文件解压到 facenet/src/models目录下:

添加参数

facenet/data/lfw_data/lfw_160 facenet/src/models/20180408-102900

运行 validate_on_lfw.py 文件。

这里我刚开始运行的时候报错:

发现是预训练模型版本太旧,我们在 facenet 上下载最新的CASIA-WebFace 训练库再重新运行即可。

运行结果如下:

可以看到识别精度可以达到 97.7%,其识别准确度还是非常不错的。

但是程序运行完以后虽然最终运行结果正确,但是最后却还是报了个错误:_2_input_producer: Skipping cancelled enqueue attempt with queue not closed

原因是主线程已经关闭,但是读取数据入队线程还在执行入队。

由于自己对 TensorFlow 线程还不是特别了解,暂时还没有解决这个问题。

facenet识别准确率_facenet 进行人脸识别测试相关推荐

  1. gpu训练cnn人脸识别准确率_opencv+mtcnn+facenet+python+tensorflow 实现实时人脸识别

    opencv+mtcnn+facenet+python+tensorflow 实现实时人脸识别 Abstract:本文记录了在学习深度学习过程中,使用opencv+mtcnn+facenet+pyth ...

  2. 开源真香 离线识别率高 Python 人脸识别系统

    以往的人脸识别主要是包括人脸图像采集.人脸识别预处理.身份确认.身份查找等技术和系统.现在人脸识别已经慢慢延伸到了ADAS中的驾驶员检测.行人跟踪.甚至到了动态物体的跟踪. 由此可以看出,人脸识别系统 ...

  3. android人脸识别门禁,安卓人脸识别门禁终端DM-A1

    1.产品介绍: 安卓(Android)人脸识别门禁终端DM-A1是定位为一款功能丰富,扩展性强,稳定性高,简单维护的人脸识别一体机.它集深数科技人脸比对算法及人脸识别活体检测算法,实现5000人脸库下 ...

  4. 人脸识别(5)---人脸识别技术及应用概览

    人脸识别技术及应用概览 科技的发展正在加速改变我们的生活.以前,我们购物埋单时,收银员会问"现金还是刷卡",现在,这句话则变成了"微信还是支付宝?"以前,我们上 ...

  5. matlab人脸识别开题报告,基于人脸识别的出勤点名系统中特征提取算法研究开题报告...

    基于人脸识别的出勤点名系统中特征提取算法研究 一.本课题研究的目的,意义 人脸识别是一项既有科学研究价值,又有广泛应用前景的研究课题.国际上大量研究人员几十年的研究取得了丰硕的研究成果,自动人脸识别技 ...

  6. Java + opencv 实现人脸识别,图片人脸识别、视频人脸识别、摄像头实时人脸识别

    搭建环境 opencv官网下载windows安装包 https://opencv.org/releases/ 选择最新版4.1.1 下载完成后是一个opencv-4.1.1-vc14_vc15.exe ...

  7. 人脸识别接口_人工智能 人脸识别双目模组摄像头 活体检测的重要作用

    人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像 ...

  8. 人脸识别智能服务器,智能化人脸识别服务器

    智能化人脸识别服务器,同时,在新基建的运维管理方面有了进一步的创新,通过自身的研发实现了对各基建网点的自动化全实时监测,及时发现故障并发出警示.自动处理故障网点.通知运维人员通过远程及时处理故障网点. ...

  9. 计算机人脸识别算哪个专业,人脸识别属于计算机什么领域(图文)

    [导读]人脸识别属于计算机什么领域,下面就是191路由网整理的网络知识百科,来看看吧! 大家好,我是191路由器网小编,上述问题将由我为大家讲解. 人脸识别属于热门的计算机技术研究领域.人脸识别属于计 ...

最新文章

  1. 论外部调用代理应该属于那一层
  2. 【大数据-Hadoop】Presto
  3. 浅谈MySQL数据库中的锁与事务
  4. 滚动图片广告_张韶涵霸屏兴发广场,户外LED大屏广告:投放价值在哪?
  5. 华为辞职门事件——再谈工作问题
  6. Nginx 笔记与总结(3)配置虚拟主机
  7. WordPress 添加网页图标
  8. 使用CLONE TABLE方式实现同region不同可用区的MaxCompute
  9. mysql 海量数据库的查询优化及分页算法方案_mysql 海量数据库的查询优化及分页算法方案...
  10. 小米MIX4发布会还有新品?小米全面屏电视PRO官宣
  11. OpenShift 4 - 解决 OpenShift 中 elasticsearch 环境的 Log4j 漏洞
  12. LED串联并联驱动方式分析
  13. android备份手机号码,Android QQ同步助手3.2 保证号码备份“不丢人”
  14. 【NOIP practice】BSOJ 3132 卡扎菲 并查集
  15. 利用Mono.Cecil动态修改程序集来破解商业组件
  16. 张量基础2(张量乘法和对称)
  17. 10. 正则表达式与JSON
  18. 中国石油大学远程教育《应急救援概论》第三阶段在线作业
  19. xp无法搜索计算机名,雨林木风xp系统无法搜索到工作组计算机怎么办
  20. CyclicBarrier原理分析

热门文章

  1. swagger2的分组配置
  2. Ubuntu 16.04 禁用 nouveau
  3. 罗兰贝格:全球半导体短缺将在2022年之后持续数年
  4. python double转int_int、float、double数据类型之间转换的原则
  5. struts框架实现国际化(实现登录页面中英互换)
  6. 用整个天空来讲故事!广告还可以这么拍、这么看
  7. java调用个人微信API接口收发朋友圈,删除评论朋友圈
  8. 进程学习:5- 守护进程
  9. AJAX各种实现方式
  10. 宁波阿里云代理商:阿里巴巴CEO张勇:阿里云是一家云计算产品公司