Yolo学习记录

Yolov1

整体思路就是利用CNN做回归任务,预测出物体框的坐标;

  • 输入s*s的图片。每一个小格子两种候选框(v1中只有两种),目标是要计算候选框的IoU值与置信度;
  • 计算IOU,IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值,选择IOU值大的候选框进行后微调,NMS(非极大值抑制)去除另一个IoU比较低的候选框;
  • 计算每个格子confidence置信度,然后根据阈值去除可能性比较低的目标窗口;
    在这里插入图片描述
    全连接层前面的特征图不能变(因为全连接层的参数矩阵大小不能改变),所以输入必须为448448 3,最后reshape成为7730,30表示每个格子的30个值。
    两种预选框,B1(x1,y1,w1,h1,c1),B2(x2,y2,w2,h2,c2).30个值为别为5+5+20个分类的预测值。
    在这里插入图片描述缺点:重合的物体无法检测,小物体检测效果一般,长宽比可选但单一。

Yolov2

v2只是在一些小细节进行改进

Batch Normalization (BN)

1、,Dropout一般用于FC层,V2版本舍弃了Dropout,v2中舍弃了全连接层,卷积后全部加入Batch Normalization。Dropout的做法是每次对一个batch做训练前对network中的每一个neuron(包括input layer的neuron),做sampling(抽样) ,每个neuron都有p%的几率会被丢掉,如果某个neuron被丢掉的话,跟它相连的权值w ww也都要被丢掉,剩下的neuron组成一个thinner network,以此thinner network为结构进行训练。可以防止CNN训练过程中的过拟合。

2、BN是加在卷积层后的,对卷积后的结果做归一化,控制均值和方差,以至于让卷积朝着更好的方向提取特征。网络的每一卷积层的输入都做了归一化,收敛相对更容易。

3、经过Batch Normalization处理后的网络会提升2%的mAP

4、现在Batch Normalization已经成为网络必备处理。

更大分辨率

1、v1训练时用的是224224.测试时使用448448,V2训练时额外又进行了10次448*448的微调,提高了mAP约4%。

网络结构DarkNet19

1、取消了全连接层,全部用卷积,减少了参数。
2、5个池化层,也就是5次降采样,实际输入为416416(为了能被32整除),变成1313的特征图大小。
3、使用33 与11卷积,一共使用19个卷积层
在这里插入图片描述

聚类提取先验框(Anchor Box)

1、借鉴faster——rcnn,但是选择的先验比例都是常规的,不一定完全适合数据集。比如1比1,1/2。
2、Yolov2使用K-means聚类中的距离,d=1-IOU,k=5。这样做降低mAP,提高查全率recall。
在这里插入图片描述

Directed Location Prediction

V2中没有使用偏移量,而是选择相对grid cell的偏移量,也就是在偏移量前面加上sigmoid(),让偏移量保持在0-1之间 。直接放图,
在这里插入图片描述

感受野

感受野的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。也就是越看越大,考虑一个整体。
感受野相同时,比如77c 与333 所用的参数不同,在最后一层时感受野最大,可能会有小目标丢失,对倒数第二层进行拆分,然后进行拼接。
在这里插入图片描述

Multi—Scale(多尺度)

因为没有全连接层,所以输入的图片最小为320320 ,最大为608608

最后总结:v2中的提升
在这里插入图片描述

3、Yolov3

1、最大的改进就是网络结构,使其更适合小目标的检测。
2、特征做得更细致,融入多持续特征图像来预测不同规格物体。
3、B=9,3种scale,各3种规格。
4、softmax改进,可以预测多标签任务。

多scale

为了能检测到不同大小的物体,设计了3个scale,在不同感受野时,检测物体。比如在5252时检测小目标,在2626时检测中目标,在1313时检测大目标,但是要向后借鉴。不同特征图进行融合。
scale变换方法:上采样,就是将 13
13采样成为2626,再与2626融合在一起。

在这里插入图片描述

残差连接-为了更好的特征

借鉴resnet(残差网络)思想,堆叠更多的层来进行特征提取。核心就是学得好的网络保留,学得不好的就丢弃。
在这里插入图片描述

Darknet53

在这里插入图片描述
没有池化和全连接层,全部卷积,通过设置stride让特征图减小
这个图更好看
在这里插入图片描述
v3中有三种输出
在这里插入图片描述
用logistic激活函数选择softmax,对于每一个类都进行预测

4、Yolov4

1、单GPU就能跑。
2、两大核心方法,从数据层面和网络设计层面来进行改善。

Mosaic data augmentation

maxup融合
cutout剪切
cutmix剪切融合

Self adversarial training(SAT)

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

DropBlock

DropOut是随机消失点,Block是一个区域

Lable Smoothing

特征平滑

GIOU损失,DIOU,CIOU最终

IOU损失=0时
1、无法计算梯度,梯度消失
2、相同的情况,可能会有相同的梯度。
引入最小包围框C,GIOU在不重叠情况下能让预测框尽可能朝着真实框前进 。 这样能解决梯度问题。
DIOU直接用距离来度量 ,分子为预测框与真实框的中心点欧式距离,分母是能覆盖预测框与真实框的最小Box的对角线长度c。
CIOU中加入了长宽比。

DIOU-NMS
soft-nms不会一刀切,只是降低权重

SPPNet

SPP用最大池化来满足最终输入特征一致。改变输入的大小。

CSPNet

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

CBAM
V4中用的是SAM空间注意力机制。

PAN
FPN自顶向下,将高层特征传下来
PAN引入自下向上,将底层的特征与上层进行拼接。

激活函数Mish
用Mish代替Relu

整体网络结构:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值