yolov3算法及其改进

yolov3算法及其改进

  • 1、yolov3简介
  • 2、yolov3的改进
    • 2.1、backbone的改进
      • 2.1.1、darknet19相对于vgg16有更少的参数,同时具有更快的速度和更高的精度
      • 2.1.2、resnet101和darknet53,同样具有残差结构,精度也类似,但是darknet具有更高的速度
    • 2.2、FPN
    • 2.3、anchor-base与grid-cell
  • 3、yolov3的坐标表示和正负样本匹配
    • 3.1、坐标表示
    • 3.2、正负样本匹配
  • 4、yolov3的损失函数

1、yolov3简介

在这里插入图片描述

  • YOLOV3的实时性和精确性在当时比较好,广泛应用于工业界
  • YOLOV3在backbone网络结构上应用残差连接思想来解决深度网络的梯度消失问题
  • YOLOV3最显著的改进就是在三个尺度上以相同的方式来进行目标检测,这使得科技检测到不同规模的目标
  • YOLOV3损失函数是将之前的softmax改为logit
  • 在最后推理阶段YOLOV3对3个检测层的预测结果进行非最大抑制(NMS)来确定最终的检测结果

在这里插入图片描述

2、yolov3的改进

2.1、backbone的改进

yolov3主要基于darknet53进行构建,除此之外还有VGG,darknet19,resnet101,darknet53等等

2.1.1、darknet19相对于vgg16有更少的参数,同时具有更快的速度和更高的精度

  • 较少的参数量:使用1x1的卷积代替了FC,同时 darknet19使用1x1的卷积进行通道缩减,而VGG使用3X3卷积,通道数几乎不变
  • 较快的速度:1x1卷积的bottleneck设计也会有速度上的优势
  • 较高的精度:darknet19在网络后期通道上也增加了而VGG系列最后一个block的通道数是不变的
    在这里插入图片描述

2.1.2、resnet101和darknet53,同样具有残差结构,精度也类似,但是darknet具有更高的速度

残差结构
在这里插入图片描述
残差结构的如上图所示,原理如下:把卷积层的前后特征进行元素相加求和,如果特征在这其中的某一个卷积后消失,那么残差结构便可以找回丢失的特征

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

  1. 都使用了stride=2的3x3卷积代替了Max-pooling操作,也都用了残差结构的思想来设计主干模型
  2. darknet每个stage只使用了2个卷积作为block,而resnet101则使用了3个卷积层,
  3. darknet53最后一个stage通道数是resnet101的0.5倍
  4. 每一个stage的残差块数量darknet53的设计更为均衡(1,2,8,8,4vs3,4,23,3),说明resnet01的设计可能有冗余

2.2、FPN

在这里插入图片描述
基于图像金字塔的构建的特征金字塔构成了标准解决方案的基础,能够通过在位置和金字塔级别上的扫码模型来检测大范围内的对象。手动设计

在这里插入图片描述
手工设计的特征在很大程度上被卷积网络提取的特征所取代,卷积网络除了能够表示更高层次的语言之外,对尺度变化也更为鲁棒,有助于对单一尺度上的特征进行识别

在这里插入图片描述
图像金字塔的每个level都有其主要特点,backbone的网络都会产生不同大小分辨率的特征图,不同的深度导致每一层语义差距较大,同时高分辨率特征图具体低层次的特征,会损害其对目标识别的表征能力

SSD模型的金字塔特征层次结构,如上图所示,是一个特征化的图像金字塔,SSD重要来自不同层的多尺度特征,但是为了避免使用低级特征,SSD放弃使用已有的特征层,而是从网络的高层开始构建金字塔,然后添加几个新层
SSD错过了重用特征层次结构的更高分辨率特征的机会
在这里插入图片描述
上图结构,能够增加较少计算量的前提下融合低分辨率的语义信息较强的特征图和高分辨率语义信息较弱的但空间信息丰富的特征图

FPN的独特之处在于,它是在以特征金字塔为基础的结构上,对每一层的特征图分别进行预测,在保证速度的同时进一步提升精度

YOLOV3的FPN是如何设计的?
在这里插入图片描述
在这里插入图片描述
YOLOV3选择了重用backbone所提取的不同level的特征图,主要是8,16,32倍下采样的特征图,同时采用FPN的设计思想,分别对16倍,32倍以及各自上采样的结果进行融合,融合操作由add改为concat

2.3、anchor-base与grid-cell

在这里插入图片描述
在这里插入图片描述
YOLOV3会产生三个尺度的特征图,加入输入为4164163,特征图分别为:

  • 13 X 13 预测大目标
  • 26 X 26 预测中目标
  • 52 X 52 预测小目标

总共产生1313+2626+5252个grid cell
每个grid cell由3个anchor
总共有3
(1313+2626+52*52)个预测框

在这里插入图片描述

对于每一个grid cell,都对应一个85维度的tensor(80+5 = 80+4+1)
80:80个类别的概率
5=4+1:中心坐标x,中心坐标y,宽,高,置信度

3、yolov3的坐标表示和正负样本匹配

3.1、坐标表示

在这里插入图片描述
YOLOV3采用直接预测相对位置的方法:预测出bbox的中心点相对于grid cell左上角的相对坐标,例如tx,ty,tw,th,t0),然后通过一下坐标偏移公式计算得到bbox的位置大小和置信度。
在这里插入图片描述
tx、ty、tw、th就是模型的预测输出
cx,cy表示grid cell的坐标
如果特征图大小为13*13,grid cell就有13x13
那么第2行,第2列的grid cell坐标cx就是2,cy就是2,
pw和ph表示预测的前bbox的四则
bx,by,bw和bh就是预测得到的bbox的中心坐标和宽高。
confidence=P(object)*IOU表示框中含有object的置信度和这个box预测的准确度
如果这个框对应的是背景,那就是0
如果这个框对应的是前景,这个值就是与对应前景GT的IOU

3.2、正负样本匹配

在这里插入图片描述
正负样本匹配的规则就是给每一个GT分配一个正样本,这个正样本是所有bbox中找到一个与GT重叠区域最大的一个预测框,也就是该GT的IOU最大的预测框。

如果一个样本不是正样本,它既没有定位损失,也没有类别损失,只有置信度损失,在YOLOV3中尝试用focal loss来缓解正负样本不均衡的问题,由于负样本参与了置信度的损失,对loss影响占比小,因此效果不佳

另外还有一个缺点,正样本数量较小,网络难以训练

4、yolov3的损失函数

在这里插入图片描述
yolo的loss分为三个部分:
1、xywh的误差,也就是bboxloss 上面公式前两行
2、置信度误差,也就是obj loss 上面公式接下来两行
3、类别误差。也就是class loss 上面公式最后一行

其中
S:S^2代表1313,2626,52*52
B:每个网格产生B个候选框
带obj的I:如果在i,j处的box有目标,其值为1,否则为0;
带noobj的I:如果在i,j处的box没有目标,其值为1,否则为0;

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

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

相关文章

python报错ModuleNotFoundError: No module named ‘visdom‘

在用虚拟环境跑深度学习代码时,新建的环境一般会缺少一些库,而一般解决的方法就是直接conda install,但是我在conda install visdom之后,安装是没有任何报错的,conda list里面也有visdom的信息,但是再运行代…

Jenkins 构建流水线

在 Linux 系统上安装 Jenkins 服务,以及配置自动化构建项目 前置准备环境:docker、docker-compose、jdk、maven 一、环境搭建 1. Jenkins 安装 (1)拉取镜像 # 安装镜像包,默认安装最新版本 docker pull jenkins/jen…

大数据技术-Hadoop(二)HDFS的介绍与使用

目录 1、HDFS简介 1.1 什么是HDFS 1.2 HDFS的优点 1.3、HDFS的架构 1.3.1、 NameNode 1.3.2、 NameNode的职责 1.3.3、DataNode 1.3.4、 DataNode的职责 1.3.5、Secondary NameNode 1.3.6、Secondary NameNode的职责 2、HDFS的工作原理 2.1、文件存储 2.2 、数据写…

vue3使用element-plus,解决 el-table 多选框,选中后翻页再回来选中失效问题

问题&#xff1a;勾选的数据分页再回来回消失 1.在el-table中加 :row-key"getRowKey" const getRowKey (row) > { return row.id; // id必须是唯一的 }; 2.给type为selection的el-table-column添加上reserve-selection属性 <el-tableref"multipleTab…

go语言的成神之路-筑基篇-gin常用功能

第一节-gin参数绑定 目录 第一节-?gin参数绑定 ShouldBind简要概述 功能&#xff1a; 使用场景&#xff1a; 可能的错误&#xff1a; 实例代码 效果展示 第二节-gin文件上传 选择要上传的文件 选择要上传的文件。 效果展示? 代码部分 第三节-gin请求重定向 第…

五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 光伏功率预测&#xff01;五模型对比&#xff01;Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测(Matlab2023b 多输入单输出) 1.程序已经调试好&#xff0c;替换数据集后&#xff0c;仅运…

12.27【net】【review】【day3】

第三章 l CSMA/CD ( Carrier Sense Multiple Access with Collision Detection) &#xff1a; 载波监听多点接入 / 碰撞 检测。 l 多点接入 &#xff1a; 说明这是总线型 网络。许多 计算机以多点接入的方式连接在一根总线上。 l 载波监听&#xff1a; 即“ 边发送边监听”。…

Python学生管理系统(MySQL)

上篇文章介绍的Python学生管理系统GUI有不少同学觉得不错来找博主要源码&#xff0c;也有同学提到老师要增加数据库管理数据的功能&#xff0c;本篇文章就来介绍下python操作数据库&#xff0c;同时也对上次分享的学生管理系统进行了改进了&#xff0c;增加了数据库&#xff0c…

实现类似gpt 打字效果

1. css的动画&#xff08;animation) css中实现动画有两种方式&#xff1a;transition过渡动画、 animation自定义动画。 具体的可以看MDN链接&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/CSS/animation 使用keyframes自定义关键帧动画并未其命名使用自定义动…

OpenHarmony-5.PM 子系统(2)

电池服务组件OpenHarmony-4.1-Release 1.电池服务组件 Battery Manager 提供了电池信息查询的接口&#xff0c;同时开发者也可以通过公共事件监听电池状态和充放电状态的变化。电池服务组件提供如下功能&#xff1a; 电池信息查询。充放电状态查询。关机充电。 电池服务组件架…

软考:系统架构设计师教材笔记(持续更新中)

教材中的知识点都会在。其实就是将教材中的废话删除&#xff0c;语言精练一下&#xff0c;内容比较多&#xff0c;没有标注重点 系统架构概述 定义 系统是指完成某一特定功能或一组功能所需要的组件集&#xff0c;而系统架构则是对所有组件的高层次结构表示&#xff0c;包括各…

反应力场的生成物、反应路径分析方法

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩&#xff01; 主要专栏内容包括&#xff1a; †《LAMMPS小技巧》&#xff1a; ‾ \textbf…

HarmonyOS NEXT 实战之元服务:静态案例效果---妙语集语

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; import { authentication } …

C#WPF基础介绍/第一个WPF程序

什么是WPF WPF&#xff08;Windows Presentation Foundation&#xff09;是微软公司推出的一种用于创建窗口应用程序的界面框架。它是.NET Framework的一部分&#xff0c;提供了一套先进的用户界面设计工具和功能&#xff0c;可以实现丰富的图形、动画和多媒体效果。 WPF 使用…

【递归与回溯深度解析:经典题解精讲(下篇)】—— Leetcode

文章目录 有效的数独解数独单词搜索黄金矿工不同的路径||| 有效的数独 递归解法思路 将每个数独的格子视为一个任务&#xff0c;依次检查每个格子是否合法。 如果当前格子中的数字违反了数独规则&#xff08;在行、列或 33 小方块中重复&#xff09;&#xff0c;直接返回 Fals…

SpringCloudAlibaba实战入门之路由网关Gateway断言(十二)

上一节课中我们初步讲解了网关的基本概念、基本功能,并且带大家实战体验了一下网关的初步效果,这节课我们继续学习关于网关的一些更高级有用功能,比如本篇文章的断言。 一、网关主要组成部分 上图中是核心的流程图,最主要的就是Route、Predicates 和 Filters 作用于特定路…

进军AI大模型-环境配置

语言环境配置 合法上网工具&#xff1a; 这个T子试试&#xff0c;一直稳定。走我链接免费用5天: https://wibnm.com/s/ywtc01/pvijpzy python版本&#xff1a; python3.12 Langchain: Introduction | &#x1f99c;️&#x1f517; LangChain v0.3 9月16日升级的版本 pip3…

`we_chat_union_id IS NOT NULL` 和 `we_chat_union_id != ‘‘` 这两个条件之间的区别

文章目录 1、什么是空字符串&#xff1f;2、两个引号之间加上空格 好的&#xff0c;我们来详细解释一下 we_chat_union_id IS NOT NULL 和 we_chat_union_id ! 这两个条件之间的区别&#xff0c;以及它们在 SQL 查询中的作用&#xff1a; 1. we_chat_union_id IS NOT NULL 含…

elementUI——upload限制图片或者文件只能上传一个——公开版

最近在写后台管理系统时&#xff0c;遇到一个需求&#xff0c;就是上传图片&#xff0c;有且仅能上传一张。 效果图如下&#xff1a; 功能描述&#xff1a;上传图片时&#xff0c;仅支持单选&#xff0c;如果上传图片成功后&#xff0c;展示图片&#xff0c;并隐藏添加图片的…

【RabbitMQ高级篇】消息可靠性问题(1)

目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…