tf_facenet

facenet人脸检测与识别项目

说明

近期研究的课题是孪生网络,看到了FaceNet采用了孪生网络,研究的同时顺带把人脸识别FaceNet实现下,

做了个简单的人脸识别项目:包含人员登记、人员签到以及FaceNet模型训练、评估、测试、模型导出、数据制作。

通过MTCNN人脸检测模型,从照片中提取人脸图像;

把人脸图像输入到FaceNet,计算Embedding的特征向量;

采用annoy进行人脸匹配,比较特征向量间的欧式距离;

项目利用谷歌浏览器调用电脑摄像头进行人脸采集与识别业务。

每次识别时间约240ms(MAC only cpu)。

依赖

tensorflow1.8

python2.7

flask

flask_sqlalchemy

annoy

FaceNet源码

官方预训练模型VGGFace2下载

LFW评估测试数据下载

亚洲人脸数据库_CASIA-FaceV5

项目运行步骤

相关截图

以周杰伦为例,此处仅用于学习与研究,莫怪。

人脸采集页面(谷歌浏览器打开)

人脸识别页面(谷歌浏览器打开)

FaceNet

train目录下为FaceNet训练业务,训练采用train_tripletloss.py

训练:train.py

评估:eval.py

导出模型:export.py

比较:compare.py

可视化:show_train.py

MTCNN人脸检测与对齐:align_data.py

制作评估数据(类似lfw的pairs.txt):create_eval_data.py

下载数据并放到相应的目录下如下:

配置参数

训练亚洲人脸数据

可以下载亚洲人脸数据库_CASIA-FaceV5,共500个中国人,每个人5张照片,总共2500张。用create_eval_data.py制作亚洲人脸评估数据集,

这样就可以在训练亚洲人脸业务时进行有效的评估了。

训练配置文件:train_facenet.py

我针对亚洲人脸数据库_CASIA-FaceV5数据集进行了基于官方预训练VGGFace2模型进行预训练,训练机器配置为:

系统:ubuntu 16.04LTS

内存:16GB

CPU:Intel Core I7-6800K x12

GPU:GeForce GTX 1080Ti

训练参数train_tripletloss.py:

image_size=160, embedding_size=512, batch_size=90, max_nrof_epochs=10, epoch_size=500.

训练时间约45小时

训练得到模型 20190218-164145.pb

模型下载地址:https://download.csdn.net/download/zsf442553199/10965981

同样采用LFW数据集进行评估,准确率为68.467%:

而官方预训练VGGFace2模型评估准确率为98.5%:

比较下发现针对亚洲人训练后准确率不升反降,不用担心,因为我们用了LFW来评估亚洲人,准确率肯定会下降的,毕竟亚洲人和欧美人长相还是有区别的。

为了验证我们训练的成果是有效的,我们做下以下测试:分别用以上两个模型对同一个亚洲人进行测试,然后比较得到的欧式空间距离,如果我们训练的模型的欧式空间距离比官方的模型要小,说明我们的训练是有效的。

运行train目录下的compare.py:

找了两张本人不同时期的照片进行测试

测试我们训练的模型,距离为0.6545:

测试官方预训练模型,距离为0.737:

很明显,我们训练的成果还是不错的。接下来,我们可以搜集大量的亚洲人脸数据进行训练,让我们的模型准确率提升到99%应该不是很难的事情。要注意的是训练和评估的数据都要用亚洲人脸数据

facenet识别准确率_GitHub - zjj-2015/tf_facenet: facenet人脸检测与识别系统相关推荐

  1. 测一测!中科视拓免费开放口罩人脸检测与识别技术

    全民抗疫形势下,口罩已成为复工复产的标配.对于人脸识别技术厂商而言,两个应用需求应运而生: 1.检测人脸是否佩戴口罩: 2.在戴口罩的情况下依旧能够实现高精度人脸识别. 疫情初期,中科视拓紧急研发口罩 ...

  2. (转)如何应用MTCNN和FaceNet模型实现人脸检测及识别

    https://zhuanlan.zhihu.com/p/37705980 人脸检测与人脸识别 人脸检测是对人脸进行识别和处理的第一步,主要用于检测并定位图片中的人脸,返回高精度的人脸框坐标及人脸特征 ...

  3. mtcnn人脸检测python_基于mtcnn和facenet的实时人脸检测与识别系统开发

    简介:本文主要介绍了实时人脸检测与识别系统的详细方法.该系统基于python/opencv2/tensorflow环境,实现了从摄像头读取视频,检测人脸,识别人脸的功能.本系统代码地址:real ti ...

  4. 人脸检测和识别的开源库总结

    背景 人脸相关的任务有以下几种: 人脸检测(将图片中包含的人脸进行初步定位,以及关键点如眼睛.鼻子.嘴巴等更精细的定位,文章封面即为典型人脸检测结果): 人脸跟踪(视频中跟踪人脸位置变化): 人脸验证 ...

  5. CNCC 2016 | 山世光:深度化的人脸检测与识别技术—进展与展望

    雷锋网(公众号:雷锋网)按:本文根据山世光在 CNCC 2016 可视媒体计算论坛上所做的报告<深度化的人脸检测与识别技术:进展与问题>编辑整理而来,在未改变原意的基础上略有删减. 山世光 ...

  6. 初学入门 | 一种快速准确的人脸检测、识别和验证系统

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  7. 一种快速准确的人脸检测、识别和验证系统(入门)

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  8. 一种快速准确的人脸检测、识别和验证系统

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  9. 腾讯AI Lab刷新人脸检测与识别两大测评国际记录,技术日调用超六亿

    来源:腾讯AI实验室 概要:人脸检测是让机器找到图像视频中所有人脸并精准定位其位置信息,人脸识别是基于人脸图像自动辨识其身份,两者密切相关,前者是后者的前提和基础. 腾讯AI Lab在国际最大.最难的 ...

最新文章

  1. 华为 | 人生苦短,码短情长,有场大Party等你来Pick!
  2. 网络安全性——IPSEC(续思科设备实现)
  3. c+和python哪个快-C/C++比python快是什么意思?
  4. Android4.0 修改系统屏幕分辨率方法
  5. python输出日志到文件_【已解决】Python中,如何让多个py文件的logging输出到同一个日志log文件...
  6. Windows 查看端口被哪些程序占用
  7. MVC3.0与C#截取字符串
  8. 从纯技术到技术管理,那些跌宕起伏的转型经历
  9. c#服务器上的文件怎么打印机,如何通过使用C#窗口服务通过打印机打印数据打印文本文件...
  10. spring AOP @Aspect,@pointcut的理解
  11. Oracle Database Documentation
  12. Android锁屏状态下点亮屏幕并弹窗提醒
  13. 检测ip和port是否可连接
  14. org.apache.mina.core.RuntimeIoException: Failed to get the session 异常可能出现的原因
  15. 如何在HTML中引用jQuery函数库
  16. 带外管理小工具--IPMITOOL常用操作指令
  17. 抖音0播放至10万播放的正确方式,新号如何不投DOU+也能冷启动?
  18. 【TWVRP】基于matlab模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】
  19. Spring Security简单增加短信验证码登录
  20. QQ显示服务器繁忙2013,在QQ空间发表日志的之后为什么样总是显示“服务器繁忙”?...

热门文章

  1. 2022安全员-B证复训题库及在线模拟考试
  2. js 下拉层级多选_JS实现支持多选的遍历下拉列表代码
  3. C语言提高代码效率的几种方法
  4. 光时域反射仪(OTDR)的工作原理以及使用方法、注意事项
  5. Quartz定时任务详解
  6. 苹果6如何截屏_iPhone 小技巧:通过快捷指令快速清理截屏
  7. Appium-oppo权限问题解决
  8. 信创办公--基于WPS的Word最佳实践系列(解决WPS插入图片后显示不全问题)
  9. 计算机虚拟网络拨号技术,虚拟技术计算机网络论文
  10. Xshell连接矩池云进行BERT-BiLSTM-CRF模型训练