机器学习--基于FaceNet的人脸识别实战1.0

软件下载地址:https://download.csdn.net/download/qq475225253/88026287

软件实现效果如图

850d81caca76432f8d2623941dc0fdd7.png

要做该软件首先要用PyQT5做个图形界面

一、PyQt5设计界面

图形界面我们大致分成3个部分,左边用来存放我们将测试的图。中间是一些功能按钮,右侧是从库里面匹配出来的最好的人脸。

二、提前准备好人脸特征提取模型和断定人脸模型

1.判定是否是人脸的模型

        要做人脸识别首先我们要训练好一个模型,判断测试的图片是不是人脸。如果不是,那么我们就没必要往下进行了,直接结束。

        这个模型我们提前使用MTCNN算法训练好了。将模型的参数放在了model_data目录中。

2.人脸特征模型

        我们基于LFW数据集(该数据集合中包括13000多张人脸,5000多个人,1600多人不止一张人脸)使用FaceNet算法构造出提取人脸特征的模型。模型的参数放在weights文件夹的model.01-0.2455.h5文件中。

三、识别过程

        当我们单击“人脸识别”按钮后,我们将把左侧的图片拿过来,使用Face_Rec类的recognize方法进行人脸特征比对。具体比对过程如下:

        第一步,拿过来的图片需要确定是否有人脸。这时使用mtcnn类的实例mtcnn_model的detectFace方法检测是否有人脸。

        第二步,确定有人脸的基础上,对测试的图片进行预处理,比如裁剪出图片中的人脸部分,比如脸倾斜了要矫正对齐。

        第三步,将矫正后的测试图片facenet_model实例(通过load_weights方法加载类人脸特征提取模型参数),提取出测试图片的特征。

        第四步,用第三步的方法,提取要比对的人脸库中所有人脸的特征。database_image就是人脸库对应变量。在程序中我们把他指定在image这个文件夹。

        第五步,使用calculate_distance方法,计算出库中所有人脸的特征与测试人脸的特征之间的距离。取出距离最小的那个,作为结果,返回展示到界面右边

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘同敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值