YOLO系列(3)

YOLO系列V4

整体介绍(Optimal Speed and Accuracy of Object Detection)

虽然作者换了 , 但精髓没变!

如果CV界有劳模奖 , 一定非他莫属!

整体看还是那个味 , 细还是他细!

江湖传闻最高的武功 :嫁衣神功

 


V4贡献

亲民政策 , 单GPU就能训练的非常好 , 接下来很多小模块都是这个出发点

两大核心方法 ,从数据层面和网络设计层面来进行改善消融实验 

全部实验都是单GPU完成 ,不用太担心设备了


Bag of freebies(BOF)

只增加训练成本 , 但是能显著提高精度 , 并不影响推理速度

数据增强: 调整亮度、 对比度、 色调、 随机缩放、 剪切、 翻转、 旋转

网络正则化的方法: Dropout、 Dropblock等

类别不平衡 , 损失函数设计


Mosaic data augmentation

方法很简单 ,参考CutMix然后四张图像拼接成一张进行训练

 

 


数据增强

Random Erase: 用随机值或训练集的平均像素值替换图像的区域

Hide and Seek: 根据概率设置随机隐藏一些补丁


Self-adversarial-training(SAT)

通过引入噪音点来增加游戏难度

 


DropBlock

之前的dropout(随机删除神经元,预防过拟合)是随机选择点(b) , 现在吃掉一个区域

 


Label Smoothing

神经网络最大的缺点: 自觉不错(过拟合) , 让它别太自信例如原来标签为(0,1):

 使用之后效果分析 :簇内更紧密 , 簇间更分离

 


IOU损失

IOU损失: (也经常1-IOU)

问题: 没有相交则IOU =0无法梯度计算 , 相同的IOU却反映不出实际情况到底咋样

 


GIOU损失

公式:

 引入了最小封闭形状C( C可以把A , B包含在内)

在不重叠情况下能让预测框尽可能朝着真实框前进

但是这种情况下又完了。 。 。       

 

 


DIOU损失

公式:

其中分子计算预测框与真实框的中心点欧式距离

分母是能覆盖预测框与真实框的最小BOX的对角线长度c

 

 


CIOU损失

公式:

 

 损失函数必须考虑三个几何因素: 重叠面积 , 中心点距离 , 长宽比

其中α可以当做权重参数


DIOU-NMS

之前使用NMS来决定是否删除一个框 , 现在改用DIOU-NMS

公式:

  不仅考虑了IoU的值,还考虑了两个Box中心点之间的距离

其中M表示高置信度候选框 , Bi就是遍历各个框跟置信度高的重合情况


SOFT-NMS

柔和一点的NMS , 更改分数而且直接剔除

 


Bag of specials(BOS)

 增加稍许推断代价 , 但可以提高模型精度的方法

网络细节部分加入了很多改进 , 引入了各种能让特征提取更好的方法

注意力机制 , 网络细节设计 ,特征金字塔等 , 你能想到的全有

读折一篇相当于把今年来部分优秀的论文又过了一遍


SPPNet(Spatial Pyramid Pooling)

 V3中为了更好满足不同输入大小 , 训练的时候要改变输入数据的大小

 SPP其实就是用最大池化来满足最终输入特征一致即可

 


CSPNet( Cross Stage Partial Network)

每一个block按照特征图的channel维度拆分成两部分

一份正常走网络 , 另一份直接concat到这个block的输出

 


CBAM

 其实就是加入了注意力机制 , 已经很常见了在各种论文中

V4中用的是SAM , 也就是空间的注意力机制 不光NLP,语音识别领域在搞attention , CV中也一样

 


YOLOV4中的Spatial attention module

一句话概述就是更简单了 ,速度相对能更快一点

 


PAN(Path Aggregation Network)

故事得先从FPN说起自顶向下的模式 ,将高层特征传下来好像只有一条路子 , 能不能来个双向的呢?这就得轮到PAN登场了 , 思想也很简单

 

引入了自底向上的路径 , 使得底层信息更容易传到顶部并且还是一个捷径 , 红色的没准走个100层(Resnet) , 绿色的几层就到了

 YOLOV4中并不是加法 , 而是拼接

 


M ish:(也许就是明日之星)

Relu有点太绝对了 , M ish更符合实际

公式:f(α)=·tanh(ln(1+ew))

但是计算量确实增加了 ,效果会提升一点

 


eliminate grid sensitivity

比较好理解 , 坐标回归预测值都在0-1之间 , 如果在grid边界怎么表示? 此时就需要非常大的数值才可以达到边界为了缓解这种情况可以在激活函数前加上一个系数(大于1的) :

 

 


整体网络架构

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值