YOLOv11入门到入土使用教程(含结构图)
一、简介
YOLOv11是Ultralytics公司在之前的YOLO版本上推出的最新一代实时目标检测器,支持目标检测、追踪、实力分割、图像分类和姿态估计等任务。官方代码:ultralytics/ultralytics:ultralytics YOLO11 🚀 (github.com)https://github.com/ultralytics/ultralytics
二、使用教程
2.1 准备代码
首先,点击上方链接进入YOLOv11的GitHub仓库,按照图示流程下载打包好的YOLOv11代码与预训练权重文件到本地。
下载完成后解压, 使用PyCharm(或VsCode等IDE软件)打开,并将下载的预训练权重拷贝到解压的工程目录下,下文以PyCharm为例。
2.2 准备数据集
Ultralytics版本的YOLO所需格式的数据集标签为txt格式的文本文件,文本文件中保存的标签信息分别为:类别序号、中心点x/y坐标、标注框的归一化信息,每一行对应一个对象。图像中有几个标注的对象就有几行信息。
自制数据集标注教程可看此篇文章:深度学习工具|LabelImg(标注工具)的安装与使用教程_labelimg安装-CSDN博客文章浏览阅读8.7k次,点赞15次,收藏66次。软件界面上包含了常用的打开文件、打开文件夹、更改保存路径、下一张/上一张图片、创建标注的格式、创建标注框等按钮,右侧显示从文件夹导入的文件列表、标签等信息。使用时可以进行如下设置,便于快速标注。_labelimg安装https://blog.csdn.net/StopAndGoyyy/article/details/139906637 如果没有自己的数据集,本文提供一个小型数据集(摘自SIMD公共数据集)以供测试代码,包含24张训练集以及20张测试集,约17.7MB,百度云链接:https://pan.baidu.com/s/1sCivMDjfAmUZK1J2P2_Dtg?pwd=1234https://pan.baidu.com/s/1sCivMDjfAmUZK1J2P2_Dtg?pwd=1234 下载完成后将提供的datasets文件夹解压并复制到工程路径下。
创建 data.yaml文件保存数据集的相关信息,如果使用本文提供的数据集可使用以下代码:
# dataset path
train: ./images/train
val: ./images/test
test: ./images/test# number of classes
nc: 15# class names
names: ['car', 'Truck', 'Van', 'Long Vehicle','Bus', 'Airliner', 'Propeller Aircraft', 'Trainer Aircraft', 'Chartered Aircraft', 'Fighter Aircraft',\'Others', 'Stair Truck', 'Pushback Truck', 'Helicopter', 'Boat']
2.3 模型训练
创建train.py文件,依次填入以下信息。epochs=2表示只训练两轮,通常设置为100-300之间,此处仅测试两轮。batch=1表示每批次仅训练一张图片,可按显存大小调整batchsize,一般24g卡可设置为16-64。
from ultralytics.models import YOLO
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'if __name__ == '__main__':model = YOLO(model='ultralytics/cfg/models/11/yolo11.yaml')# model.load('yolov8n.pt')model.train(data='./data.yaml', epochs=2, batch=1, device='0', imgsz=640, workers=2, cache=False,amp=True, mosaic=False, project='runs/train', name='exp')
选择安装好的torch环境,本文无torch环境的安装教程,可按照其他博主推文或视频安装torch环境。
待软件控制台打印如下信息即为运行成功。
训练完成后在runs/train.py文件夹下保存有训练好的权重及相关训练信息。
2.4 模型验证
在工程下创建val.py文件,填入刚才训练好的权重路径及相关信息。
运行即可获得该权重针对不同目标的性能指标。本文只测试2个epochs,且数据集较小,可能无相关信息。
正常信息如下图:
2.5 模型预测
创建detect.py文件,填入训练好的权重路径及要检测的图片信息。
运行即可开始检测,本文训练次数较少,可能无法检测到目标,如图左。可通过使用完整数据集进行训练,增大epochs提高检测准确率。正常检测图片如图右。
至此,模型使用教程结束。
三、模型分析
YOLOv11的结构如下,在YOLOv8的基础上将C2f替换为C3K2模块,更改C3k2模块中子模块的重复次数,并在SPPF层之后增加C2PSA模块,其他结构改动较小(检测头增加两个DWConv卷积)。
其中YOLOv11网络及主要模块的可视化化结构如下图。
C3K2模块存在两种结构,将其中的C3k参数设置为False时等于C2f模块。
class C3k2(C2f):"""Faster Implementation of CSP Bottleneck with 2 convolutions."""def __init__(self, c1, c2, n=1, c3k=False, e=0.5, g=1, shortcut=True):"""Initializes the C3k2 module, a faster CSP Bottleneck with 2 convolutions and optional C3k blocks."""super().__init__(c1, c2, n, shortcut, g, e)self.m = nn.ModuleList(C3k(self.c, self.c, 2, shortcut, g) if c3k else Bottleneck(self.c, self.c, shortcut, g) for _ in range(n))
C3k模块与C3模块区别为其中的BottleNeck个数,C3k为两个BottleNeck,C3默认1个,并按照模型缩放因子及重复个数变化。
C2PSA模块与C2f模块相似,结构如下:
四、博主自研模型(广告)
上文是YOLOv11的使用教程及模型分析,下文是博主的一点广告。如果你觉得YOLO日益频繁的更新频率太快或者使用人数太多,可以考虑博主的自研模型作为Baseline(2024/10/30日之前群内更新),使用人数更少,相对好发文,且在SIMD数据集上拥有与YOLOv11相差不多的性能,欢迎入群交流。后面本群将以此模型作为基线模型进行更新,结合今年顶刊定会模块,进行二创三创,并在SIMD数据集上进行测试调整好,预计每周都会更新(每月 四更,纯自研模块更新时间可能久一些),以下是测试结果图和我的QQ二维码。
此篇完
相关文章:
YOLOv11入门到入土使用教程(含结构图)
一、简介 YOLOv11是Ultralytics公司在之前的YOLO版本上推出的最新一代实时目标检测器,支持目标检测、追踪、实力分割、图像分类和姿态估计等任务。官方代码:ultralytics/ultralytics:ultralytics YOLO11 🚀 (github.com)https://g…...
python 爬虫抓取百度热搜
实现思路: 第1步、在百度热搜页获取热搜元素 元素类名为category-wrap_iQLoo 即我们只需要获取类名category-wrap_为前缀的元素 第2步、编写python脚本实现爬虫 import requests from bs4 import BeautifulSoupurl https://top.baidu.com/board?tabrealtime he…...
3.1 > Linux文件管理(基础版)
Linux 的命名规则 相对于其他操作系统(如 Windows )来说,Linux 的命名规则并没有那么多条条框框,还算是比较自由的。在 Linux 中,它的命名规则有如下几点要求: 首先是大小写敏感:例如在 Linux…...
CTFHUB技能树之文件上传——MIME绕过
开启靶场,打开链接: 直接指明是MIME验证 新建04MIME.php文件,内容如下: <?php echo "Ciallo~(∠・ω< )⌒★";eval($_POST[pass]);?> (这里加了点表情,加带点私货&#x…...
4种鼓励创业创新的方法
随着市场趋于饱和,许多企业,尤其是初创企业,很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新,从员工到品牌皆如此。 那么究竟如何…...
C#中的LINQ之美:优雅的数据查询与操作
LINQ(Language Integrated Query,语言集成查询)是C#中一个强大的工具,它将查询功能直接融入到语言中,使开发者能够以一种更直观、更接近自然语言的方式来操作数据。LINQ不仅能极大地提高开发效率,而且让代码…...
深入浅出:深度学习模型部署全流程详解
博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾: 【论文精读】PSAD:小样本部件分割揭示工业异常检测的合成逻辑每日一言🌼: 生活要有所期待, 否则就如同罩在…...
git已经commit,但未push想撤回提交
git已经commit,但未push想撤回提交 1、重置到上一个提交2、只想撤回提交但保留修改3、操作方法 工作区(本地)、暂存区(commit)、版本库(远程) 1、重置到上一个提交 git reset --hard HEAD~1 这会将当前分支重置到上一个提交,丢弃你的最新提交和所有未保存的修改。 …...
SSL VPN调试思路及配置指南
一、概述 本指南旨在详细阐述外部人员通过SSL VPN访问内部资源的调试过程与配置步骤。SSL VPN被单臂部署在核心交换机上,并通过外网防火墙将SSL VPN的443端口映射至外部网络,以实现安全的远程访问。 二、配置步骤 系统管理 网络设置: 配置接…...
多租户架构的全景分析(基本概念、实现策略、资源管理和隔离、数据安全与隔离、性能优化、扩展性与升级、案例研究)
文章目录 1. 多租户的基本概念2. 多租户的实现策略2.1 独立数据库模式2.2 共享数据库-独立Schema模式2.3 共享数据库-共享Schema模式 3. 资源管理和隔离4. 数据安全与隔离5. 性能优化6. 扩展性与升级7. 案例研究总结 多租户架构在云计算和SaaS应用中越来越流行,因为…...
TDengine数据库整合MyBatis实现SpringBoot项目CRUD
TDengine数据库整合MyBatis实现SpringBoot项目CRUD 官网: https://docs.taosdata.com/引入依赖 <!-- mybatis版本必须与druid版本兼容,否则无法创建DataSource --><dependency><groupId>com.alibaba</groupId><artifactId&…...
1493. 删除一个元素以后全为1的最长子数组 - 题解
> Problem: 1493. 删掉一个元素以后全为 1 的最长子数组 1493. 删除一个元素以后全为1的最长子数组 - 题解 问题描述 给定一个二进制数组 nums,你需要从中删除一个元素。请你在删掉元素后返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组&…...
密钥管理方法DUKPT的OpenSSL代码实现Demo
目录 1 DUKPT简介 2 基本概念 2.1 BDK 2.2 KSN 2.3 IPEK 2.4 FK 2.5 TK 3 工作流程 3.1 密钥注入过程 3.2 交易过程 3.3 BDK派生IPEK过程 3.4 IPEK计算FK过程 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 5 在线工具 6 标准下载 1 DUKPT简介 DUKPT&a…...
计算机视觉中的坐标变换
1.概述 高级驾驶辅助系统(ADAS)领域,存在多种常用的坐标系:LiDAR 坐标系、车辆坐标系、相机坐标系、图像坐标系等。因为和这些坐标系频繁打交道,本文对点的旋转与坐标系旋转等变换给出直观推导与说明。 2.坐标点平移…...
C++——NetWork
1.network.h #include <iostream> #include <winsock2.h> #include <cstring>class NetWork {int type; // 通信协议类型int sock_fd; // socket 描述符sockaddr_in addr; // 通信地址int addrlen; // 通信地址字节数bool issvr; …...
iOS -- 代码优化
目录 1. filter 优化2. return 优化案例1案例2 3. for循环优化案例1案例2 4. 枚举 优化5. 未完待续…… 1. filter 优化 原代码 if var vcs vcs {for vc in vcs {if vc is XXLoginViewController {if let index vcs.firstIndex(of: vc) {vcs.remove(at: index)}} }修改后 v…...
docker配置普通用户访问
文章目录 🌕方法一:让所有用户都可以使用docker🌙创建docker用户组🌙把当前用户加入docker用户组🌙单独把某个用户加入docker用户组🌙更新激活docker用户组🌙验证不需要sudo执行docker命令&…...
php后端学习,Java转php
遇到前后端跨域 php解决跨域问题可以加上下面的代码: header(“Access-Control-Allow-Origin:*”); 并且查看自己的数据库信息是否连接成功。 从Java转php 个人感受php跟偏向前端, 写后端逻辑时没有像java又springboot工具方便。 但是和前端联调很方便…...
Elasticsearch 中管道介绍
Elasticsearch 中管道 文章目录 Elasticsearch 中管道1、管道( Ingest Pipeline)1.**管道描述**2.**处理器(Processors)**(1)**`attachment`处理器**(2)**`remove`处理器**3.**整体流程**4.**应用场景**示例:如何使用该管道总结2、如何设置`attachment`处理器取出`指定…...
将jinjia2后端传到前端的字典数据转化为json
后端代码 from flask import Flask, render_template, jsonifyapp Flask(__name__)app.route(/) def index():data {key: value, number: 123}return render_template(index.html, datadata)if __name__ __main__:app.run(debugTrue) 前端代码 使用tojson过滤器即可 <!…...
Linux中如何理解一切皆文件
根据之前的学习我们会有一些少许的疑惑,我们的stdin ,stdout,stderr访问的是键盘显示器,然而键盘显示器等他们都有一个共同的特点就是他们都是外设,那么这些外设是怎么被看成是文件的呢? 看图可以知道硬件的…...
【贪心算法】(第十一篇)
目录 坏了的计算器(medium) 题目解析 讲解算法原理 编写代码 合并区间(medium) 题目解析 讲解算法原理 编写代码 坏了的计算器(medium) 题目解析 1.题目链接:. - 力扣(Leet…...
React(五) 受控组件和非受控组件; 获取表单元素的值。高阶组件(重点),Portals; Fragment组件;严格模式StrictMode
文章目录 一、受控组件1. 什么是受控组件2. 收集input框内容3. 收集checkBox的值4. 下拉框select总结 二、非受控组件三、高阶组件1. 高阶组件的概念 (回顾高阶函数)2. 高阶组件应用:注入props(1) 高阶组件给---函数式组件注入props(2) 高阶组件给---类组件注入prop…...
深入解析 Jenkins 自动化任务链:三大方法实现任务间依赖与状态控制
文章目录 前言1. 使用 “Build Trigger”(构建触发器)2. 使用 Jenkins Pipeline 实现任务触发3. 使用 Jenkins 的 “Parameterized Trigger Plugin” 插件例子1:任务 A 成功后自动执行任务 B例子2:任务 A 成功后自动执行 Pipeline…...
无人机飞手执照培训为什么需要脱产学习?
无人机飞手执照培训需要脱产学习的原因主要基于以下几个方面: 一、知识体系的系统性与复杂性 无人机飞手培训涵盖的内容广泛且深入,包括无人机基础知识、飞行原理、气象学、法律法规等多个方面。这些知识体系相互关联,需要学员进行系统的学…...
PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程
目录 一、pgcrypto 简介1.1 安装 pgcrypto 扩展1.2 pgcrypto 包含的函数 二、用法①:对称加密(使用 AES、Blowfish 算法)2.1 密钥2.2 密钥偏移量 三、用法②:PGP加解密3.1 什么是PGP算法?3.2 使用 GPG 生成密钥对3.3 列…...
uniapp使用webView打开的网页有缓存如何解决(APP,微信小程序)
1、给webView的url增加时间戳 this.webviewUrl ${url}?t${new Date().getTime()}; // 添加时间戳 2、在nginx服务器上添加响应头,告诉浏览器不可以使用缓存 location / {root /opt/webs/lcdp-client/dist;index index.html index.htm;try_files $uri $uri/ /…...
HarmonyOS 模块化设计
1.HarmonyOS 模块化设计 模块化设计文档 应用程序包开发与使用文档 1.1. 概述 组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,HarmonyOs组件化的使用,有利于模块之间的解…...
解决docker拉取readeck镜像报Error response from daemon: toomanyrequests问题
readeck 是一个内容中心,目前已支持中文翻译 这是本地化部署后的效果: 原命令为: docker run --rm -ti -p 8000:8000 -v readeck-data:/readeck codeberg.org/readeck/readeck:latest Unable to find image codeberg.org/readeck/readeck:la…...
duilib的应用 在双屏异分辨率的显示器上 运行显示不出来
背景:win11,duilib应用,双显示器,两台分辨率相同,分别设置不同的缩放以后,应用运行以后,程序闪一下消失或者程序还在,但是UI显示不出来。 原因 窗口风格设置不合理,所以…...
wordpress中文插件下载/网站建设服务
ip 是个指令喔!并不是那个 TCP/IP 的 IP 啦!这个 ip 指令的功能可多了!基本上,他就是整合了 ifconfig 与 route 这两个指令啰~不过, ip 可以达成的功能却又多更多!真是个相当厉害的指令。如果你…...
玩弄已婚熟妇做爰网站/网络营销有哪些例子
C#自定义Winform无边框窗体 在实际项目中,WinForm窗体或者控件不能满足要求,所以就需要自己设计窗体等,当然设计界面可以用的东西很多,例如WPF、或者一些第三方的库等。本例中将采用WinForm设计一个扁平美观的窗体。 上一篇中我们…...
php做的购物网站代码/个人怎么做百度竞价
来源:网络之前的一个同事,通过做假的离职证明和工资流水就进了一个大公司,而且工资从15k一下子到了24k,真的是撑死胆大的,饿死胆小的。有网友则表示,至少人家面试是真的,说明能力还是可以的&…...
个人网站建设策划书/怎么做一个网页
以下内容均为网络上整理的资料 一.链接是什么? 我们在这里可以去引用csapp 的定义 : 链接(linking)是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行。 了解…...
网站建设专家排名/可以免费发广告的网站
利用ctrlEnd可以快速移动到最后当前列最后一行,无论中间是否有空行。 利用ctrlshiftend可以快速选中最后一列的最后一行,无论中间是否有空格。 利用ctrlg,输入定位区域,也可以实现任何一个区域的选中,比如输入a2:a20000,可以快速选…...
江西企业 网站建设/竞价广告是什么意思
由于最近在分析 Python 写成的项目的代码,但是由于项目庞大、设计函数繁多、调用关系复杂,往往单纯地依靠肉眼和注释等方式去记录或者是使用 Pycharm 等编译 工具 去动态的调试在我看来都不能满足我对整个项目运行过程清楚理解的需要,因此就需…...