YOLOV3——你总能在这找到你想要的答案

目录

一:前言:

二:更快,更强

网络结构图

其他基础操作:

Darknet53的由来

三:最明显的特点:

四:多scale

五: 为什么vgg越深效果反而越差了?

六:Softmax的改进

七:数据的标注


一:前言:

Yolov32018年发明提出的,这成为了目标检测one-stage中非常经典的算法,包含Darknet-53网络结构、anchor锚框、FPN等非常优秀的结构。

以下是YOLOv3的主要改进和特点:

  1. 多尺度预测:YOLOv3引入了三种不同尺度的检测层,分别用于检测不同大小的目标。这使得YOLOv3能够有效地检测不同尺寸的目标,从小物体到大物体都能有较好的表现。

  2. Darknet-53骨干网络:YOLOv3采用了一个称为Darknet-53的更深的骨干网络作为特征提取器。相比于之前的版本,Darknet-53具有更多的层和更深的网络结构,可以提取更高层次的语义特征,从而提高目标检测的准确性。

  3. 使用多尺度特征融合:YOLOv3通过在不同层次的特征图上进行特征融合,可以融合不同尺度的特征信息。这种多尺度特征融合有助于检测不同大小的目标,并提高目标检测的准确性。

  4. 更精细的边界框预测:YOLOv3对边界框的预测进行了改进,引入了不同大小的锚框,并使用卷积层来预测边界框的偏移量。这使得YOLOv3可以更准确地预测目标的边界框。

  5. 使用多尺度训练和推理:YOLOv3在训练和推理阶段都使用了多尺度的策略。在训练时,YOLOv3会在不同尺度的输入图像上进行训练,以增强模型对不同大小目标的适应能力。在推理时,YOLOv3可以接受不同尺度的输入图像,并生成相应尺度的预测结果。

二:更快,更强

网络结构图

上图三个蓝色方框内表示Yolov3的三个基本组件

  1. CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。
  2. Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
  3. ResX:由一个CBLX个残差组件构成,是Yolov3中的大组件。每个Res模块前面的CBL都起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小

其他基础操作:

  1. Concat:张量拼接,会扩充两个张量的维度,例如26*26*256和26*26*512两个张量拼接,结果是26*26*768。Concat和cfg文件中的route功能一样。
  2. add:张量相加,张量直接相加,不会扩充维度,例如104*104*128和104*104*128相加,结果还是104*104*128。add和cfg文件中的shortcut功能一样。

Darknet53的由来

每个ResX中包含1+2*X个卷积层,因此整个主干网络Backbone中一共包含1+(1+2*1)+(1+2*2)+(1+2*8)+(1+2*8)+(1+2*4)=52,再加上一个FC全连接层,即可以组成一个Darknet53分类网络。不过在目标检测Yolov3中,去掉FC层,不过为了方便称呼,仍然把Yolov3的主干网络叫做Darknet53结构

三:最明显的特点:

1、特征做的更细致,融入多持续特征图信息来预测不同规格物体
2、先验框更丰富了,3种scale,每种3个规格,一共9种
3、 softmax改进,预测多标签任务

四:多scale

经典的特征金字塔: 第一个计算量太大速度太慢了,第二个也就是右边那个可以当作yolov1版本

 13岁能做的好,但是23,56岁的人未必能玩的好。。

正确的做法:

五: 为什么vgg越深效果反而越差了?

        14年,Vgg到了19层后就最好了,后面越深越差!!!!因为没有resnet那样特征融合,而darknet其实就是resnet的版本

        整体网络介绍。。Darknet-53网络结构中并没有使用池化(pooling)层和全连接层。相反,Darknet-53主要使用卷积层和残差连接(shortcut)(residual connections)来构建网络。

 

        与V2不一样,V2是不管你的尺度,我都用聚类生成5个锚框,但是V3是先写成特征图,然后根据不同的感受野生成对应的尺度的候选框。

 

六:Softmax的改进

 之前是如果你预测的类被是猫,那么就在这20个类别里面找到猫,然后计算他们的损失。但是在这里猫的种类有很多种,猫,大猫,小猫........

 那么改进的softmax就是设置阈值,取出多标签的目标:

 

 先存起来

七:数据的标注

        以后也是,每次标注的时候,也已经把坐标归一化了,归一化可以提高数值稳定性:在一些数值计算中,较大或较小的数值范围可能导致数值不稳定性,例如出现溢出或下溢的情况。通过归一化,可以将数值范围缩放到更稳定的区间,有助于数值计算的稳定性和数值精度。也可以加速模型收敛:某些优化算法(例如梯度下降)对输入数据的尺度敏感。如果数据的尺度差异较大,优化算法可能需要更多的迭代才能达到收敛,而归一化可以加速模型的收敛过程,减少训练时间。

 不是层,而是组合

代码实现:遍历了第一个模块

 看看数据

 这个是coco数据集的先验框的标准,如果你的任务的目标比较大或小,可以自己写个聚类,使用不同的先验框。

spp:

SPP结构参杂在对CSPdarknet53的最后一个特征层的卷积里,在对CSPdarknet53的最后一个特征层进行三次DarknetConv2D_BN_Leaky卷积后,分别利用四个不同尺度的最大池化进行处理,最大池化的池化核大小分别为13x13、9x9、5x5、1x1(1x1即无处理)。

SPP能够极大地增加感受野,分离出最显著的上下文特征。

为什么只在预测特征图小的物体的层添加spp模块,为什么不在其他预测层加?

结果测试,如果3个预测特征层都进行SPP结构的话,虽然MAP增加了0.9但是推理速慢了,而且MAP也不是增加很多,所以作者就只在16*16的时候使用了SPP结构


http://www.niftyadmin.cn/n/420691.html

相关文章

第14课 形变之城--故事卡--听ChatGPT说

好,今天,我们将拉着ChatGPT一起畅想一下形变之城的方方面面。 我问ChatGPT的第一个问题是。 请描述一下一座所有物体都可形变的城市是什么样的? 一座所有物体都可形变的城市可能会是一个非常奇特的城市,因为它的景观和建筑物都可以…

7.2DIY可视化后台表格自定义列显示类型

后台表格自定义列显示类型 本教程均在第一节中项目启动下操作 后台表格自定义列显示类型前言一、图片格式内容显示:二. 效果展示: http://localhost:9999/#/hdp三:自定义列使用:1.添加字段:自定义列,取值自幻灯片title2. 设置自定义信息: 三.效果展示本文章原自bilibli作者视频…

【Spring全家桶】SpringAOP面向切片变成有什么作用,又是怎么实现的

Spring AOP(Aspect-Oriented Programming)是Spring框架的一个重要特性,它允许在不修改源代码的情况下,通过横切关注点(cross-cutting concerns)将额外的行为织入到应用程序中。(面向切片编程&am…

C++基础学习(1)

C基础学习 一、C的引用知识点1.1 c中的引用1.2 引用做函数参数1.3 引用做函数的返回值1.4 引用的本质1.5 常量引用 二、函数进阶2.1 函数的默认参数2.2 函数占位参数2.3 函数重载 三、面向对象3.1 封装3.1.1 封装的意义 3.2 封装的访问权限3.3 struct和class区别3.4 构造函数与…

WPF开发txt阅读器6:用树形图管理书籍

txt阅读器系列: 需求分析和文件读写目录提取类💎列表控件与目录字体控件绑定书籍管理系统 TreeView控件 TreeView可以通过可折叠的节点来显示层次结构中的信息,是表达文件系统从属关系的不二选择,其最终效果如下 为了构建这个树…

【大学计算机技术】第一章 测试12

文章目录 选择题 选择题 下列有关PC机硬盘存储器的叙述错误的是( )。 A. 硬盘上的数据块要用柱面号、扇区号和磁头号这三个参数来定位 B. 目前硬盘一般都含有DRAM芯片构成的高速缓存(Cache) C. 目前硬盘与主机的接口大多为SATA接口 D. 硬盘容量的增加主要…

大学生心理健康APP的设计与实现

摘 要:大学生群体本该是象牙塔中的学习者,是祖国未来的支柱,是民族复兴的期望所在,但是近几年大学生心理健康问题日益严峻,例如情感问题,原生家庭的问题,学业问题,与同学相处所带来…

大数据高频面试题

Hadoop基础 介绍下Hadoop Hadoop的特点 说下Hadoop生态圈组件及其作用 Hadoop主要分哪几个部分?他们有什么作用? Hadoop 1.x,2x,3.x的区别 Hadoop集群工作时启动哪些进程?它们有什么作用? 在集群计算的时候,什么是集群的主要瓶颈 …