[笔记]-yolo强化理解随笔加感悟D3

本文逻辑不通,仅供自己阅读
yolo强化理解随笔加感悟D1
yolo强化理解随笔加感悟D2

Day3 pipeline:

1.特征提取器的改进:多尺度思路的全面应用
2.YOLOv4-v5的backbone neck head 对比分析
3.V5代码解读与应用:进行消融实验

一、例子

在这里插入图片描述

反响传播原理,梯度下降
在这里插入图片描述

反响传播就是主要更新backbone参数,可以看做更加复杂的一些方程而已。

二、检测头复习

在这里插入图片描述

正是由于backbone能力的提升,才导致检测头的进化,实现更复杂的检测。
在这里插入图片描述

V5检测头也是这样

三、backbone变化

在这里插入图片描述

V2的 passthroug 技术点比较特别,v3v4舍弃了,V5中用了,其实就是focus层作用,v3/v4/v5 cspdarknet53 但是v5更简洁了。

四、一个很重要的公式

在这里插入图片描述

五、Yolov2的backbone变化

V1
在这里插入图片描述

图片缩小4倍 s-2,可以改变尺寸
卷积核大小77 33 1*1,网络逐渐变宽 v1没有neck没有sparse prediction

对比
在这里插入图片描述

V2
在这里插入图片描述

为和不用77了?VGG试验过后,33 完全可以代替
1.优点计算量小
2.网络可以做的更深,conv层可以更深,非线性能力更强,可以更好提取特征
Bottleneck结构
在这里插入图片描述

33负责扩大感受野,相邻像素之间关系的建立
1
1负责通道的减少,再进行3*3计算量减少

为什么没有fc了?
根据多尺度思路 24224 与 256256 320*320 仍然可以训练。而fc确固定了输入图片的尺寸。
在这里插入图片描述

就是因为 global avgpool 作用。Global就是最后整体不一定是77,最后都是所有的求均值,变成11000.对提高检测器的性能非常重要。

Backbone是单独train的,就得到一个分类而非检测,用的数据集是imagenet他有1000个类别,这就是darknet19

Bottleneck思想
在这里插入图片描述

E=0.5 c2 = 256

在这里插入图片描述

最后是检测头
Concat技巧,passtrough 做了一个多尺度特征融合
在yolov5中叫focus

2626512 与13131024 concat,就需要2626 变成1313
在这里插入图片描述

相当于切了四片,隔一个取一个像素
V2backbone改进的原则,计算量减少,网络加深

六、Yolov2训练的过程

在这里插入图片描述

Imagenet用224*224训练,就因为gap层的作用,训练效果更好。
所有的检测模型都需要重新设计backbone,也大多遵循以上训练原则,性能才会提升。

七、Yolov3 baackbone
在这里插入图片描述

Residual 残差网络。Conv有53层
Pooling层的丢掉了,利用步长为2的conv层替代了,pooling会丢失特征
在这里插入图片描述

上采样后特征图进行融合

八、Yolov4 baackbone

在这里插入图片描述

Mish 是激活函数,与relu leaky relu都是
Resnet换成了csp下采样
为什么要融合con两次?V3只做了一次而已,反应至
在这里插入图片描述

就是neck这个结构
就是PAN模块起作用,在后面会提

九、Yolov5 baackbone

结构要简单,速度相对快,三个检测头
在这里插入图片描述

Cbl不见了变成了csp。
Focus结构
在这里插入图片描述

V5结构

在这里插入图片描述

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

注意backbone中的csp与neck中的csp结构并不相同

Spp结构
在这里插入图片描述

作用是将特征图分成不同的格子去pooling,就是对不同的多尺度提特征
在这里插入图片描述

PAN v4 v5 都用
在这里插入图片描述

小目标的信息丢失的比较厉害
在这里插入图片描述

V4中改动
在这里插入图片描述

V5中也是这种。
Mish函数
在这里插入图片描述
可以做的更深还保持相对不错的效果在这里插入图片描述
在这里插入图片描述

十、数据增强

在这里插入图片描述

Mixup 不同透明度放在一起,cutmix前置mosaic拼接
在这里插入图片描述

十一、Yolov4 /v5 backbone、neck、head对比

backbone
V5:focus 两个新型csp结构 ssp pan
V4:csp结构+san空间注意力机制
Neck
V5:FPN+PAN+SSP+CSP 又考虑多尺度
V4:fpn+pan+ssp
Prediction
V5:giou__loss 自适应缩放
V4:ciou__loss
自适应缩放 输入416416 那么给定800600就需要填充黑边。自己匹配 黑边尽量少一点。
十二、消融实验
训练分两步
训练backbone
训练detector

1.训练backbone

在这里插入图片描述

可以参照yolov4,主要是多尺度思路
San 比如一些sota模型该用的都用上,包括class label smoothing

2.训练检测网络整体

在这里插入图片描述

3.注意力机制

Spatial attention module
在特征图中,有些比较重要的像素,比如包含目标,会产生一个权重,就相当于对空间注意力进行了一个筛选。比较大的权重更容易被筛选到
Channel 就是对channel产生权重被注意到。
在这里插入图片描述

用max pooling 与average pooling 产生两个feature map,然后做一个con经过sigmoid产生
在这里插入图片描述

4.Cmbn

在这里插入图片描述

Bn batch normalizing 标准化归一化就是把一个集合中的数据标准到正态分布上,便于后续处理。Relu激活函数
在这里插入图片描述

标准化后*r+b,就是让方差变成r^2,均值为b,这样做是因为像sigmoid在0附近是线性的,我们比较想要一个非线性结果,那么通过r,b训练得到就比较合适了动态更新就比较合适了。
在这里插入图片描述

Cbn如下
在这里插入图片描述

每次迭代时,不仅用当前时刻来更新,而且包含了之前所有时刻的信息,求的是一个平均值,可以减少迭代次数,更符合数据的预期。Bn要求batchsize要大,cbn则解决了这个问题。
Cmbn如下
在这里插入图片描述

最初的bn是ecohs更新一次,cbn是啥时候都更新,cmbn是每个mini batch更新一次,相当于是bn与cbn的一个折中

十三、补充

Dropupout v4使用了
在这里插入图片描述

有v1v2v3代码,还有腾讯youtu各个版本的实验

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页