一、项目背景与需求

视频全文介绍

【图像算法 - 10】进阶入门:改进 YOLO11 安全帽检测的关键参数与场景适配

今天我们使用深度学习来训练一个安全帽检测系统,基于YOLO11的安全帽检测系统。我们使用了两万张图片的数据集训练了这次的基于YOLO11的安全帽检测模型,然后在推理的基础上继续使用PyQt设计了可视化的操作界面。

在这里插入图片描述

二、数据集

此次训练使用的安全帽检测数据集,有三类,即安全帽(未佩戴)、未带安全帽、安全帽(佩戴)。然后下面是数据集的统计分析图。一共有20000余安全帽(未佩戴)、近12000的未带安全帽目标、45000安全帽目标,标签的中心坐标分布比较均匀,居中偏下较多,同时都不靠近边缘;目标,即三项目标的长宽同样比较集中,属于小目标的范围(小于图像长宽的0.2倍)。

labelme数据标注保姆级教程:从安装到格式转换全流程,附常见问题避坑指南(含视频讲解)

在这里插入图片描述

在这里插入图片描述

数据参数


# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: C:\Users\xxx\datasets # dataset root dir
train: helmet_train # train images (relative to 'path') 4 images
val: helmet_train # val images (relative to 'path') 4 images
test: # test images (optional)
## Classes
names:0: helmet_only1: head2: helmet

三、网络选择

这里我们选择的是yolo11s的网络结构,其参数如下表所示:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license# Ultralytics YOLO11 object detection model with P3/8 - P5/32 outputs
# Model docs: https://docs.ultralytics.com/models/yolo11
# Task docs: https://docs.ultralytics.com/tasks/detect# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'# [depth, width, max_channels]n: [0.50, 0.25, 1024] # summary: 181 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPss: [0.50, 0.50, 1024] # summary: 181 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPsm: [0.50, 1.00, 512] # summary: 231 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPsl: [1.00, 1.00, 512] # summary: 357 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPsx: [1.00, 1.50, 512] # summary: 357 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs# YOLO11n backbone
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4- [-1, 2, C3k2, [256, False, 0.25]]- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8- [-1, 2, C3k2, [512, False, 0.25]]- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16- [-1, 2, C3k2, [512, True]]- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32- [-1, 2, C3k2, [1024, True]]- [-1, 1, SPPF, [1024, 5]] # 9- [-1, 2, C2PSA, [1024]] # 10# YOLO11n head
head:- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [[-1, 6], 1, Concat, [1]] # cat backbone P4- [-1, 2, C3k2, [512, False]] # 13- [-1, 1, nn.Upsample, [None, 2, "nearest"]]- [[-1, 4], 1, Concat, [1]] # cat backbone P3- [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)- [-1, 1, Conv, [256, 3, 2]]- [[-1, 13], 1, Concat, [1]] # cat head P4- [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)- [-1, 1, Conv, [512, 3, 2]]- [[-1, 10], 1, Concat, [1]] # cat head P5- [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)- [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)

四、模型训练

环境搭建

【图像算法 - 01】保姆级深度学习环境搭建入门指南:硬件选型 + CUDA/cuDNN/Miniconda/PyTorch/Pycharm 安装全流程(附版本匹配秘籍+文末有视频讲解)

训练指令

from ultralytics import YOLO# Load a model
#model = YOLO("yolo11s.yaml")  # build a new model from YAML
#model = YOLO("yolo11s.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11s.yaml").load("yolo11s.pt")  # build from YAML and transfer weights# Train the model
results = model.train(data="helmet.yaml", epochs=100, imgsz=1280)

训练结果

本次训练使用的预训练模型是YOLO11s.pt(COCO数据集训练所得),epochs设置为100,batch设置为8

,imgsz设置为1280,其他均采用默认参数,训练时间大概4小时。

在这里插入图片描述

在这里插入图片描述

五、可视化模型推理

在这里插入图片描述

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

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

相关文章

【C 学习】04.1-类型转换浮点数

“知道做不到就是不知道”一、类型转换1.自动类型转换:当运算符(常见、-、*、/、%)两边出现不一致的类型时,编译器会自动转换成较大的(范围更大)类型。从小到大:char-short-int-long-long long;…

基于反事实对比学习的鲁棒图像表征|文献速递-医学影像算法文献分享

Title题目Robust image representations with counterfactual contrastive learning基于反事实对比学习的鲁棒图像表征01文献速递介绍医学影像中的对比学习已成为利用未标记数据的有效策略。这种自监督学习方法已被证明能显著提升模型跨领域偏移的泛化能力,并减少训…

机器学习(5):朴素贝叶斯分类算法

贝叶斯的核心思想就是,谁的概率高就归为哪一类。贝叶斯推论P(A):先验概率。即在B事件发生之前,我们对A事件概率的一个判断。P(A|B):后验概率。即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B):可能性函数。…

Docker 容器内进行 frp 内网穿透

开始之前需要有一台可以进行公网访问的服务器 下载安装 frp 这个直接到 github 官网就可以下载了 点击Releases 就可以查看到可以下载的源,根据自己电脑的型号进行选择就好了。 linux服务器上下载 如果是在linux的服务器上的话可以直接通过wget进行下载 例如&a…

复制网页文字到Word、WPS文字?选中后直接拖放

要把网页、PDF或其他应用中的文字内容复制到Word、WPS文字、记事本等,不一定要先复制、再粘贴,也可以选中文字后直接拖动到目标位置即可。多次操作,可以把窗口并排再拖动。如果你经常需要在不同应用之间引用文字,不妨试一试。操作…

Starrocks中的 Query Profile以及explain analyze及trace命令中的区别

背景 本文基于Starrocks 3.5.5 现有公司因为业务的不同,可能会更加关系单个SQL 的RT,因为如果一个SQL的RT比较大的话,影响的就是这个业务,从而影响收入,所以对于这方面我们就比较关心, 而最近在基于Starro…

网络 —— 笔记本(主机)、主机虚拟机(Windows、Ubuntu)、手机(笔记本热点),三者进行相互ping通

背景介绍最近在笔记本电脑上的虚拟机(Ubuntu、Windows Server搭配)上部署了"WD"开源手游服务器(旧版本),手机连接上了笔记本电脑开启的WIFI热点,同时手机上安装了"WD"手游客户端。于是首先得保证网络相互畅通才能玩游戏,…

裸露土堆识别准确率↑32%:陌讯多模态融合算法在生态监测的实战解析

原创声明本文为原创技术解析文章,涉及技术参数及架构描述均参考《陌讯技术白皮书》,禁止任何形式的转载与抄袭。一、行业痛点:裸露土堆识别的现实挑战在生态环境保护、建筑工地监管等场景中,裸露土堆的精准识别是遏制扬尘污染、防…

网站从HTTP升级到HTTPS网址方法

将网站从HTTP升级到HTTPS涉及几个关键步骤,以确保安全连接以及用户和搜索引擎的平稳过渡。获取并安装SSL/TLS证书:1、从CA机构授权提供商Gworg获取SSL/TLS证书。选项包括域名验证(DV)、组织验证(OV)和扩展验证(EV)证书,验证严格度各不相同&am…

WaitForSingleObject 函数参数影响及信号处理分析

一、第二个参数(超时时间)的影响 DWORD result WaitForSingleObject(hHandle, 1000);中的第二个参数1000表示等待超时时间为1000毫秒(1秒),其核心影响如下: 1. 函数行为控制 立即返回:若对象已…

dbeaver导入数据及配置讲解

导入数据教程: 前提.csv文件:且只能导入一个sheet点击下一步选中导入的.csv文件对应好数据字段和表字段,感觉不需要导入的可以skip配置一下,下面有介绍:以下为你详细解析这些数据加载相关功能的含义与作用:…

JAVA学习笔记 自增与自减的使用-006

目录 1 基本概述 2 自增与自减的用法 2.1单独使用 2.2 参与运算 3 思考与练习 3.1 基础题 3.2 中等题 3.3 进阶题 4 总结 源计划:我从来不认为自己的成功过程有多心酸,只是心中不惧失败,能够承受别人不能接受的失望而已!…

从LCM到SomeIP,再到DDS:技术演进与工作原理剖析

文章目录一、LCM:轻量级通信与编组库工作原理C 代码示例局限性二、SomeIP:面向服务的可扩展中间件工作原理C 代码示例优势与特点三、DDS:数据分发服务工作原理C 代码示例优势与应用场景四、技术演进总结在分布式系统通信领域,技术…

Redis里面什么是sdshdr,可以详细介绍一下吗?

文章目录为什么 Redis 不直接使用 C 语言的字符串?sdshdr 的结构sdshdr 的不同类型sdshdr 带来的优势总结我们来详细解析一下 Redis 的核心数据结构之一: sdshdr。sdshdr 是 “Simple Dynamic String header” 的缩写,意为“简单动态字符串头…

RocketMq如何保证消息的顺序性

文章目录1.顺序消息的全流程1.1 发送阶段:消息分区1.2.存储阶段:顺序写入1.3.消费阶段:串行消费2.第三把锁有什么用?3.顺序消费存在的问题和Kafka只支持同一个Partition内消息的顺序性一样,RocketMQ中也提供了基于队列(分区)的顺…

zabbix平台无法删除已停用主机的处理案例

在zabbix平台上删除已停用的主机,提示“SQL描述式执行已失败: "DELETE FROM items WHERE (itemid IN (.....)”,无法删除,本文为处理情况。一、问题现象在zabbix平台上删除已停用的主机,提示“SQL描述式执行已失败…

【计算机网络】6应用层

1.网络应用模型 特性 客户/服务器模型(Client-Server, C/S) 对等模型(Peer-to-Peer, P2P) 中心化 是(依赖服务器) 否(去中心化) 角色特点 服务器 客户机 无中心服务器 提供计算服务 请求计算服务 每个节点(Peer)既是客户机也是服务器 永久在线 间歇接入网络 节点间…

基于 Spring Boot + Vue 实现人脸采集功能全流程

一、技术栈与依赖引入 后端依赖 (pom.xml) <!-- 百度AI SDK --> <dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.16.19</version><exclusions><exclusion><grou…

《Python基础》第3期:使用PyCharm编写Hello World

我们写文档大多用 Word、写表格大多用 Excel、写幻灯片大多用 PPT。 写代码也需要一个软件作为编辑器&#xff08;传说的大神用记事本写代码纯属玩笑了&#xff0c;越是大神越追求效率&#xff0c;用的软件功能越强&#xff09;。 Python 现在已经有了非常多的代码编辑器&#…

我的第一个开源项目:排序算法的多种实现方式

以 排序算法 为例&#xff0c;展示如何在 Python 中进行不同实现方式的对比项目概述本项目旨在通过 Python 实现几种经典的排序算法&#xff0c;并通过性能对比、代码注释和优化手段&#xff0c;为开源社区提供参考。选择排序、冒泡排序、快速排序和归并排序作为主要算法&#…