YOLOv5基础知识

 定位和检测:
    定位是找到检测图像中带有一个给定标签的单个目标·

    检测是找到图像中带有给定标签的所有目标

 图像分割和目标检测的区别:

    图像分割即为检测出物体的完整轮廓,而目标检测则是检测出对应的目标。(使用框框把物体框出来),此外,目标检测还分为多种类型,可以只检测一个物体,也可以同时检测多个物体。

目标检测性能指标

检测精度

  • Precision, Recall, F1 score
  • lou (Intersection over Union)
  • P-R curve ( Precison-Recall curve)·AP(Average Precision)
  • mAP (mean Average Precision)

检测速度

  • 前传耗时
  • 每秒帧数FPS (Frames Per Second)
  • 浮点运算量(FLOPS)

混淆矩阵

 精度Precision(查准率)是评估预测的准不准(看预测列)

 召回率Recall(查全率)是评估找的全不全(看实际行)

YOLO——you only look once

 YOLO算法基本思想

损失函数(Loss function)

损失函数包括:

  • classification loss,分类损失
  • localization loss,定位损失(预测边界框与GT之间的误差)
  • confidence loss,置信度损失(框的目标性; objectness of the box)

总的损失函数(三类损失之和):
classification loss + localization loss + confidence loss

YOLOv5使用二元交叉嫡损失函数计算类别概率和目标置信度得分的损失。

YOLOv5使用CIOu Loss作为bounding box回归的损失。

类别预测(class prediction)

        大多数分类器假设输出标签是互斥的。如果输出是互斥的目标类别,则确实如此。因此,YOLO应用softmax函数将得分转换为总和为1的概率。而YOLOv3/v4/v5使用多标签分类。例如,输出标签可以是“行人”和“儿童”,它们不是非排他性的。(现在输出得分的总和可以大于1)
        YOLOv3/v4/v5用多个独立的逻辑(logistic)分类器替换softmax函数,以计算输入属于特定标签的可能性
        在计算分类损失进行训练时,YOLOv3/v4/v5对每个标签使用二元交叉嫡损失。这也避免使softmax函数而降低了计算复杂度。

        边界框回归是许多2D/ 3D计算机视觉任务中最基本的组件之一。
        一个改进机会是使用根据loU计算的度量损失取代替代回归损失(例如l1和l2-norms(平方损失))

灵活配置不同复杂度的模型


应用类似EfficientNet的channel和layer控制因子

YOLOv5的四种网络结构是depth_multiple和width_multiple两个参数,来进行控制网络的深度和宽度。其中depth_multiple控制网络的深度(BottleneckCSP数),width_multiple控制网络的宽度(卷积核数量)。

predicted bounding box (black rectangle)

ground truth box (green rectangle)

loU用作性能度量和损失函数的问题:
如果两个物体不重叠,则loU值将为零,并且不会反映两个形状彼此之间的距离。

在物体不重叠的情况下,如果将loU用作损失,则其梯度将为零并且无法进行优化。
major weakness:
If |AnB|= 0,IoU(A,B)=0.
 

想法:推广loU到非重叠情形,并且确保:
(a)遵循与loU相同的定义,即将比较对象的形状属性编码为区域(region)属性;

(b)维持loU的尺寸不变性;

(c)在重叠对象的情况下确保与loU的强相关性。

GloU(generalized intersection over union)

the smallest convex shapes C enclosing both A and B
  

空间金字塔池化 (SPP——spatial pyramid pooling)

YOLOv5-SPP

 在 CSP 上添加 SPP 块,因为它能显著增加接收场,分离出最重要的上下文特征,而且几乎不会降低网络运行速度。

相比较而言的YOLOv4的SPP模块如上

 PAnet(path-aggregation network路径聚合网络)

对 一般的特征金字塔网络,他的特征图大小为不同的尺度,可以对于不同尺度做融合,但是当在较下面的维度和右侧的红色箭头指向的维度进行融合时,不利于进行融合。(如图a)

对于PAnet而言,他会增加一个bottom-up的模型(如图b),使得下面的较为精细的尺度特征图能够较为容易的传递到上层。然后在相同的尺度上进行融合,最后进行拼接操作(如图c)。由于PAnet中的a和b存在尺度特征图的上升和下降的信息流传递,使得PAnet的信息也较spp更为丰富。

目标框回归


        Anchor给出了目标宽高的初始值,需要回归的是目标真实宽高与初始宽高的偏移量

        预测框中心点相对于对应网格(grid cell)左上角位置的相对偏移值
        为了将边界框中心点约束在当前网格中,使用sigmoid函数处理偏移值,使预测偏移值在(0,1)范围内YoLOv/v4目标框回归公式:
        根据边界框预测的4个offsets tx,ty,tw,th,可以按如下公式计算出边界框实际位置(坐标值)和宽高值:

 

 YOLOv5跨网格匹配策略


YOLO5采用了跨邻域网格的匹配策略,从而得到更多的正样本anchor,可加速收敛

从当前网格的上、下、左、右的四个网格中找到离目标中心点最近的两个网格,再加上当前网格共三个网格进行匹配。

 

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

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

相关文章

SAP客制化区域菜单和IMG配置清单

1. 自定义区域菜单 事务代码 SE43,操作如下 添加菜单对象 展示效果 输入区域菜单名称并回车,效果如下 2. 自定义IMG配置 事务代码 SIMGH IMG structure 示例-事务代码入口 示例-表格维护入口 示例-自定义代码控制对象 需要创建dummy表并设置表维护 页面设…

Progressive Dual-Branch Network for Low-Light Image Enhancement 论文阅读笔记

这是22年中科院2区期刊的一篇有监督暗图增强的论文 网络结构如下图所示: ARM模块如下图所示: CAB模块如下图所示: LKA模块其实就是放进去了一些大卷积核: AFB模块如下图所示: 这些网络结构没什么特别的&#xf…

分布式光伏监控系统运维系统实时查看数据分布式光伏电站监控管理

光伏电站是一种利用太阳能发电的设施,随着人们对可再生能源的需求不断增加,光伏电站的建设也越来越普遍。但是,光伏电站的运营和管理需要高质量的监控系统来确保其正常运行。本文将介绍光伏电站监控系统的组成及其原理。 详细软件具体需求可…

【二等奖方案】基于人工智能的漏洞数据分类赛题「道可道,非常道」团队解题思路

2022 CCF BDCI 大赛 数字安全公开赛「基于人工智能的漏洞数据分类」赛题二等奖团队「道可道,非常道」战队获奖方案,赛题地址: http://go.datafountain.cn/s57 团队简介 本团队具有丰富的比赛和项目经验。在AI大赛上多次拿到Top成绩&#xf…

线性表之链表

1、链表概述 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 顺序表的存储位置可以用一个简单直观的公式表示,它可以随机存取表中任意一个元素,但插入和删除需要移动大量元素。链式…

深入理解 PostgreSQL 的架构和内部工作原理

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

Postman怎么做接口测试-以简单的登录接口为例

我们就以登录某测试系统为例子,实现在Postman上做接口测试 一、首先打开系统首页首页,做一个登录操作(目的是获取接口url及参数):一般在公司做接口测试的时候页面还没有出来,我们需要根据接口文档进行接口…

kafka第三课-可视化工具、生产环境问题总结以及性能优化

一、可视化工具 https://pan.baidu.com/s/1qYifoa4 密码:el4o 下载解压之后,编辑该文件,修改zookeeper地址,也就是kafka注册的zookeeper的地址,如果是zookeeper集群,以逗号分开 vi conf/application.conf 启…

Python 逻辑回归:理论与实践

文章目录 1. 介绍1.1 什么是逻辑回归?1.2 逻辑回归的应用领域 2. 逻辑回归的原理2.1 Sigmoid 函数2.2 决策边界2.3 损失函数 3. 逻辑回归的实现3.1 数据准备3.2 创建逻辑回归模型3.3 模型训练3.4 模型预测3.5 模型评估 4. 可视化决策边界4.1 绘制散点图4.2 绘制决策…

基于SaaS模式的Java基层卫生健康云HIS系统源码【运维管理+运营管理+综合监管】

云HIS综合管理平台 一、模板管理 模板分为两种:病历模板和报表模板。模板管理是运营管理的核心组成部分,是基层卫生健康云中各医疗机构定制电子病历和报表的地方,各医疗机构可根据自身特点特色定制电子病历和报表,制作的电子病历…

Docker 容器生命周期:创建、启动、暂停与停止----从创建到停止多角度分析

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

代码随想录| 图论04 查并集 ●查并集理论知识 ●1971.寻找图中是否存在路径 ●684.冗余连接 ●685.冗余连接II

#查并集理论知识 并查集用处:解决连通性问题 将两个元素添加到一个集合中。判断两个元素在不在同一个集合 思路:将三个元素A,B,C (分别是数字)放在同一个集合,其实就是将三个元素连通在一起&a…

Python 算法基础篇:插入排序和希尔排序

Python 算法基础篇:插入排序和希尔排序 引言 1. 插入排序算法概述2. 插入排序算法实现实例1:插入排序 3. 希尔排序算法概述4. 希尔排序算法实现实例2:希尔排序 5. 插入排序与希尔排序的对比总结 引言 插入排序和希尔排序是两种常用的排序算法…

017-从零搭建微服务-系统服务(四)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端):https://gitee.com/csps…

【NLP】如何使用Hugging-Face-Pipelines?

一、说明 随着最近开发的库,执行深度学习分析变得更加容易。其中一个库是拥抱脸。Hugging Face 是一个平台,可为 NLP 任务(如文本分类、情感分析等)提供预先训练的语言模型。 本博客将引导您了解如何使用拥抱面部管道执行 NLP 任务…

超详细图文教程:3DS Max 中创建低多边形游戏长剑模型

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 在此,由两部分组成的教程的第一部分中,我将向您展示如何: 对剑柄进行建模剑的护手模型剑刃建模 1. 如何制作剑柄 步骤 1 在本教程中使用正交视图。要更改视图&#x…

AI时代带来的图片造假危机,该如何解决

一、前言 当今,图片造假问题非常泛滥,已经成为现代社会中一个严峻的问题。随着AI技术不断的发展,人们可以轻松地通过图像编辑和AI智能生成来篡改和伪造图片,使其看起来真实而难以辨别,之前就看到过一对硕士夫妻为了骗…

Flink-端到端精确一次(End-To-End Exactly-Once)

1.总结 目的:想要在故障恢复后不丢数据 输入端 保证可以重复发送数据如果是kafka,Flink负责维护offset,不用kafka维护设置kafka的隔离级别为:读已提交flink 开启检查点采用对齐或者不对齐的精确一次输出端 kafka 幂等事务两阶段…

一文了解Python中的while循环语句

目录 🥩循环语句是什么 🥩while循环 🥩遍历猜数字 🥩while循环嵌套 🥩while循环嵌套案例 🦐博客主页:大虾好吃吗的博客 🦐专栏地址:Python从入门到精通专栏 循环语句是什…

Mysql表锁与行锁

Mysql锁实战 前言:什么是锁一:全局锁1.1 概念1.2 作用1.3 使用1.4 特点 二:表级锁2.1 概念2.2 分类2.2.1 表锁2.2.2 元数据锁 MDL2.2.3 意向锁 三:行级锁3.1 行锁(Record Lock)3.2 间隙锁(Gap Lock)3.3 临键锁(Next-Key Lock): 四…