yolov5 损失函数

news2024/12/27 11:27:27

yolov5有三个损失函数分别是回归损失、置信度损失、分类损失

回归损失用的是CIOU loss
置信度和分类损失用的是BCE loss

(1)对比L2损失,Iou和GIou具有尺度不变性,不会说输入的框子大loss就越大。
(2)对比IOU损失,L2和Giou具有偏离趋势度量的能力,当IOU=0时,交和不交的损失是一样的,L2和GIOU就不会这样。

GIOU,当两个框子是左右重合时就和IOU一样了。
在这里插入图片描述
DIOU,当两个框子互相包含时,会有偏离趋势的loss能力,同样也具有尺度不变性。

CIOU,在DIOU的基础上,增加了宽高比的惩罚项。当预测边框和真是边框的中心点重合时,DIOU退化成了传统IOU,综合了IOU的面积损失 、和DIOU的中心点损失和自身宽高比损失三种优势。

在这里插入图片描述
在这里插入图片描述

yolov5中通过mask掩码来计算损失
所有的预测框都需要计算置信度损失,但是mask为true和false的预测框置信度计算方式 不一样,当mask掩码中最用位置为true的预测框才需要计算分类和回归损失。

如何得到mask?
(1)根据标注文件解析出GT框子的中心坐标和宽高


在这里插入图片描述

yolov5网络原生推理出来的为三维的tensorr
[4,3,80,80,8]
[4,3,40,40,8]
[4,3,20,20,8]

pytorch中
nn.parameter参与梯度训练
buffer不参数梯度训练
还可以通过model.save保存

focal loss
保证预测的结果都接近与1无论正负样本
当预测对了的值loss就很小,当预测错了就会很大
关注难样本,解决类别不均衡的问题

indices 正样本的索引
更改objectness
在这里插入图片描述

YOLOv3

模型的每个head计算出[bs,c,h,w,nc+5]

GT与每个anchor做IOU的比较,取最大的IOU的anchor,给出mask

BCE要用sigmoid函数

置信度的loss是预测框和真实框的IOU

YOLOv5损失函数
回归损失
预测x、y、w、h四个数值,预测出来的数值,通过CIOU计算loss

置信度损失
计算每个预测框和真实框的CIOU当作置信度,通过BCE计算loss

网络训练流程
1、输入图像网络前向传播输出[[bs,3,80,80,nc+5],[bs,3,40,40,nc+5],[bs,3,20,20,nc+5]]。
2、对于网络的3个头的输出匹配正样本,筛选GT和anchor符合条件的高宽比,大于就是正样本反就是负样本。
出了匹配IOU大于的之外还会匹配满足条件的上下左右的grid

YOLO:简史

YOLO(You Only Look Once)是一种流行的对象检测和图像分割模型,由华盛顿大学的Joseph Redmon和Ali Farhadi开发。YOLO于2015年推出,以其高速度和高精度迅速走红。

YOLOv2于2016年发布,通过合并批处理规范化、锚盒和维度集群来改进原始模型。

YOLOv3在2018年推出使用更高效的骨干网络、多个锚点和空间金字塔池进一步增强了该模型的性能。

YOLOv4于2020年发布,引入了Mosaic数据增强、新的无锚检测头和新的丢失功能等创新。

YOLOv5进一步提高了模型的性能,并添加了超参数优化、集成实验跟踪和自动导出到流行导出格式等新功能。

YOLOv6于2022年由美团开源,目前正在该公司的许多自动配送机器人中使用。

YOLOv7在COCO关键点数据集上添加了额外的任务,如姿态估计。

YOLOv8是Ultralytics公司推出的YOLO的最新版本。作为一款尖端、最先进的(SOTA)车型,YOLOv8在之前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率。YOLOv8支持全方位的视觉AI任务,包括检测、分割、姿态估计、跟踪和分类。这种多功能性允许用户在不同的应用程序和域中利用YOLOv8的功能。

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

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

相关文章

Vue2 - 数据响应式原理

目录 1,总览2,Observer3,Dep4,Watcher5,Schedule 1,总览 vue2官网参考 简单介绍下上图流程:以 Data 为中心来说, Vue 会将传递给 Vue 实例的 data 选项(普通 js 对象&a…

SSM养老院综合服务系统----计算机毕业设计

项目介绍 该项目为后台管理项目,分为管理员与护工两种角色; 管理员角色包含以下功能: 管理员登录,个人资料密码管理,用户管理,床位类型管理,床位管理,护工管理,老人管理,咨询登记管理,预约登记管理,老人健康信息管理,费用管理等功能。 护…

【LeetCode每日一题】2487. 从链表中移除节点(调用栈+递归+翻转链表)

2024-1-3 文章目录 [2487. 从链表中移除节点](https://leetcode.cn/problems/remove-nodes-from-linked-list/)方法一:调用栈方法二:递归方法三:翻转链表 2487. 从链表中移除节点 方法一:调用栈 1.将所有节点按顺序压入栈中 2.从…

浅谈接口自动化测试

昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的接口自动化实施,提供了更多的思路。 这篇博客,就说说功能测试到接口自动化的进阶,以及…

商品推荐系统+可视化+2种协同过滤推荐算法 Django框架 大数据毕业设计(附源码+论文)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

【论文笔记】An Extractive-and-Abstractive Framework for Source Code Summarization

An Extractive-and-Abstractive Framework for Source Code Summarization 1. Introduction2. Model2.1 Overview2.2 Training of EACS2.2.1 Part i : Training of Extractor2.2.2 Part ii : Training of Abstracter 3. Evaluation 1. Introduction 代码摘要可以细分为抽取式代…

眼镜店系统管理软件,眼镜店配镜视力检查顾客资料管理系统

一、软件程序问答 1、这个软件在配镜的时候可以开配镜处方吗,可以打印出来吗? 如上图,以 佳易王眼镜店配镜顾客信息管理系统为例说明: 点击软件中的 配镜处方按钮,填写配镜相关信息,即可打印,…

Spring系列学习六、深入Spring AOP——揭开代理的神秘面纱

深入Spring AOP——揭开代理的神秘面纱 一、动态代理的实现原理二、CGLIB字节码增强的实现原理三、结语 上一章节,我们体验了Spring AOP强大的能力的同时,是不是也想弄明白,它是怎么原理是什么呢?如果自己要做一个类似的框架&…

SQL Server注入之攻防技战法

那天下着很大的雨,母亲从城里走回来的时候,浑身就是一个泥人,那一刻我就知道我没有别的选择了 1.Mssql报错注入 0.判断数据库类型 1.爆当前用户名 2.爆版本 3.爆服务器名 4.判断数据库个数 5.获取全部数据库 语句只适合>2005 爆当前数据…

旧电脑搭建NAS

旧电脑可以搭建NAS吗? 可以! 性能好吗? 完全没问题! 简单吗? 轻松上手! 怎吗搭建? 这里:用旧电脑搭建NAS在您的家庭中,通过将旧 PC 转变为NAS服务器,您…

Winform中使用Fleck实现Websocket服务端并读取SQLite数据库中数据定时循环群发消息

场景 Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中: Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中-CSDN博客 Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作: Wi…

BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)

目录 一、什么是BLE Mesh Access Layer访问层? 二、Access payload 2.1 Opcode 三、Access layer behavior 3.1 Access layer发送消息的流程 3.2 Access layer接收消息的流程 3.3 Unacknowledged and acknowledged messages 3.3.1 Unacknowledged message …

轻松上手:Postman Interceptor 插件使用指南

什么是 Postman? Postman 是一种用于测试和开发 API 的工具,让开发者可以轻松地构建、发送、调试 HTTP 请求,并检查响应结果。通过Postman,开发者可以在不编写代码的情况下快速测试 API 的正确性和可靠性。Postman 还支持协作和自…

ubuntu18.04安装MySQL

1.安装mysql服务器端 sudo apt-get -y install mysql-server(18.04/20.04不会提示输入密码,默认是没有密码) 2.安装mysql客户端 sudo apt-get -y install mysql-client3.安装mysql模块 sudo apt-get -y install libmysqlclient-dev4.验证是…

融资项目——全局统一日志说明

通过日志可以查看程序的运行信息和异常信息等,便于维护。日志级别分为TRACE、DEBUG、INFO、WARN、ERROR级别,越往后打印的日志信息越少,如ERROR 级别只会在程序运行出错时才会打印日志。可在application.properties中设置日志级别。 logging…

Python+OpenGL绘制3D模型(七)制作3dsmax导出插件

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

最新Tomcat下载安装详细教程

Tomcat下载安装教程 Tomcat简介Tomcat下载tomcat安装验证安装是否成功 Tomcat简介 Tomcat是什么? Tomcat是web容器。你在做web项目时,多数需要http协议,也就是基于请求和响应,比如你在百度输入一行内容搜索,那么百度服…

一文讲清数据资产入表实操

《中共中央 国务院关于构建数据基础制度更好发挥数据要素作用的意见》已发布一年,数据资产化和入表已成为2023年的热门话题,随着2023年底国家数据局吹风《"数据要素x"三年行动计划(2024-2026年)》即将发布,这…

Java_IO流(字节流)

一、IO流(字节流) 1.1 IO流概述 在前面已经学习过File类。知道File只能操作文件,但是不能操作文件中的内容。我们也学习了字符集,不同的字符集存字符数据的原理是不一样的。有了前面两个知识的基础,接下来我们再学习…