LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

这篇具有很好参考价值的文章主要介绍了LabVIEW+OpenCV快速搭建人脸识别系统(附源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主
🎄所属专栏:『LabVIEW深度学习实战』
🍻上期文章: LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家✌关注、👍点赞、✌收藏、👍订阅专栏

前言

当今世界,人脸识别作为一种常见的生物识别技术,已经成为了一个不可或缺的技术,广泛应用于安防、金融、教育等领域。其中,SFace 作为一种先进的人脸识别模型,已经被广泛使用。本篇博客将介绍如何使用LabVIEW 和 SFace 实现人脸识别。人脸检测内容可查看上一篇博客LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

本文的主要内容分为以下两部分:

1、实时检测人脸并将并人脸设置标签保存下来
2、调用摄像头实现实时人脸识别


一、SFace简介

SFace 是一种基于深度学习的人脸识别模型,是由北京邮电大学邓伟洪教授课题组贡献。SFace可以在减少干净示例的类内距离和防止过度拟合标签噪声之间取得更好的平衡,并有助于更强大的深度人脸识别模型。在CASIA-WebFace,VGGFace2和MS-Celeb-1M数据库上训练的模型的广泛实验,以及在LFW,MegaFace和IJB-C数据库等几个人脸识别基准上进行评估,已经证明了SFace的优越性。

  • SFace模型Git地址:https://github.com/zhongyy/SFace

二、准备工作

  • 安装LabVIEW 2018 64位或更高版本
  • 安装LabVIEW AI视觉工具包,安装步骤可查看:https://blog.csdn.net/virobotics/article/details/123656523
  • 下载人脸检测yunet.onnx模型文件:https://github.com/ShiqiYu/libfacedetection.train/blob/a61a428929148171b488f024b5d6774f93cdbc13/tasks/task1/onnx/yunet.onnx
  • 下载人脸识别SFace模型文件:https://drive.google.com/file/d/1ClK9WiB492c5OZFKveF3XiHCejoOxINW/view

三、VI介绍

LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

Create.vi:使用给定参数创建此类的实例
LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

参数说明:

  • modelPath:模型文件路径
  • config:模型对应配置文件路径,ONNX 模型不需要
  • backend id:Backend ID
  • target id:目标设备ID

alignCrop.vi:对齐图像以将面部放在标准位置
LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

参数说明:

  • src:输入图片
  • one face:输入图像中某张人脸的检测结果(15列)
  • dst:对齐人脸后的图片

feature.vi:从对齐的图像中提取人脸特征
LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

参数说明:

  • src:已对齐人脸的图片
  • feature:人脸特征

match.vi:计算两个人脸特征之间的距离
LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

参数说明:

  • feature1:一个人脸特征
  • feature2:第二个人脸特征
  • type:距离类型,用于计算相似度
  • score:相似度得分

人脸特征相似度度量有 FR_COSINE 和 FR_NORM_L2方法,对应的判断是否为同一人的值分别为0.363和1.128,FRCOSINE 方法大于阈值 0.363 判定为同一人, FR_NORM _L2 方法小于阈值1.128判定为同一人。


四、项目实践

实现效果:利用 OpenCV FaceRecognizerSF 在 LabVIEW 平台实现人脸识别并显示该人名字。
实现思路
LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

准备工作

  1. 新建项目文件face_recognition;
  2. 在项目文件face_recognition中新建文件夹model,并将下载的yunet.onnx以及face_recognizer_fast.onnx拷贝至model文件夹中;在项目文件face_detect中新建文件夹photos,等待存储人脸;

4.1 实时检测人脸并将并人脸设置标签保存下来

  1. 获取人脸检测及人脸识别模型文件及人脸图片路径;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  2. 初始化相机并设置视频像素为640*480,默认摄像头id为0;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  3. 创建FaceDetectorYN、FaceRecognizerSF对象;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  4. 循环读取视频流中的每一帧并进行人脸检测,获取检测结果;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

faces是一个二维数组,每一行代表检测的一张人脸,每行数据中分别表示获取人脸15维的基本信息:x1, y1, w, h, x_re, y_re, x_le, y_le, x_nt, y_nt, x_rcm, y_rcm, x_lcm, y_lcm,rate,即人脸区域矩形框,左右眼、鼻子,左右嘴角5点landmark,置信度

  1. 绘制边框及关键点;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
    我们将绘制边框及关键点单独封装成一个draw_face.vi实现,完成程序如上图所示。

  2. 保存视频流中的某张人脸,并为之命名,该人脸像素为112*112;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  3. 释放所有资源;

  4. 完整源码;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  5. 运行效果
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
    save的图片保存到了该vi同路径下的photo文件夹中
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

4.2 调用摄像头实现实时人脸识别

  1. 获取人脸检测及人脸识别模型文件及之前已经保存的人脸图片路径;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
  2. 初始化相机并设置视频像素为640*480,默认摄像头id为0;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
  3. 创建FaceDetectorYN、FaceRecognizerSF对象;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
  4. 加载人脸数据,加载文件夹photo的每一张人脸图片,并获取每张人脸的128个特征点;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
  5. 循环读取视频流中的每一帧并进行人脸检测,获取检测结果;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)
  6. 人脸识别(对比)
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

人脸特征相似度度量有 FR_COSINE 和FR_NORM_L2方法,对应的判断是否为同一人的值分别为0.363和1.128,FRCOSINE 方法大于阈值 0.363判定为同一人, FR_NORM _L2 方法小于阈值1.128判定为同一人,在本项目中只要满足其中一种,即认为是同一人。

  1. 绘制人脸框及名字,若该人在图片数据库中,则显示该人名字,否则显示unknow;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  2. 完整源码;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)

  3. 运行效果;
    LabVIEW+OpenCV快速搭建人脸识别系统(附源码)


五、python实现

安装OpenCV 4.5.4及更高版本,该版本收录了基于深度学习神经网络的人脸模块(以下称“OpenCV DNN Face”),包括人脸检测(使用模型YuNet,由OpenCV China团队贡献)和人脸识别(使用模型SFace,由北京邮电大学邓伟洪教授课题组贡献)。

# 人脸检测
img = cv.imread("path/to/image")
faceDetector = cv.FaceDetectorYN.create("/path/to/model", "", img.shape[:2])
faces = faceDetector.detect(image)
# 人脸识别
recognizer = cv.FaceRecognizerSF.create(recog_model_path, "" )
aligned_face = recognizer.alignCrop(img, faces[1][0])
feature = recognizer.feature(aligned_face)
cosine_score = recognizer.match(feature1, feature2, 0)

六、项目源码

如需源码,订阅本专栏后在评论区留下邮箱


七、环境说明

操作系统:Windows10
LabVIEW:2018及以上 64位版本
视觉工具包:techforce_lib_opencv_cpu-1.0.0.xx.vip


总结

以上就是今天要给大家分享的内容,希望对大家有用。

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

推荐阅读

LabVIEW图形化的AI视觉开发平台(非NI Vision),大幅降低人工智能开发门槛
LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介
LabVIEW AI视觉工具包OpenCV Mat基本用法和属性
手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)文章来源地址https://www.toymoban.com/news/detail-409233.html

到了这里,关于LabVIEW+OpenCV快速搭建人脸识别系统(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OpenCV进行ESP32 CAM 的人脸和眼睛识别系统搭建

    在这个项目中,我们将构建一个 基于 ESP32 CAM 的人脸和眼睛识别系统 。本教程向大家介绍一种高效的无线 视频串流 方式。这里我们使用了 ESP32-CAM 模组,它是一个带有 ESP32-S 芯片的 小型摄像头模组。除了 OV2640 相机和多个用于连接外围设备的 GPIO 外,它还具有一个 microSD 卡

    2024年02月14日
    浏览(61)
  • python人脸识别考勤系统 dlib+OpenCV和Pyqt5、数据库sqlite 人脸识别系统 计算机 毕业设计 源码

    Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库 本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量,如果两张图片来源于同一个人,那么两个图片所映射的空间向量距离就很近,否则就会很远。因此,可以通过提取图片并映射到

    2024年02月08日
    浏览(57)
  • Python 毕业设计 - 基于 opencv 的人脸识别上课考勤系统,附源码

    源码下载地址https://download.csdn.net/download/2302_77835532/88237252 这个人脸识别考勤签到系统是基于大佬的人脸识别陌生人报警系统二次开发的。 项目使用Python实现,基于OpenCV框架进行人脸识别和摄像头硬件调用,同时也用OpenCV工具包处理图片。交互界面使用pyqt5实现。 该系统实现

    2024年02月05日
    浏览(73)
  • 基于 opencv 的人脸识别上课考勤系统,附源码,可作为毕业设计

    这个人脸识别考勤签到系统是基于大佬的人脸识别陌生人报警系统二次开发的。 项目使用Python实现,基于OpenCV框架进行人脸识别和摄像头硬件调用,同时也用OpenCV工具包处理图片。交互界面使用pyqt5实现。 该系统实现了从学生信息输入、人脸数据录入、人脸数据训练,学生信

    2024年02月08日
    浏览(72)
  • PyQt5 + Python3.7 + OpenCV人脸识别身份认证系统(附源码)

    基于PyQt5 + Python3.7 + OpenCV实现的人脸识别身份认证系统,附源码。 PyQt5 + Python3.7 + OpenCV 实现人员注册,信息修改,人脸识别获取相关信息 人员信息通过序列化存储在 datafile.txt 文件中 haarcascade_frontalface_default.xml 是OpenCV中自带的训练模型 font.ttf 是为了在cv2中显示中文而引入的字体

    2024年02月06日
    浏览(63)
  • 计算机毕业设计:基于python人脸识别考勤系统 OpenCV+Dlib(包含文档+源码+部署教程)

    [毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。 Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库 方法实现、实现步骤 1、实例化人脸检测

    2024年02月04日
    浏览(68)
  • 人脸识别系统OpenCV+dlib+python(含数据库)Pyqt5界面设计 项目源码 毕业设计

    Python语言、dlib、OpenCV、Pyqt5界面设计、sqlite3数据库      本系统使用dlib作为人脸识别工具,dlib提供一个方法可将人脸图片数据映射到128维度的空间向量,如果两张图片来源于同一个人,那么两个图片所映射的空间向量距离就很近,否则就会很远。因此,可以通过提取图片并

    2024年02月05日
    浏览(68)
  • Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

    ​ 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理 :首先,对输入图像进行预处理,包括读取图片、将图片灰度转换、修改图片的尺寸、绘制矩形

    2024年04月13日
    浏览(70)
  • 头歌--人脸识别系统--OpenCV人脸检测

    目录 第1关:图片基本操作 第2关:色彩空间及其转换 第3关:基于Harr特征的人脸检测分类器 第4关:绘制人脸与人眼区域 第1关:图片基本操作 第2关:色彩空间及其转换 第3关:基于Harr特征的人脸检测分类器 第4关:绘制人脸与人眼区域

    2024年02月05日
    浏览(54)
  • 快速通过pycharm搭建python+opencv实现人脸检测

      首先导入opencv 1代码实现效果,在界面下显示所要显示的图片 在同一目录下存放显示的图片 img = cv.imread(\\\'face1.jpg\\\')函数字符串变量填写存放照片的名字 为了让人眼看到照片所以使用cv.waitKey(0),起到delay的作用 2代码实现效果对图片进行灰度转换 灰度转换可以让计算机更轻易对

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包