YOLOv10(4):损失(Loss)计算及其检测模型代码部分阅读

YOLOv10(1):初探,训练自己的数据_yolov10 训练-CSDN博客

YOLOv10(2):网络结构及其检测模型代码部分阅读-CSDN博客


目录

1. 写在前面

2. 双标签分配

3. 计算Loss的预备条件

(1)网络输出

(2)Ground Truth

4. Loss的计算


1. 写在前面

        YOLOv10几乎完美继承了YOLOv8的Loss计算方法,不同点就是YOLOv8只需要计算一次的,YOLOv10需要计算两次。究其原因,就是YOLOv10采用了双标签分配策略。

2. 双标签分配

        YOLOv10同样采用了解耦检测头,实现了anchor free的训练和推理策略。 对Decoupled-Head类型的算法基本都有这么一种观念,就是不同任务间,用于分类和定位的Anchor(或称作cell,指分类和回归前的特征图中的一个单元)往往不一致,需要经过对齐。所谓对齐,简单来看就是计算Loss时,将分类与回归所使用的预测Cell进行统一化。

        TAL(Task Align Learning),最早出现在论文Task-aligned One-stage Object Detection中。该论文提供一种思想,即通过构建一种“对齐度量”,来统一分类和回归的Anchor,进而实现最终在推理时,获得一个更高得分的分类框以及更准确的定位框系数。

        更通俗地讲,TAL就是给Feature Map中的每一个Cell(或称作Anchor)分配Ground Truth框。在这种前提下,有的Cell能够分配到Ground Truth框,有的Cell分配不到GT框。根据Feature Map与GT的分配情况,构建用于Loss计算的target_labels、target_bboxes和target_scores。

YOLOv10在对齐时采用了one2one和one2many两种策略。在训练时,同时使用one2one和one2many进行Loss的计算,在推理时,仅使用one2one分支。

3. 计算Loss的预备条件

(1)网络输出

        分析head.py中的v10Detect,确认网络最终输出形式

        v10Detect在执行forward时,如果是training模式,会输出一个字典{"one2many": one2many, "one2one": one2one},如果是export,只输出one2one经过解算的结果。

        v10Detect继承自Detect,one2one与one2many采用了不同的分支。one2one使用了v10Detect的self.cv3。one2many则采用了Detect原有的self.cv2和self.cv3。

        以上,第525行,one2one是一个列表,列表中含有三个元素。

     其中,对应网络输入分辨率是640*640的话,one2one[0]是shape(N, 64+nc, 80, 80),one2one[1]是shape(N, 64+nc, 40, 40),one2one[2]是shape(N, 64+nc, 20, 20)。

one2many的shape与one2one是一样的。

(2)Ground Truth

        在此,Ground Truth是一个字典,包含了用于训练输入的数据和用来计算Loss的标注信息。

GT预读和加载在./ultralytics/models/yolo/train.py中的get_dataloader中定义。重点关注“build_yolo_dataset”和“build_dataloader”两个接口就可以。

在此我们先做一个直接的说明,后续会针对数据的组织形式专门开展一期讲解。

我们在训练时,会生成一个batch数据,这是一个字典,其中包含了如下的信息:

batch[“img”]: 训练图像数据;

batch[“bboxes”]: 标注的边框信息;

batch[“cls”]: 标注的边框对应的类别;

4. Loss的计算

        在前面我们已经知道了v8DetectionLoss中那些成员会参与Loss的计算,此处我们将大致梳理一下流程,后续将对其中比较重要的TAL和bbox_loss专门进行详细的讲解。

        如下为v8DetectionLoss的__call__函数的前半部分,此处的__call__函数效果类似于C++中的仿函数,能够想调用普通函数一样调用类。

        这一部分实际上是做一些准备工作。第218行和第219行是将输入的pred进行分解和变换,分别得到shape(N, 8400, 64)和shape(N, 8400, nc)的tensor,用于后续的TAL对其。注意,此处的8400是针对输入时640*640而言的,具体的,8400 = 80*80 + 40*40 + 20*20。

    第229行做了一个Anchor框架,其中anchor_points是一个shape(8400, 2)的tensor,anchor_points[:, 2]表示一个cell的中心点坐标。stride_tensor是一个shape(8400, 1)的tensor,stride_tensor[:, 1]表示某一cell与原始尺度之间的stride信息。

        如下是v8DetectionLoss的后半部分,其中涉及到了比较精髓的TAL和bbox_loss操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-最小外接圆cv::minEnclosingCircle

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 函数原型 void minEnclosingCircle(InputArray points, Point2f& center, float& radius); 参数说明 InputArray类型的…

Codeforces Round 950 (Div. 3) 个人题解 (A~F1)

Codeforces Round 950 (Div. 3)个人题解(A~F1) 题解火车头 #define _CRT_SECURE_NO_WARNINGS 1#include <iostream> #include <vector> #include <algorithm> #include <set> #include <unordered_map> #include <cstring> #include <…

聚观早报 | 东风奕派eπ008将上市;苹果Vision Pro发布会

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 6月3日消息 东风奕派eπ008将上市 苹果Vision Pro发布会 特斯拉Model 3高性能版开售 小米14推送全新澎湃OS系统 …

ubuntu中彻底删除mysql (配置文件删除可选)

ubuntu中彻底删除mysql (配置文件删除可选) 对于此类即搜即用的分享文章&#xff0c;也不过多赘述&#xff0c;直接依次按照下面的操作执行即可&#xff1a; 一、删除 mysql 数据文件 sudo rm /var/lib/mysql/ -R二、删除 mysql 配置文件 sudo rm /etc/mysql/ -R三、查看 m…

基于 Spring Boot 博客系统开发(十三)

基于 Spring Boot 博客系统开发&#xff08;十三&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;十二&#xff09;&…

号称超级增程电动,领克07EM-P带来技术变革?

近年来&#xff0c;自主品牌在新能源汽车领域百花齐放&#xff0c;尤其是在混合动力市场上&#xff0c;比亚迪的DM-i技术引领了风潮&#xff0c;秦L的一经亮相&#xff0c;整个车圈都沸腾了&#xff0c;“超级混动”的概念深入人心。 各大自主品牌都有了自己的混动平台和技术。…

前端加载,渲染十万条数据(性能优化)

1.场景 项目中某个弹窗展示设备信息卡片,返回的设备信息很多,页面样式有很花哨,导致渲染极其缓慢 f12,查看性能,这里可以看到页面加载在哪一步分耗时最长,针对性进行优化(图为举例) 2.解决思路 采用虚拟列表的方式,滚动时,dom元素数量不变,只改变展示的数据 结构描述: 父盒…

基于飞腾 D2000 8 核+ 32G DDR+板载 6 千兆电口+ 4 千兆光口高性能网络安全主板

第一章、产品介绍 1.1 产品概述 XM-D2000GW是一款基于飞腾 D2000 8 核X100 桥片高性能网络安全主板&#xff0c;D2000 为飞腾首款支持 8 核桌面平 台处理器&#xff0c;支持双通道 DDR4-2666 内存&#xff0c;芯片内置国密 SM2/SM3/SM4/SM9 加速引擎&#xff0c;支持单精度、双…

华为ACL实验

实验拓扑&#xff1a; 实验目的&#xff1a;使用标准ACL控制某些数据流量&#xff0c;本例中控制PC1访问PC2且不让PC1访问到服务器。 实验思路&#xff1a;依据拓扑的要求&#xff0c;配置完终端设备后需要在交换机上划分两个vlan&#xff0c;分别代表两个企业的部门&#xff…

网络协议二

一、套接字Socket 基于 TCP UDP 协议的 Socket 编程&#xff0c;在讲 TCP 和 UDP 协议的时候&#xff0c;我们分客户端和服务端&#xff0c;在写程序的时候&#xff0c;我们也同样这样分。 在网络层&#xff0c;Socket 函数需要指定到底是 IPv4 还是 IPv6&#xff0c;分别对应设…

ICLR24大模型提示(1/11) | BadChain:大型语言模型的后门思维链提示

【摘要】大型语言模型 (LLM) 已证明可从思路链 (COT) 提示中获益&#xff0c;尤其是在处理需要系统推理过程的任务时。另一方面&#xff0c;COT 提示也以后门攻击的形式带来新的漏洞&#xff0c;其中模型将在推理期间在特定的后门触发条件下输出非预期的恶意内容。发起后门攻击…

k8s牛客面经篇

k8s的pod版块: k8s的网络版块: k8s的deployment版块: k8s的service版块: k8s的探针板块: k8s的控制调度板块: k8s的日志监控板块: k8s的流量转发板块: k8s的宏观版块:

Meta的开源力作:Lexical框架,富文本的未来

引言 Lexical 是一个由 Facebook&#xff08;现在称为 Meta&#xff09;开源的可扩展 JavaScript Web 文本编辑器框架。 这个框架特别强调了三个核心特性&#xff1a;可靠性、可访问性以及高性能。 旨在为开发者创造最优的开发体验。 以下是 Lexical 框架的几个关键特点和能…

广东肇庆mes系统服务商 盈致科技

广东肇庆MES系统服务商盈致科技为企业提供专业的MES系统解决方案&#xff0c;帮助企业实现生产过程的数字化管理和优化。盈致科技的服务包括但不限于以下方面&#xff1a;MES系统定制开发&#xff1a;盈致科技可以根据企业的实际需求定制开发MES系统&#xff0c;满足企业特定的…

OJ题讲解——栈与队列

目录 一.有效的括号 1.问题描述 2.问题详解 3.代码 二.用队列实现栈 1.问题描述 2.问题详解 3.代码 三.用栈实现队列 1.问题描述 2.问题详解 3.代码 四.设计循环队列 1.问题描述 2.问题详解 3.代码 一.有效的括号 1.问题描述 OJ链接&#xff1a;. - 力扣&…

归并排序(分治)

归并排序 概念介绍原理解释&#xff1a;案例步骤&#xff1a;稳定性&#xff1a;画图理解如下 代码实现 概念介绍 归并排序&#xff08;Merge Sort&#xff09;是一种经典的排序算法&#xff0c;基于分治的思想&#xff0c;它将待排序数组分成两个子数组&#xff0c;分别排序&…

基于Python+django购物商城系统设计和实现(源码+LW+部署文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

iPhone的5G设置怎么更改吗?设置好这些能够优化电池的使用寿命

随着5G技术的普及&#xff0c;iPhone用户现在可以享受到更快的网络速度&#xff0c;但这同时也带来了一个问题&#xff1a;如何在使用5G和保持电池寿命之间找到平衡&#xff1f;苹果公司通过引入“5G Auto”设置&#xff0c;为用户提供了一个智能的解决方案&#xff0c;但用户也…

3D模型轻量化:无损精度和细节,轻量化处理3D模型的云原生工具

随着科技的不断发展&#xff0c;三维模型在各个领域的应用愈加广泛。然而&#xff0c;传统的CAD工具生成的模型往往包含大量的面片和数据&#xff0c;这在进行模型查看、分享、协作以及在线展示时带来了诸多不便。模型文件过大不仅导致传输速度慢&#xff0c;还可能因为文件格式…

移远通信携手高通,共启智能出行新时代

5月30-31日&#xff0c;2024高通汽车技术与合作峰会在无锡国际会议中心举行。作为高通“汽车朋友圈”的重要一员&#xff0c;移远通信应邀参会&#xff0c;展示了数十款基于高通平台打造的车载蜂窝通信模组、C-V2X模组、智能座舱模组、Wi-Fi/蓝牙模组&#xff0c;适配高通多个平…