YOLO系列简要分析

1: YOLO V1分析

YOLO V1是YOLO系列的开山之作,提出了不同于faster-rcnn两阶段的模型结构,而是直接采用端到端的one-stage结构。这样设计的好处在于,避免了模型在特征提取框处的时间耗费,加速了模型的推理,这样有利于实时的目标检测。YOLO v1采用的是分而治之的算法,首先将网络经过一系列的特征提取获得一个尺度为7*7大小的网格,每个网格分别预测中心点落在网络的目标。这样设计的话,就不需要额外的在训练处一个RPN网络,专门用于候选框的生成和定位,这无疑减少了模型的计算负担。YOLO V1网络中每个候选框预测两个bounding box,每个bounding box要预测(x,y,w,h)这四个值和一个置信度(模型为前景的概率*bounding box和gt box的IOU).其中(x,y,w,h)每个值分别代表了预测bounding box的中心点坐标和它的长和宽。在计算损失函数的时候,采用的是根号w和根号h的形式,这样做的好处就是,对于较大的目标,微小的偏移对其定位精度影响较小,但是对于较小的目标,微小的偏移对其定位精度影响较大,因为不能采用同一种的衡量机制,也就是线性的方式,因为如此的话,使得偏移相同位置,对大小目标定位精度的影响都是一至的了,所以经过考虑采用的是根号的形式。对于模型的损失而言,分别计算三个方面的损失,分别是边界框坐标损失,置信度损失和类别预测的损失。边界框的损失相对而言更加的重要些,因此增加了对边界框定位损失的惩罚。同时在训练的过程中,有大量的框不包含目标,因此它的损失相对而言占的分量大些,为了使得模型不过分关注于这部分的损失,就为该损失增加了一个惩罚的因子,设置为0.5.

优点:

1.首先检测的速度更快,因为是one-stage的,去除了RPN网络,是一个端到端的模型。

2.迁移的能力强,能够运用到其他新的领域中去。

缺点:

1.对于相互靠近的物体和小物体,检测的效果不好,因为每个网络只预测两个bounding box,并且同时属于一个类。

2.定位损失较弱,没有类似于anchor box这种的先验知识

3.YOLO对于不常见的角度泛化能力较弱

2:YOLO V2

YOLO V2的话,主要解决YOLO V1召回率和定位精度的不足。和YOLO V1相比的话,加入了batch norm和多尺度的训练策略,以及引进了faster-rcnn中的anchor机制,用于解决定位不佳的问题,但是有所不同的是,它采用的是k-means聚类算法计算出更好的anchor模板,而不是如faster-rcnn这样事先定义好的anchor模板。同时也结合了图像的细粒度的特征,将浅层的特征和高层的特征进行融合,因为浅层的特征包含了一些具体的细节信息,比如纹理和边界特征之类的,有利于小目标的检测。接下来会讲述下k-means算法的一些流程,聚类的目的是使Anchor boxes和临近的gt box有着最大的IOU,因此自定义的距离为:

d(box,centroid)=1-IOU(box,centroid)

到聚类中心的距离越小越好,IOU值越大越好。具体的实现方法:

(1):使用原始的只有标注框的信息

(2):给定K个聚类中心点(Wi,Hi),i=1,2,3,4,这里面的Wi和Hi分别代表的是anchor的高和宽,因为没有中心点的坐标,因此anchor的位置是不固定的,计算标注框和每个聚类中心点的距离,计算时候每个标注框的中心坐标要与聚类中心点的坐标对其,这样才能计算IOU,将标注框分配给d最小的聚类中心。

(3):对所有的标注框标注完成之后,重新计算每个聚类中心的坐标,假设该聚类中心被多个标注框使用,直接采用均值的形式来更新聚类中心。

在连接低层次特征和高层次特征的时候,采用的是passthrough layer,将特征的空间区域的信息转换为channel间的信息,这样操作目的在不损失原始图片一些特征信息的基础上完成了下采样的操作。

3:YOLO V3

YOLO V3在YOLO V2的基础上再次做出了一些的改进,主要采用将Darnet19改成了DARnet53,利用的是特征金字塔的结构实现了多尺度的目标检测,分类方法采用的是逻辑回归代替了softmax,在兼顾实时性的同时也保证了目标的准确性。softmax多用于处理单标签问题上,因为会假设该物体只属于一个类别,因为通过softmax之后,所有的神经元概率相加之和为1,会突出概率较高的预测类别,而压制其他的类别概率。但是对于目标检测来说,一个目标也许在多个类别中具有相似的特征,如果采取softmax的话,会压制它在相似类别处的表现,这样损失函数设计的就是粗粒度的,我们需要的是一个更加精细的损失函数,客观的反应出在相类似类别中的表现。此时需要的就不是softmax的激活函数,而是sigmoid函数,把输出的结果映射到(0,1)处,对每个类别都进行二分类。

4:YOLO V4

YOLO V4网络结构是由CspDarknet 53,spp,PANet和YOLOV3的头部组成的。CspDarknet53就是将原来堆叠的残差快进行切分,将它分为两个支路,主干部分继续堆叠原来的部分,而支路部分的话相当于一个残差边,经过少量的处理之后就可以直接的和原始的主干部分进行相连。使用了Mish=x.tanh(ln(1+ex))

5:YOLO V5

加入了Mosaic数据增强、将4张图片拼接成一张图片,这样不仅可以丰富数据集的背景信息,同时还会增加网络的训练速度采用了自适应锚框计算、自适应的图片放缩和focus机制。focus机制的话类似于YOLO v2中所引入的passthrough layer,在不损失原始特征信息的情况下,做到对特征图进行下采样。

6:YOLO X

采用的是解耦头,将定位的损失、分类损失和置信度损失分割开来,这样设计的意义在于加快了模型的收敛速度,我的理解在于使得每个损失分支都互不影响,丰富了梯度的更新。同时采用的是无锚检测器,无锚机制的话显著减少了启发式调整和许多技巧的设计参数的数量。同时还加入了许多的数据增强的操作,比如Mosaic等,集众多trick之大成。

                                                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值