基于YOLOv5的人脸目标检测

news2025/1/11 17:15:22

本文是在之前的基于yolov5的人脸关键点检测项目上扩展来的。因为人脸目标检测的效果将直接影响到人脸关键点检测的效果,因此本文主要讲解利用yolov5训练人脸目标检测(关键点检测可以看我人脸关键点检测文章)

基于yolov5的人脸关键点检测:人脸关键点检测


环境说明

torch>=1.5.0

数据集

这里使用的人脸数据集为WIDER FACE

该数据集共有12880张图像

引用说明:

@inproceedings{yang2016wider,
Author = {Yang, Shuo and Luo, Ping and Loy, Chen Change and Tang, Xiaoou},
Booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
Title = {WIDER FACE: A Face Detection Benchmark},
Year = {2016}}

下载数据集并解压至datasets,images中是图像,labels中是对应标签文件(已经做了归一化)

 其中train_bak.txt是所有图像的相对路径(注意此时还没有划分真正的训练集、验证机和测试集),格式为:

./images/xxx.jpg

数据集百度云:

 链接:https://pan.baidu.com/s/1O7pgjy77ur21jMm4lwwuQw 
提取码:yypn 
 

数据集划分脚本

tran_bak.txt包含了12880张图像的相对路径

该脚本可以生成train.txt、val.txt和test.txt。如果你感觉训练过程毕竟慢,希望可以先得到一个训练模型,那么可以将lines=lines[:2000]注释去掉,这将仅从数据集中选择2000张图来进行训练和测试

with open('datasets/train_bak.txt', 'r') as f:
    lines = f.readlines()
# lines = lines[:2000]  # 只取2000张
# 随机打乱数据
random.shuffle(lines)
# 划分比例
val_ratio = 0.1  # 验证集占比
test_ratio = 0.1  # 测试集占比
# 计算划分的索引
val_index = int(len(lines) * val_ratio)
test_index = int(len(lines) * (val_ratio + test_ratio))
# 划分数据集
val_data = lines[:val_index]
test_data = lines[val_index:test_index]
train_data = lines[test_index:]

# 保存划分后的数据集到文件
with open('datasets/val.txt', 'w') as f:
    f.writelines(val_data)

with open('datasets/test.txt', 'w') as f:
    f.writelines(test_data)

# 剩余的部分作为训练集
with open('datasets/train.txt', 'w') as f:
    f.writelines(train_data)

新建mydata.yaml

上面完成了数据集的划分,然后和正常的yolov5训练一样,需要在data/下新建一个mydata.yaml文件,内容如下:

train: ./datasets/train.txt
val: ./datasets/val.txt
test: ./datasets/test.txt

# number of classes
nc: 1

# class names
names: ['face']

训练

python train.py --data data/mydata.yaml --weights yolov5s.pt

我这里仅训练了10个epoch(需要的可以自己继续训练),评价指标如下:

RPmAP_0.5mAP_0.5:0.95
0.521
0.7987
0.59592
0.28344

 

batch中标签预览图: 

 

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

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

相关文章

FL Studio 21.0.3.3517中文破解版2024最新Keygen免费下载安装激活教程

你们是否也是音乐制作爱好者呢?如果是,那就仔细阅读文章收集对自己有帮助的操作技巧吧~~ FL Studio 21.2.3 Win-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55981 FL Studio 21 .2.3Mac-安装包下载如下: https://wm.makeding.com/iclk/?…

Unity 3D软件下载安装;Unity 3D游戏制作软件资源包获取!

Unity3D,它凭借强大的功能和灵活的特性,在游戏开发和互动内容创作领域发挥着举足轻重的作用。 作为一款顶尖的游戏引擎,Unity3D内置了先进的物理引擎——PhysX。这一物理引擎堪称业界翘楚,能够为开发者提供全方位、高精度的物理模…

东软医疗获通用技术集团战略投资,共创中国医疗设备产业未来

近日,通用技术集团所属资本公司联合中国国有企业混合所有制改革基金有限公司与东软医疗系统股份有限公司(下称“东软医疗”)签署投资协议,战略投资东软医疗。 作为央企和民企携手发展高端医疗设备产业的具体实践,此次…

有什么事在windows上显的顺理成章,在Linux上就很令人费解?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!可以假定一个几乎恒久不变的…

基于Java的音乐网站系统01239

目 录 摘要 1 绪论 1.1 研究背景 1.2系统开发目标、意义 1.3研究内容 2 相关技术介绍 2.1 MySQL数据库 2.2 Java编程语言 2.3 SpringBoot框架介绍 3 系统需求分析与设计 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 法律可行性分析 3.2 需…

已成功与服务器建立连接,但是在登录过程中发生错误。(provider: SSL提供程序,error:0-证书链是由不受信任的颁发机构颁发的。)

已成功与服务器建立连接,但是在登录过程中发生错误。(provider: SSL提供程序,error:0-证书链是由不受信任的颁发机构颁发的。) 在连接SQL Server2008R2数据库时发生错误。 连接字符串:server127.0.0.1;uidsa;pwd1;databasedb; 解决办法: 方…

Python--线程基础

相关概念 线程是"轻量级进程",是计算机中CPU进行任务调度的最小单位。 线程属于进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,且至少有一个线程。 每个进程开始的创建的时候,都会随之创建一个主线程。 进程负责分配和隔离资源(CPU, 内存…

2002-2022年各省老年人口抚养比(人口抽样调查)数据

2002-2022年各省老年人口抚养比(人口抽样调查)数据 1、时间:2002-2022年 2、指标:老年人口抚养比 3、来源:国家统计局、统计年鉴 4、范围:31省, 5、缺失情况:无缺失,其中2010年的值取2009、…

人脸嵌入向量提取计算

本文将讨论如何使用开源中提供的预训练模型从图像中提取人脸编码或人脸嵌入。我还附上了代码,请参阅此 git仓库。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出…

灌区量测水管理系统是如何实现灌区节水?

随着全球水资源日益紧张,节水已成为农业生产中不可忽视的一环。在灌区管理中,量测水管理系统以其精准的数据监测和科学的灌溉管理,为实现灌区节水提供了强有力的技术支持。 灌区量测水管理系统是一套集成了自动化监测、数据传输、数据分析和…

基于星火大模型的群聊对话分角色要素提取挑战赛|#AI夏令营#Datawhale#夏令营-Lora微调与prompt构造

赛题连接 https://challenge.xfyun.cn/topic/info?typerole-element-extraction&optionphb Datawhale Al夏令营 零基础入门大模型技术竞赛 数据集预处理 由于赛题官方限定使用了星火大模型,所以只能调用星火大模型的API或者使用零代码微调 首先训练数据很少…

fyne一个复杂的布局案例

一个复杂的布局案例 实现如下布局: 布局分析: 代码如下: package mainimport ("complexlayout/icons""fyne.io/fyne/v2""fyne.io/fyne/v2/app""fyne.io/fyne/v2/canvas""fyne.io/fyne/v2/container""fyne.io/fyne/v2…

昇思MindSpore学习入门-保存与加载

在训练网络模型的过程中,实际上我们希望保存中间和最后的结果,用于微调(fine-tune)和后续的模型推理与部署,本章节我们将介绍如何保存与加载模型。 保存和加载模型权重 保存模型使用save_checkpoint接口,…

在Linux上运行macOS:深度解析OSX-KVM项目

在Linux上运行macOS:深度解析OSX-KVM项目 在现代开发和测试环境中,能够在不同操作系统之间无缝切换是至关重要的。对于开发者而言,如何在Linux系统上运行macOS一直是一个挑战。然而,OSX-KVM项目为我们提供了一种高效的解决方案&a…

rtpengine 项目

目录 !1. 如果容器内部修改 rtpengine 并且让他生效 守护进程模块(daemon) 内核模块(kernel-module) 录音守护进程模块(recording-daemon) iptables扩展模块(iptables-extension) 2. 在Docker容器中编译好四个模块后,您需要采取以下步骤 1. 加载内…

网易云商发布《2024体验增长白皮书》,助力企业找到增长突破点

“过去几年里,当我们做内部审视和自我反思时,我们知道阿里落后了,因为我们忘记了真正的客户是谁。我们的客户是使用APP进行购物的人,而我们没有给他们最好的体验。” 4月3日,在挪威主权财富基金(Norges Ba…

以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!

大家好,我是CodeQi! 项目开发中,Loading 的展示与关闭是非常关键的用户体验设计。 当我们的应用需要发起多个异步请求时,如何有效地管理全局 Loading 状态,保证用户在等待数据加载时能有明确的反馈,这是一个值得深入探讨的问题。 本文将以 Vue 3 项目为例,详细讲解如…

Mac视频下载工具,兼容14系统,Downie 4软件下载

Downie 4 是一款由James Application开发的视频下载软件,支持Mac操作系统。该软件允许用户从各种视频网站上下载视频内容,以便于在本地设备上观看,无需依赖互联网连接。自动下载:可以设置Downie 4自动下载指定网站上的视频&#x…

【长亭WAF(雷池)——网站保护之“动态防护”】

在当今的网络安全环境中,Web应用防火墙(WAF)扮演着至关重要的角色。 它们不仅能够防御常见的Web攻击,如SQL注入、跨站脚本攻击(XSS)等,还能够应对日益复杂的网络威胁。 作为业内领先的Web安全解…

全面AI化,定位数据基础设施 —— 鸿翼引领下一代内容管理平台

借助大模型、InWise智能平台与组件化能力,打造全面AI化的企业数据基础设施,鸿翼ECM内容管理平台以与人工智能的深度融合,开启内容管理新篇章。 人工智能已经成为了内容管理的全新主战场,如何将人工智能与内容管理的底层与功能紧密…