YOLO系列:PassThrough Layer、spp、IoU、GIoU、DIoU、CIoU、Focal loss、PAN、csp;

您所在的位置:网站首页 passthrough层功能 YOLO系列:PassThrough Layer、spp、IoU、GIoU、DIoU、CIoU、Focal loss、PAN、csp;

YOLO系列:PassThrough Layer、spp、IoU、GIoU、DIoU、CIoU、Focal loss、PAN、csp;

2024-07-11 13:46| 来源: 网络整理| 查看: 265

目标检测算法可以分为两类,一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。而另一类是Yolo和SSD,这类是one-stage算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。第一类方法是准确度高一些,但是速度慢,但是第二类算法是速度快,但是准确性要低一些。这里讲yolo系列。

yolov1 yolov1将输入resize成224x224,通过卷积神经网络映射成7x7x30的特征图,则我们可以知道:特征图上的每个点都是30维的向量,总共有7x7=49个特征点。而每个特征点对应到原图中就是一个块区域,这个区域称为grid cell。每一个grid预测多个框和一个类别,这个框称为bounding box。每个bounding box包含x,y,w,h,confidence五个属性。 刚开始每个grid cell预测出bounding boxes,我们需要比较bounding box与ground truth(正确框住物体的框)的差距,并进行反向传播,这就会有一个问题:bounding box与哪个ground truth进行比较呢?【这就正负样本的选择问题】 答:bounding box由grid cell预测得到,所以会查找有哪些ground truth的中心落在了当前grid中,并且计算bounding box与这些ground truth之间的IOU,当IOU超过0.5,我们就称此bounding box为正样本。我们需要计算ground truth与正样本之间的差距,使用梯度下降使正样本接近ground truth。 yolov2 yolov2的七种优化

1.Batch Normalization 2.High Resolution Classifier:用高分辨率的图像进行训练,即yolov1将将输入都resize成224x224,yolov2将输入都resize成416x416 3.Convolutional With Anchor Boxes:每个grid都有固定的大小几个框,称为Anchor Boxes。通过预测Anchor Box相对于gt的偏移量来调整Anchor Box。【注】yolov2中将Anchor称为prior 4.Dimension Clusters:在Faster R-CNN和SSD中,先验框(Anchor Boxes)的维度(长和宽)都是手动设定的,YOLOv2采用k-means聚类方法对训练集中的边界框做了聚类分析。因为设置先验框的主要目的是为了使得预测框与ground truth的IOU更好,所以聚类分析时选用box与聚类中心box之间的IOU值作为距离指标:\(d(box, centroid) = 1 - IOU(box, centroid)\) 5.不让bounding box的中心超出当前grid

\[b_x= \sigma(t_x)+c_x \]

\[b_y= \sigma(t_y)+c_y \]

\(c_x\)和\(c_y\)代表经过归一化操作的中心坐标 \(\sigma\)是sigmoid函数 通过sigmoid函数让预测得到的bounding box的中心不会超出当前grid

6.Multi-Scale Training:每经过10个batch就随机从{320, 352,...,608 }选取一个数对输入图像进行resize,从而提高模型的鲁棒性。{320, 352,...,608 }中数之间的差距为32的原因:如果输入图像resize成416x416,那输出的特征图大小为13x13,416/13=32,也就是说下采样因子为32。

7.Fine-Grained Features:将底层的特征图和高层的特征图进行拼接,从而引入底层的信息。具体为:将26x26x512的特征图通过1x1的卷积层变成了26x26x64(源码中有此步骤,论文中没有),然后通过PassThrough Layer将26x26x64映射成13x13x256,最后将此13x13x256特征图与高层的13x13x1024进行拼接得到13x13x1280的特征图。拼接过程如下所示:

PassThrough Layer的具体过程如下: 上图中,长度和宽度变为原来的一半,通道数变为原来的四倍。

yolov2模型框架

yolov2的骨干网络:Darknet-19,19代表有19个卷积层。

yolov3

直接看:https://blog.csdn.net/qq_37541097/article/details/81214953 ,文中要注意的点:

文中的2 + 12 + 1 + 22 + 1 + 82 + 1 + 82 + 1 + 4*2 + 1 = 53 实际为为2 + 1*2 + 1 + 2*2 + 1 + 8*2 + 1 + 8*2 + 1 + 4*2 + 1 = 53 文中的( 4 + 1 + c ) × k:4代表目标边界框的四个偏移量、1代表预测目标边界框内包含目标的概率、c代表预测边界框对应c个目标类别的概率、k代表预测边界框的个数。 yolov3 spp Mosaic图像增强

Mosaic图像增强:yolo里面其实用到很多数据增强的策略,比如随机裁剪、亮度饱和度调整、mix up等,下面介绍一下Mosaic图像增强:将四张图像拼接成一张图像输入网络。这样做的好处:

增加数据的多样性 增加目标个数 BN能一次性统计多张图片的参数:比如输入一张由四张图像拼接成的图像等效于并行输入四张(batch size=4)原始图像。 SPP模块:

总共有四个分支,最左边的分支直接将输入作为输出,其他三个分支进行了maxpool操作。以第一个maxpool操作为例,5x5/1其中1代表步距为一,并进行了padding操作来保证输入和输出的size保持不变。 Concatenate:代表在channel方向进行拼接。

IoU、GIoU、DIoU、CIoU损失函数:

作者推荐文章:IoU、GIoU、DIoU、CIoU损失函数

IOU loss: \(loss = -ln(IOU)\)、$loss = 1-IOU $

GIOU(Generalized Intersection over Union):

\[GIOU = IOU-\frac{A_c-U}{A_c}, -1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3