基于yolov9来训练人脸检测

YOLOv9是一个在目标检测领域内具有突破性进展的深度学习模型,尤其以其在实时性与准确性上的优秀表现而受到广泛关注。针对人脸检测这一特定任务,YOLOv9通过其架构创新和算法优化提供了强大的支持。

YOLOv9在继承了YOLO系列(如YOLOv7、YOLOv8)优点的基础上,进一步提升了模型性能和效率。例如,YOLOv9引入了可编程梯度信息(PGI),这一创新有助于缓解深度神经网络中因多层处理导致的信息损失问题,从而提高了模型对于小尺寸人脸以及复杂背景下的检测能力。

在人脸检测项目中,YOLOv9可能利用了更高效的特征提取器、跨阶段的信息融合机制、以及更为精简的网络结构设计,以实现在保证高精度的同时达到实时处理视频流的能力。这意味着无论是嵌入式设备还是高性能GPU服务器,都可以利用YOLOv9快速地进行人脸检测,广泛应用于安防监控、智能门禁、移动设备解锁等多种场景。

由于YOLOv9的具体人脸检测实现细节没有直接描述,可以预见的是,相关的研究人员或开发者会根据YOLOv9的基础架构调整输出层,适应人脸检测任务的特性,比如优化anchor boxes大小、增加人脸关键点预测分支等,以确保模型能够精准定位和识别不同尺度、姿态的人脸。

同时,结合大规模人脸数据集进行训练,YOLOv9的人脸检测模型在准确性和鲁棒性上都应有所提升。

1.人脸检测任务识别并精确定位图像或视频中的人脸。此存储库演示了如何训练 YOLOv9 模型以在 WIDER Face 数据集上进行高精度人脸检测。

安装

克隆此存储库并安装YOLOv9 的requirements.txt:

预训练模型

yolov9-c.pt从google Drive下载预训练模型。请注意,该模型在 WIDER 数据集上训练了 240 个时期。

数据准备

WIDER 数据集包含超过 30k 图像和超过 390k 人脸,每个图像都有 bouding box 和其他各种标签格式。

${ROOT}
└── yolov9
└── datasets/    └── widerface/└── train/└── val/└── original-widerface/└── train/└── images/└── label.txt└── val/└── images/└── label.txt
└── train2yolo.py
└── val2yolo.py
└── widerface.yaml
准备数据:

下载WIDER-FACE数据集。 从google Drive下载注释文件。 运行以下命令:

运行以下命令:
python train2yolo.py datasets/original-widerface/train datasets/widerface/train
python val2yolo.py datasets/original-widerface datasets/widerface/val

这些脚本会将您的注释文件转换为 YOLO 格式,为每个图像创建一个 .txt 文件。文件中的每一行将代表一个格式为的单个对象:class x_center y_center width height.

训练:
cd yolov9
python train_dual.py --workers 4 --device 0 --batch 4 --data ../widerface.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15

推理

为了进行推理,请运行以下命令:

python detect.py --weights runs/train/yolov9-c5/weights/best.pt --source assets/worlds-largest-selfie.jpg

或者,如果您想使用经过训练的模型,请从上面的链接下载并运行以下命令:

python detect.py --weights best.pt --source assets/worlds-largest-selfie.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树--相同的树

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3], q [1,2,3] 输出:true 思路 一、…

JavaEE 初阶篇-深入了解 CAS 机制与12种锁的特征(如乐观锁和悲观锁、轻量级锁与重量级锁、自旋锁与挂起等待锁、可重入锁与不可重入锁等等)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 乐观锁与悲观锁概述 1.1 悲观锁(Pessimistic Locking) 1.2 乐观锁(Optimistic Locking) 1.3 区别与适用场景 2.0 轻…

C++高级特性:柯里化过程与std::bind(六)

1、柯里化过程 1.1、operator()的引入 现在需要完成这样一个需求:有一个函数每次调用返回的结果不一样。例如:两次调用的返回值都不一样那么就可以达到这种目的 1.1.1、简单点的写法 可以给一个全局的变量(静态变量)&#xff…

深入理解JVM垃圾收集器

相关系列 深入理解JVM垃圾收集算法-CSDN博客 目前市面常见的垃圾收集器有Serial、ParNew、Parallel、CMS、Serial Old、Parallel Old、G1、ZGC以及有二种不常见的Epsilon、Shenandoah的,从上图可以看到有连线的的垃圾收集器是可以组合使用,是年轻代老年代…

Input DropDown 拼接成 select组件(基于antd和react)

前言:为什么不直接用select,还要舍近求远搞inputdropdown这种缝合怪,是因为antd的select不支持选中项再编辑,效果如图 比如:选中的lucy文案变成了placeholder不能再编辑了 封装此组件虽然比较简单,但还是有…

PLC互连全攻略:Profinet和EthernetIP实操演示

在今日的技术分享中,将详细探讨实现Profinet和Ethernet/IP的通信配置,以连接西门子PLC(Profinet)和罗克韦尔PLC(Ethernet/IP)。本篇将重点介绍专为通信而设计的Profinet转Ethernet/IP网关,在联接…

ActiveMQ介绍及linux下安装ActiveMQ

ActiveMQ介绍 概述 ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS1.1规范(Java Message Service),是消息队列服务,是面向消息中间件(MOM)的最终实现,它为企业消息传递提供高…

【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)

上两次教程集中学习了R语言的基本知识,那么我们很多时候使用R语言是进行统计分析,因此对于生物信息学和统计科学来说,R语言提供了简单优雅的方式进行统计分析。教程参考《Rlearning》 3.1 描述性统计分析 3.1.1 载入数据集及summary函数 我…

【力扣题】关于单链表和数组习题

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…

(Java)数据结构——图(第五节)Kruskal的实现最小生成树(MST)

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Kruskal算法(Kruskal的实现原理) Kruskal算法的原理: 就是每次取最小的边,看看是不是与已经选择的构成回路&#x…

金融机构面临的主要AI威胁:身份伪造统与社会工程攻击

目录 攻击者利用AI威胁的过程 金融机构如何防范AI攻击 针对AI欺诈的解决方案 2023年11月,诈骗分子伪装成某科技公司郭先生的好友,骗取430万元;2023年12月,一名留学生父母收到孩子“被绑架”的勒索视频,被索要500万元赎…

ISTQB选择国内版,还是国际版呢

1, ISTQB简介 ISTQB(International Software Testing Qualifications Board)是一个国际软件测试资格认证机构,旨在提供一个统一的软件测试认证标准。ISTQB成立于2002年,是非盈利性的组织,由世界各地的国家或地区软件测…

Qt5 编译oracle数据库

库文件 1、Qt源码目录:D:\Qt5\5.15.2\Src\qtbase\src\plugins\sqldrivers\oci 2、oracle客户端SDK: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载各版本中的如下压缩包,一定要版本相同的 将两个压缩包…

事务,MySQL函数和索引详解

文章目录 事务简介提交方式手动提交事务 事务执行流程修改事务的默认提交方式 事务原理四大特性隔离级别 MySQL函数常见的日期函数判断函数case when字符串函数数字函数 MySQL性能(了解)索引概念分类MySQL索引语法数据结构(了解)BTreeBTree好处 优缺点优势劣势 创建原则 事务简…

c++取经之路(其五)——类和对象拷贝构造函数

概念:拷贝构造函数,只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。 特征: 1. 拷贝构造函数是构造函数的一个重载形式 如: 2. 拷贝…

基于springboot实现中小型医院网站管理系统【项目源码+论文说明】

基于springboot实现中小型医院网站管理系统演示 摘要 本基于Spring Boot的中小型医院网站设计目标是实现用户网络预约挂号的功能,同时提高医院管理效率,更好的为广大用户服务。 本文重点阐述了中小型医院网站的开发过程,以实际运用为开发背…

[数据结构]——二叉树——堆的实现

1. 堆的概念及结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;并满足&#xff1a; < 且 < ( > 且 > ) i 0&#xff0c;1&…

rocky9 yum 安装与配置MySQL8

1.前置条件&#xff1a; 把yum包更新到最新 [rootlocalhost ~]# yum update 查看系统中是否已安装 MySQL 服务 rpm -qa|grep mysql 如果有安装mysql,则需要先卸载之前安装的mysql&#xff1a;yum -y remove mysql 然后再查看mysql是否都卸载完成,如果还有没卸载完成的&am…

小程序开发SSL证书下载和安装

在开发小程序时&#xff0c;确保数据的安全传输至关重要&#xff0c;而实现这一目标的关键在于正确获取与安装SSL证书。以下详细介绍了从获取到安装SSL证书的完整流程&#xff0c;以助您为小程序构建可靠的加密通信环境。 一、小程序SSL证书类型选择&#xff1a; 域名验证型D…

Linux:软件包管理器 - yum

Linux&#xff1a;软件包管理器 - yum Linux的软件安装方式源代码安装rpm包安装yum安装 yum三板斧yum listyum installyum remove yum生态yum源 Linux的软件安装方式 源代码安装 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序 源代码安…