《深度学习》YOLO v1网络架构 、损失值、NMS极大值抑制

目录

一、Yolo系列v1

1、核心思想

2、示例

3、流程图解析

二、YOLO系列v1损失函数

1、位置误差

2、置信度误差

3、类别概率损失

三、NMS非极大值抑制

1、概念

2、步骤

四、YOLO v1优缺点

1、优点

1)速度快

2)端到端

3)多尺度预测

4)网络结构简单

2、缺点

1)对小目标检测效果差

2)每个网格只能生成两个框,且只能预测一个类别


一、Yolo系列v1

1、核心思想

        将一幅图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。YOLO v1将图像分为7*7个网格

2、示例

        对于上图,YOLOv1将输入图片划分成7×7的网格,每个网格允许预测出2个边框(bounding box),这些边框的大小可以超出当前网格的范围,对于每个边框,YOLOv1都预测了5个参数,分别是中心坐标(x, y)、宽度w、高度h以及置信度confidence。置信度反映了模型对边框内包含物体的信心程度以及边框的准确度。

3、流程图解析

        YOLOv1的网络结构主要由卷积层、池化层以及最后的全连接层组成。

        网络的输入448x448x3的彩色图片输出是7x7x30的张量(tensor)。

        7x7表示将输入图片划分成了7*7个网格(grid),每个网格负责检测其内的物体。

        30表示每个网格内的30个预测信息,包括20个类别概率(以PASCAL VOC数据集为例,该数据集共20个类别)、2个预选框(bounding box)及其置信度(每个边界框包含中心点坐标x、y,宽度w、高度h以及一个置信度分数)。

        坐标点x,y(相对于网格单元格边界的框的中心)用对应网格的归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。

二、YOLO系列v1损失函数

1、位置误差

        如上图所示,其为位置误差的计算公式,其中\lambda对应的值为一个系数,表示如果你觉得位置误差更重要,那么就设置大一点,置信度误差与分类误差也是同样的意思

        第二个红框内的符号表示第i个网格的第j个预选框,如果负责预测物体,那么整体的值为1,反之为0

        前面的求和符号s平方表示网格的格式,例如YOLO v1中的网格个数为7*7,然后B表示预选框的个数,此处数值为2,后面的x表示预选框的中心点的坐标x,y,以及预选框的宽w、高h。

2、置信度误差

        \lambda的值所表示的意思和上述一致,但是第二个像阿拉伯数字1noobj的符号,其所表示的值和上述位置误差中的相反,此处表示第i个网格,第j个预选框,如果不负责预测物体,那么他的值为1,否则为0,

        C的表示置信度的值,置信度C的值 = Pr类别概率 * IOU

        类别概率表示边界框(预选框)内存在对象的概率,若存在对象则为1,不存在则为0,IOU为预测的位置框和真实值的框相交集的值除以并集的值的大小。

        Ci表示模型预测出来的置信度的值,C^i的值表示实际计算得到的置信度的值

3、类别概率损失

        这里第一个求和符号后面的小符号,表示第i个网格是否包含物体,如果包含,那么其值为1,否则为0 

        pi(C)-p^i(C)表示预测的类别的概率减去真实标签的概率,例如模型输出20类别的结果,即有20个数据,其中有预测到狗的概率,加入标签打的是狗,只需要将20个数据中预测狗额概率的值取出来,然后减去1,在对结果平方即可

三、NMS非极大值抑制

1、概念

        在目标检测过程中,通常会生成大量的候选框,当前v1版本有2个复选框,这些候选框可能会有重叠或者包含关系。为了减少重叠的候选框,避免重复检测同一个目标,使用非极大值抑制可以筛选出最佳的目标框。

        例如上图中,同一个人脸被多个预选框预测出来,导致了预选框的重叠,此时可以将置信度低的抑制了,只保留最大的那个。

2、步骤

        1)对所有的候选框根据某个评分指标(例如置信度得分)进行排序,得到一个有序列表;

        2)选择评分最高的候选框,并将其添加到最终的目标框列表中;

        3)计算当前选择的候选框与其他未选择的候选框的重叠区域,并计算重叠区域与两个候选框面积的比值;

        4)如果重叠区域与两个候选框面积的比值超过了设定的阈值,则将该候选框从列表中移除;

        5)重复步骤2~4,直到所有的候选框都被处理完毕。

四、YOLO v1优缺点

1、优点

        1)速度快

                YOLO v1的设计初衷就是实现实时目标检测,相较于其它目标检测算法如R-CNN和SSD,YOLO v1在保持较高准确率的同时,能够达到更快的检测速度,每秒处理上百张图片。

        2)端到端

                YOLO v1是一个端到端的算法,它将目标检测任务作为一个单一的回归问题进行处理,通过在全局上直接预测目标的类别和位置,避免了复杂的后处理步骤。

        3)多尺度预测

                YOLO v1在训练和测试阶段都会对不同尺度的图像进行处理,通过将输入图像划分为网格单元,并生成边界框,确保对不同尺度的目标能够进行有效的检测。

        4)网络结构简单

                YOLO v1的网络结构相对简单,由24个卷积层和2个全连接层组成。这种端到端的网络结构使得YOLO v1易于实现和部署。

2、缺点

        1)对小目标检测效果差

                由于输入图像大小为448x448,而输出特征图大小为7x7,因此YOLO v1在下采样过程中会丢失大量小目标的特征信息。这导致YOLO v1对小目标的检测效果不理想,容易出现漏检或误检的情况。

        2)每个网格只能生成两个框,且只能预测一个类别

                这一限制使得YOLO v1在处理多类别、多目标的情况时存在一定的局限性,例如图像重叠时,无法预测

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

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

相关文章

Python 学习笔记(十二)—— 网络编程

目录 一、网络编程的基本概念 1.1 IP地址 1.1.1 IP的版本 1.1.2 IP的分类 1.1.2.1 公有地址 1.1.2.2 私有地址 1.1.3 IP地址的范围 1.1.4 回环测试 1.2 常见的网络设备 1.3 端口 1.3.1 端口分配 二、网络通信协议 2.1 常用网络协议 2.2 OSI网络协议七层模型 2.3…

Java访问修饰符private,default,protected,public

在Java中,访问修饰符决定了类、方法、变量和构造器的可见性和可访问范围。这里有四个主要的访问修饰符:private、default(未显式指定)、protected 和 public。下面分别解释它们的作用: 1.private 作用:使…

【C++指南】类和对象(四):类的默认成员函数——全面剖析 : 拷贝构造函数

引言 拷贝构造函数是C中一个重要的特性,它允许一个对象通过另一个已创建好的同类型对象来初始化。 了解拷贝构造函数的概念、作用、特点、规则、默认行为以及如何自定义实现,对于编写健壮和高效的C程序至关重要。 C类和对象系列文章,可点击下…

Vue+ECharts+iView实现大数据可视化大屏模板

Vue数据可视化 三个大屏模板 样式还是比较全的 包括世界地图、中国地图、canvas转盘等 项目演示: 视频: vue大数据可视化大屏模板

java多态

1 final 关键字 final关键可以用来修饰变量、成员方法以及类。 1.1. 修饰变量或字段,表示常量(即不能修改) 2. 修饰类:表示此类不能被继承 我们平时是用的 String 字符串类, 就是用 final 修饰的, 不能被继承. 3. 修饰方法:表示该方法不能…

Excel重新踩坑3:条件格式;基本公式运算符;公式中的单元格引用方式;公式菜单栏其他有用的功能说明;

0、前言:以下内容是学习excel公式的基础内容。 1、需求:将表格特定区域中数值大小大于等于30,小于等于80的单元格,颜色填充为红色,大于80的,颜色填充为黄色。 新建规则之后也可以通过该功能清除规则。 2、基…

使用InternVL、LMDeploy和GTE搭建多模态RAG系统

如何将视觉大模型(VLM)与 多模态RAG 结合起来,创建服装搜索和搭配推荐!本文展示了InternVL模型在分析服装图像和提取颜色、款式和类型等关键特征方面的强大功能。 InternVL2是国内首个在MMMU(多学科问答)上突破60的模型&#xff0…

一次使用LD_DEBUG定位问题的经历

在实际工作中,当遇到段错误,我们会很容易的想到这是非法访问内存导致的,比如访问了已经释放的内存,访问数据越界,尝试写没有写权限的内存等。使用gdb进行调试,查看出异常的调用栈,往往可以定位到…

告别装机烦恼,IT小白到IT大神都在用的免费神器

作为USB启动盘制作工具中的佼佼者,Rufus凭借其卓越的性能和实用性,赢得了众多用户的信赖。这款精巧的实用程序不仅能够将系统ISO镜像完美转换为可引导的USB安装介质,还提供了全面的USB设备管理功能。 Rufus的安装包仅有1.5M大小,…

ubuntu系统库和Anaconda库冲突问题

之前安装opencv时没出现过这种问题,自从安装Anaconda后就总遇到问题。记录下自己的解决过程。 目录 第一步 第二步 第三步 安装opencv时出现以下问题: /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_prep_cif@LIBFFI_BASE_7.…

qt QTableview 左侧 序号 倒序

本文主要在QTableview插入数据的基础上,使左边序号实现倒序,实现如下图所示。 解决办法: QTableview左侧是QHeaderView类构成的,重写QHeaderView的paintSection, 重写序号的文字内容,进而 实现QTableview …

FFT过程中自动补零,补零部分FFT结果不为零

在 FFT(快速傅里叶变换) 中,补零(Zero Padding)是为了使信号的点数符合 2 的幂次方,以提高 FFT 的计算效率。然而,即使你对信号进行了补零,FFT 计算后在补零部分可能会得到复数结果不…

医院信息化与智能化系统(5)

医院信息化与智能化系统(5) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的…

python 文件防感染扫描

一、安装 首先,你需要安装 secplugs-python-client 库。你可以通过 pip 命令来安装: pip install secplugs-python-client确保你的 Python 环境已经正确设置,并且网络连接畅通,以便能够顺利安装。 二、基本用法 1. 初始化客户…

nosql课本习题

nosql题目 1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么? 答案: 文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库,文档数据库允许存储半结构化和非结构化数据,每个文档可以有不同的字段&#x…

【优先算法】--双指针1

“一念既出,万山无阻。”加油陌生人! 目录 1.双指针--移动零 2.双指针-复写零 ok,首先在学习之前,为了方便大家后面的学习,我们这里需要补充一个知识点,我这里所谓的指针,不是之前学习的带有…

二分查找_ x 的平方根搜索插入位置山脉数组的峰顶索引

x 的平方根 在0~X中肯定有数的平方大于X&#xff0c;这是肯定的。我们需要从中找出一个数的平方最接近X且不大于X。0~X递增&#xff0c;它们的平方也是递增的&#xff0c;这样我们就可以用二分查找。 我们找出的数的平方是<或者恰好X&#xff0c;所以把0~X的平方分为<X …

Leetcode—1279. 红绿灯路口【简单】Plus(多线程)

2024每日刷题&#xff08;186&#xff09; Leetcode—1279. 红绿灯路口 C实现代码 class TrafficLight { public:TrafficLight() {}void carArrived(int carId, // ID of the carint roadId, // ID of the road the car travels on. Can …

【Linux】僵尸进程和孤儿进程

一、僵尸进程 何为僵尸进程&#xff1f; 在 Unix/Linux 系统中&#xff0c;正常情况下&#xff0c;子进程是通过父进程创建的&#xff0c;且两者的运行是相互独立的&#xff0c;父进程永远无法预测子进程到底什么时候结束。当一个进程调用 exit 命令结束自己的生命时&#xff…

【Linux】计算机网络协议详解与通信原理探究

目录 1、协议 1.1.初识协议 1.2.协议分层 日常通信的例子&#xff1a; 1.3.OSI 七层模型 1.4.TCP/IP五层(或四层)模型 1.5.OS和网络之间的关系 1.6.协议的本质 2.局域网通信 2.1.什么是局域网&#xff1f; 2.2.关于报文相关基础知识 报文和协议的关系&#xff1a; …