ultralytics官方更新 | 添加YOLOv10到ultralytics


💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 


专栏目录:《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40+篇内容,内含各种Head检测头、损失函数Loss、Backbone、Neck、NMS等创新点改进


对YOLOv10感兴趣的同学可以先看YOLOv8,因为改进方式大部分一样,我也会尽快更新相关的教程 

论文地址:YOLOv10: Real-Time End-to-End Object Detection点击即可跳转

官方代码:官方代码仓库点击即可跳转

今天看到YOLOv10已经被添加到了ultralytics的仓库中, 也就是说,以后YOLOv8的代码仓库也可以下载直接运行YOLOv10。预计以后发布的YOLO系列都会被收入到这个仓库中。

 YOLOv10启动脚本供参考:

from ultralytics import YOLOv10 
# Load a model
model = YOLOv10("ultralytics/cfg/models/v10/yolov10n.yaml")
# train
model.train(data='dataset/data.yaml',cache=False,imgsz=640,epochs=100,batch=16,close_mosaic=0,workers=4,device='0',optimizer='SGD', # using SGDamp=False, # close ampproject='runs/train',name='exp',)

YOLOv10创新点回顾:

1. 创新点

无NMS的一致双分配(consistent dual assignments):

YOLOv10提出了一种通过双标签分配而不用非极大值抑制NMS的策略。这种方法结合了一对多和一对一分配策略的优势,提高了效率并保持了性能。

效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design):

轻量化分类头:在不显著影响性能的情况下,减少了计算开销。

空间-通道解耦下采样:解耦空间下采样和通道调整,优化计算成本。

基于秩的块设计:根据各阶段的内在秩适应块设计,减少冗余,提高效率。

大核卷积和部分自注意力PSA:在不显著增加计算成本的情况下,增强了感受野和全局建模能力。

2. 一致双分配策略(Consistent Dual Assignments)

YOLOv10引入了一种新的双分配策略,用于在训练期间同时利用一对多(one-to-many)和一对一(one-to-one)标签分配。这种方法在保持模型高效训练的同时,摆脱了推理过程中对非极大值抑制NMS的依赖。

双标签分配(Dual Label Assignments)

一对多分配:在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。

一对一分配:仅一个预测框被分配给一个真实物体标签,避免了NMS,但由于监督信号较弱,容易导致收敛速度慢和性能欠佳。

双头架构:模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。

3. 一致匹配度量(Consistent Matching Metric)

为了在训练期间保持两个预测头的一致性,提出了一致匹配度量。通过调整匹配度量参数,使得一对一和一对多分配的监督信号一致,减少了训练期间的监督差距,提升了模型的预测质量。

整体效率-精度驱动的模型设计(Holistic Efficiency-Accuracy Driven Model Design)

YOLOv10在模型架构的各个方面进行了全面优化,旨在提升效率和精度。

3.1 效率驱动的模型设计

轻量化分类头(Lightweight Classification Head)

在YOLO系列中,分类头和回归头通常共享相同的架构,但分类任务的计算开销更大。为分类头采用轻量级的架构,包括两个3×3的深度可分离卷积(depthwise separable convolutions)和一个1×1卷积,以减少计算开销。

空间-通道解耦下采样(Spatial-Channel Decoupled Downsampling)

传统的下采样方法同时进行空间和通道的转换,计算成本较高。YOLOv10首先使用逐点卷积(pointwise convolution)调整通道维度,然后使用深度卷积(depthwise convolution)进行空间下采样。这样可以最大限度地保留信息,同时减少计算成本。

3.2 基于秩的块设计(Rank-Guided Block Design)

在YOLO模型中,各阶段通常使用相同的基本构建块,容易导致深层阶段的计算冗余。因此根据各阶段的内在秩(intrinsic rank)调整块设计,减少冗余,采用紧凑的反向块(Compact Inverted Block, CIB)设计,用深度卷积进行空间混合和逐点卷积进行通道混合,提高效率。

3.3 精度驱动的模型设计

大核卷积(Large-Kernel Convolution)

大核卷积的感受野较大,能够更好地捕捉图像中的全局信息。然而,直接在所有阶段使用大核卷积可能会导致小物体特征的污染,并增加高分辨率阶段的I/O开销和延迟。因此,在深层阶段使用大核深度卷积(如7×7)来扩大感受野,增强模型能力,同时使用结构重参数化技术(structural reparameterization)优化训练。

对于小模型规模(如YOLOv10-N/S),大核卷积的使用能够显著提升性能,而对于大模型规模(如YOLOv10-M),其天然较大的感受野使得大核卷积的效果不明显,因此仅在小模型中使用。

部分自注意力(Partial Self-Attention, PSA)

部分自注意力模块通过引入全局建模能力来提升模型性能,同时保持较低的计算开销。

自注意力(self-attention)在视觉任务中因其出色的全局建模能力而被广泛使用,但其计算复杂度和内存占用较高。本文引入PSA模块,通过将特征按通道分成两部分,仅对一部分应用多头自注意力(Multi-Head Self-Attention, MHSA),然后进行融合,增强全局建模能力,降低计算复杂度。

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

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

相关文章

【C++】类和对象(六)

文章目录 二、static成员概念面试题一个题目 三、友元友元函数说明 友元类 四、内部类(了解)概念:注意:特性: 五、匿名对象 书接上回: 【C】类和对象(五)隐式类型转换 二、static成员 01_31 03 12 01 概…

idea项目推送gitee/github

选择需要的项目创建本地Git仓库 添加到暂存区 第一次提交 或者点击这里 写备注并commit 推送远程仓库 填写地址 解决上图警告 右键打开项目,输入 git pull origin master –allow-unrelated-historiesgit push -u origin master -f推送成功 idea项目推送github及克…

怎么用韩语说帮忙更合体,柯桥零基础韩语培训

1. **详细解释:** - **标准写法与音译:** - **돕다**(读作 dop-da):动词“帮助”。 - **도와주다**(读作 do-wa-ju-da):动词“帮忙”,字面意思是“给予帮助”。 - **도움…

PMP证书在国内已经泛滥了,大家怎么看?

目前,越来越多的人获得了PMP证书。自1999年PMP引入中国以来,全国累计PMP考试人数接近60万人次,通过PMP认证的人数约为42万人。虽然这个数据看起来很大,但绝对不能说是过多。 首先,PMP在中国并不普遍。根据美国项目管理…

【源码+文档+调试讲解】灾害应急救援平台

摘 要 灾害应急救援平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来&…

深度学习项目实例(一)—— 实时AI换脸项目

一、前言 人工智能(AI)技术的快速发展为各个领域带来了革命性的变化,其中之一就是人脸识别与图像处理技术。在这之中,AI换脸技术尤其引人注目。这种技术不仅在娱乐行业中得到广泛应用,如电影制作、视频特效等&#xf…

目前公认最好用充电宝!四款高性价比充电宝推荐,一文看懂!

当我们在旅行途中,手机和相机等设备必不可少。长时间使用这些设备,电量很容易耗尽。此时,充电宝就能派上用场,让我们在欣赏美景、记录美好时光的同时,不再担心电量不足。特别在假期出游的时候在我们玩的特别尽兴的时候…

【C++】关于虚函数的理解

深入探索C虚函数:原理、应用与实例分析 一、虚函数的原理二、虚函数的应用三、代码实例分析四、总结 在C面向对象编程的世界里,虚函数(Virtual Function)扮演着至关重要的角色。它不仅实现了多态性这一核心特性,还使得…

红酒与珠宝:璀璨与醇香的奢华交响,双重诱惑难挡

在璀璨的灯光下,红酒与珠宝各自闪耀着迷人的光芒,它们如同夜空中的繁星,交相辉映,共同演绎着奢华的双重诱惑。今天,就让我们一起走进这个充满魅力的世界,感受红酒与珠宝带来的无尽魅力。 首先,让…

基于STM32+ESP8266打造智能家居温湿度监控系统(附源码接线图)

摘要: 本文将介绍如何使用STM32单片机、ESP8266 Wi-Fi模块和Python Flask框架构建一个完整的物联网系统,实现传感器数据采集、无线传输、云端存储及Web可视化展示。 关键词: STM32, ESP8266, 传感器, Flask, 物联网, 云平台, 数据可视化 1. 系统概述 本系统以STM…

Spring底层原理之proxyBeanMenthod实例 动态代理 反射 Bean的拦截

proxyBeanMenthod 假设我们要进行一个系统的二次开发 然后第一次开发我们实用的是XML声明bean 二次开发的时候要用注解 我们如何把bean都加载上来呢 我们首先创建一个全新的配置类 package com.bigdata1421.config;public class SpringConfig32 { } 我们创建一个APP 加载…

全球最快的 JSON 文件查询工具

本文字数:1684;估计阅读时间:5分钟 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 介绍 在 ClickHouse,我们热衷于基准测试和性能优化。所以当我第一次看到 Hacker News 上那篇“查询大…

代码随想录算法训练营day31|134.加油站、135. 分发糖果、406.根据身高重建队列

134.加油站 如下图所示&#xff1a; 当索引一道2的时候&#xff0c;剩余油量的总量13-6 < 0&#xff0c;这个时候说明以索引0为起点不合适&#xff0c;将起点更新为索引3. 两点证明&#xff1a; 1.如果我们从蓝色段中间选一个点开始&#xff0c;是不是最后sumGas就不小于0…

从灵感到成品:使用AI生成博客文章的完整指南

在信息爆炸的时代&#xff0c;每个人都有讲述自己故事的权利和需求。博客作为一种表达方式&#xff0c;不仅能记录个人经历&#xff0c;还能分享知识和观点。然而&#xff0c;许多人在写博客文章时&#xff0c;常常会遇到灵感枯竭、时间不够用或者不知道如何开始等问题。幸运的…

光伏储能系统/安科瑞DTSD1352-CF双向计量表-安科瑞 蒋静

1 长期以来&#xff0c;我国施行居民用电低价政策&#xff0c;居民电价大幅低于供电成本&#xff0c;虽然实施了全天分三时段的阶梯电价政策&#xff0c;但过去近10年中高峰节电的效果却不够明显。从分时用电运作机制来看&#xff0c;居民用电价格的波动幅度不大&#xff0c;但…

华为云鲲鹏架构docker部署2048小游戏

华为云鲲鹏架构docker部署2048小游戏 1. 鲲鹏架构ESC2. 配置docker3. 上传2048镜像4. 删除容器,镜像 1. 鲲鹏架构ESC 2. 配置docker 安装dockeryum -y install docker开机启动 systemctl enable docker启动docker服务 systemctl start docker查询docker的运行版本 docker -v3…

时序分析基本概念介绍——min pulse width 最小脉冲宽度

文章目录 前言一、什么是 min pulse width&#xff1f;二、为什么检查 min pulse width&#xff1f;三、如何设置 min pulse width约束&#xff1f;1. 在sdc里面定义2. library里面定义 四、如何检查 min pulse width&#xff1f;五、如何修复 min pulse width&#xff1f;总结…

docker启动ws-scrcpy和redroid记录

git克隆最新的ws-scrcpy代码 git clone gitgithub.com:NetrisTV/ws-scrcpy.git进入ws-scrcpy目录新建Dockerfile文件&#xff0c;内容如下 FROM node:16-alpine WORKDIR /appRUN npm config set registry http://mirrors.cloud.tencent.com/npm/ RUN npm install -g node-gyp…

攻防世界-Web题目1

目录 cookie 1、题目 2、知识点 3、思路 get_post 1、题目 2、知识点 3、思路 disabled_button 1、题目 2、知识点 3、思路 backup 1、题目 2、知识点 3、思路 cookie 1、题目 2、知识点 cookie&#xff0c;数据包 3、思路 题目提示我们cookie&#xff0c;抓…

【ai】trition:tritonclient.utils.shared_memory 仅支持linux

Can’t find tritonclient.utils.shared_memory on WIN10 #4149yolov4的python客户端 导入以后,windows 的pycharm 就是看不到折腾了很久:SaviorEnv 环境下安装tritonclient[all]也会失败 (base) C:\Users\zhangbin>conda create -n SaviorEnv python=3.8 Collecting pack…