深度剖析目标检测算法YOLOV4 (4)

深度剖析目标检测算法YOLOV4

它其实是在 YOLOV3 的基础上增加了一个自底向上的 PANet 结构,特征图的尺寸是通过下采样得到的,而下采样是通过卷积的方式实现的(改变滑动窗口的步长)。

Head 改进点

用 CIoU Loss 取代 Iou Loss

深度剖析目标检测算法YOLOV4

 IoU loss 中 IoU 交并比,两个框的交集/并集,有两个缺点:

  > 无法反应两个的距离

例如 状态 1,两个框不相交,无论怎样移动两个框,IoU = 0。

  > 无法区分两者相交的情况

例如 状态 2 和 3,两个框相交的情况完全不一样,但是 IoU 相同。

深度剖析目标检测算法YOLOV4

 CIoU Loss 的思想:第一步,在两个框最外层再画一个最小的矩形框,求出这个框的对角线的距离,这个距离就能衡量两个框的距离;

                               第二步,求出两个框中心点的欧式距离,这欧式距离就能衡量两者的相交情况。

深度剖析目标检测算法YOLOV4

CIoU Loss 数学表达式如上,它能有效的解决 IoU Loss 存在的问题。

YOLOV4 源代码日志解读

深度剖析目标检测算法YOLOV4

网络层数:

 YOLOV4 总共层数有 161 层,YOLOV3 是 106 层,网络层数增加是非常明显的。

从这个图可以看出,YOLOV4 采用了大量的 1 * 1 卷积,之前介绍过,采用 1 * 1 卷积,是能降低计算量,提升速度的。

每列含义

layer : 每层操作名称

filters :卷积核的深度

size/strd(dil):卷积核的尺寸/滑动窗口的步长

input:输入图片的大小

output:输出图片的大小

代表性层的含义(需要注意的是,这里隐藏了一个前提条件 padding = 1)

> 第 0 层 conv 卷积操作,表示 608 * 608 * 3  &  3 * 3 * 32 => 608 * 608 * 32,这里 32(输出特征图尺寸深度)

是由卷积核的深度决定的。

> 第 1 层 conv 还是卷积操作,表示 608 * 608 * 32  &  3 * 3 * 64 => 304 * 304 * 64,大家发现没有,输出特征图的尺寸

相比于输入特征图的尺寸,降低了一倍,这是因为滑动窗口的步长变成了 2 。

> 第 7 层 Shortcut,它其实等价于 Add 操作,也就是第 6 层的输出与第 4 层的输出进行卷积,

304 * 304 * 64  &  304 * 304 * 64 => 304 * 304 * 64,输出特征图的尺寸和深度都没有改变。

> 第 9 层 route 操作,它其实等价于 Concat 操作,也就是第 8 层的输出与第 2 层的输出进行卷积,

304 * 304 * 64  &  304 * 304 * 64 => 304 * 304 * 128,输出特征图尺寸不变,深度增加,为两个输入特征图深度之和。

相信大家理解了这些层的含义之后,对于后面的其他层的理解,就比较容易了,下面看看它最后的输出:

76 * 76 * 255,  38 * 38 * 255,19 * 19 * 255,这跟之前介绍 YOLOV4 结构图的输出是相一致的。

引用

https://bbs.cvmart.net/topics/2365

https://pjreddie.com/media/files/papers/YOLOv3.pdf

https://arxiv.org/pdf/2004.10934.pdf

https://arxiv.org/pdf/1911.11929v1.pdf

https://arxiv.org/pdf/1803.01534.pdf

 不要让懒惰占据你的大脑,不要让妥协拖垮了你的人生。青春就是一张票,能不能赶上时代的快车,你的步伐就掌握在你的脚下。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxzff.html