LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

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

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主
🎄所属专栏:『LabVIEW深度学习实战』
🍻上期文章: LabVIEW AI视觉工具包OpenCV Mat基本用法和属性
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家✌关注、👍点赞、✌收藏、👍订阅专栏

前言

人脸检测是计算机视觉领域的一个重要问题,它是很多应用(如人脸识别、人脸表情识别等)的必要步骤。YuNet 是一种高效的人脸检测算法,本文将介绍如何使用LabVIEW加载YuNet 快速实现人脸检测,人脸识别的实现可查看另外一篇博客:LabVIEW快速搭建人脸识别系统

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

1、检测图片中的人脸
2、调用摄像头实现实时检测人脸


一、关于YuNet

YuNet 是一种基于深度神经网络的人脸检测算法,一款轻量级,快速,准确的人脸检测模型,它在保持高准确率的同时,具有很高的运行速度。相比于传统的基于 Haar 特征和 HOG 特征的人脸检测算法,YuNet 具有更好的性能和效率,在WIDE人脸验证集上达到0.834(AP_easy),0.824(AP_medium),0.708(AP_hard)。YuNet 的模型结构基于 MobileNetV2,并使用了一些优化技巧(如 Inverted Residual Block、Depthwise Separable Convolution 等),以提高模型的性能。
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

YunNet 模型相较于其他人脸检测模型,具有以下优势:

  • 更高的检测精度:YunNet 模型在 WIDER FACE 数据集上取得了目前最好的检测精度,其 F1 分数高达 97.1%,比其他人脸检测模型要高。

  • 更高的鲁棒性:YunNet 模型能够应对人脸检测中的一些常见问题,如姿态变化、遮挡、光照变化等,具有更高的鲁棒性。

  • 更快的检测速度:YunNet 模型使用深度学习技术进行人脸检测,相比传统的算法速度更快。

  • 更好的通用性:YunNet 模型在不同数据集上都能够取得不错的表现,适用于不同的场景和应用需求。

LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

与其他人脸检测模型相比,YunNet 模型的缺点可能是在一些特定的场景下会出现漏检或误检的情况,但是这一点可以通过模型的调整和优化来解决。总体而言,YunNet 模型在人脸检测领域表现优异,其高效准确的检测能力使得其被广泛应用于人脸识别、人脸表情分析等领域。

二、准备工作

  • 安装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

三、VI介绍

LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

FaceDetectorYN_Creat.vi:创建人脸检测器的实例类
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

参数说明:

  • modelPath:模型文件路径

  • config:模型对应配置文件路径,ONNX 模型不需要

  • Size:模型输入图片大小

  • scoreThreshold:得分阈值,默认值为 0.9

  • nmsThreshold:lOU判断阈值,默认值为 0.3

  • top_K:NMS之前保留 top_k 个边界框

  • ref: 人脸检测类对象

detect.vi:从给定图像中检测人脸,获得人脸区域和5点landmark
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

参数说明:

  • src:待检测的图片
  • faces:人脸检测结果
  • FaceDetectorYN in: 人脸检测类对象
  • FaceDetectorYN out: 人脸检测类对象

四、项目实践

实现效果:利用 OpenCV FaceDetectorYN 实现 LabVIEW 平台人脸检测并绘制人脸边框以及关键点。

准备工作

  1. 新建项目文件face_detect;
  2. 在项目文件face_detect中新建文件夹model,并将下载的YunNet.onnx拷贝至model文件夹中;在项目文件face_detect中新建文件夹pic_video,并将待检测的图片拷贝到文件夹中;

4.1 检测图片中的人脸

  1. 获取模型文件及检测图片路径;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
  2. 读取图片并获取图片的宽和高并合并成簇;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
  3. 创建FaceDetectorYN对象;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
  4. 进行人脸检测并获取识别结果;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

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,置信度

注意:我们可以看到途中其实是有12张人脸的,但是检测到的人脸只有10张,有两张人脸未被检测出,可修改FaceDetectorYN_Creat.vi的scoreThreshold,改参数默认值为 0.9,我们修改为0.7,则可将所有人脸检测出。
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
5. 绘制边框及关键点;
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
我们将绘制边框及关键点单独封装成一个vi实现,完成程序如上图所示。

  1. 释放资源;

  2. 完整源码;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

  3. 运行效果
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

4.2 调用摄像头实现实时人脸检测

整体步骤与调用图片进行人脸检测相似

  1. 完整源码;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

  2. 运行效果;
    LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)

五、项目源码

源码下载链接:https://pan.baidu.com/s/197IDgJy_pToWqcHAU8qa3w?pwd=yiku

六、环境说明

操作系统: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人工智能视觉工具包快速实现图像读取与采集文章来源地址https://www.toymoban.com/news/detail-488386.html

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

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

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

相关文章

  • Opencv-DNN模块之官方指导:利用DNN模块实现深度学习应用:分类、分割、检测、跟踪等

    本文根据 Deep Learning with OpenCV DNN Module: A Definitive Guide 中相关内容进行翻译整理而得,用于今后的学习和工程。   § 00 前   言 ---   机器视觉研究领域从上个世纪六十年后期就已创立。图像分类和物体检测是计算机视觉领域中的一些最古老的的问题,研究者为解决它进行

    2024年02月05日
    浏览(48)
  • C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估

    目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] ------------------------------------------------------

    2024年01月22日
    浏览(35)
  • LabVIEW中使用opencv快速实现视频的读写

    ‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章: 【YOLOv8-Seg】实战三:LabVIEW+TensoRT实现YOLOv8-seg的极速推理(毫秒级) 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家

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

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

    2024年04月13日
    浏览(34)
  • 基于OpenCV的人脸检测软件(含Python源码+UI界面+图文详解)

    摘要: 人脸检测 的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在图像中的坐标,可能还包括姿态如倾斜角度等信息。本文详细介绍了其实现的技术原理,同时给出完整的 Python 实现代码,并且通过 PyQT 实现了UI界面,并包含图片、视频及摄像头的人

    2024年02月05日
    浏览(29)
  • 人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)

    import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument(“-i”, “–image”, required=True, help=“path to input image”) ap.add_argument(“-p”, “–prototxt”, required=True, help=“path to Caffe ‘deploy’ prototxt file”) ap.add_argument(“-m”, “–model”, required=True, help=“path to Caffe pre-trained model”)

    2024年04月16日
    浏览(46)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(81)
  • OpenCV实现人脸关键点检测

    目录 实现过程 1,代码解读 1.1 导入工具包 1.2导入所需图像,以及训练好的人脸预测模型 1.3 将 dlib 的关键点对象转换为 NumPy 数组,以便后续处理 1.4图像上可视化面部关键点 1.5# 读取输入数据,预处理 1.6进行人脸检测 1.7遍历检测到的框 1.8遍历每个面部 2,所有代码 3,结果

    2024年04月23日
    浏览(44)
  • OpenCV实现人脸检测(Haar特征)

    OpenCV是一个广泛应用于计算机视觉领域的开源库,提供了丰富的图像处理和分析功能。其中,人脸检测是OpenCV中最常见和重要的应用之一。在OpenCV中,可以使用Haar特征分类器实现人脸检测。 Haar特征是一种常用的特征描述方法,它通过在图像上移动不同大小和形状的滑动窗口

    2024年04月16日
    浏览(29)
  • 【opencv】传统目标检测:Haar检测器实现人脸检测

    传统目标分类器主要包括Viola Jones Detector、HOG Detector、DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是更为全面、使用更为广泛的检测器。 Viola Jones Detector是作为人脸检测器被Viola和Jones提出来的,后来Rainer Lienhart和Jochen Maydt将这个检测

    2024年02月12日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包