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

解答:输入图片尺寸是固定的,比如说这里的 608 * 608,将它网格化,网格化就有三种情况:19 * 19,38 * 38,76 * 76,那么是不是 19 * 19 网格化后

          的小方格的宽和高要比其他两种要大,这也就意味着它的感受视野是最大的,所以它就能检测出大对象,而其他两个的对应关系也是相同的道理。

yolov4 算法原理

深度剖析目标检测算法YOLOV4

还是借用某位大神画的结构图,记不清名字了,是在抱歉。

乍一看,是不是跟 YOLOV3 长得很像,只不过比 YOLOV3 更复杂了一些,这里 YOLOV4 的作者将结构划分为以下四个部分:

Input,Backbone,Neck,Head,下面就来看看每个部分都做了哪些改进。

Input 改进点

采用 Mosaic 实现数据增强。

深度剖析目标检测算法YOLOV4

 Mosaic 算法原理:在输入图片集中随机选取 4 张图片进行随机缩放,随机裁剪,随机扭曲,然后将他们拼接起来,

                              其目的就是丰富样本数据集。

Backbone 改进点

采用 CSPNet(Cross Stage Partial Network)网络结构,它其实是在残差网络的基础上发展起来的。

深度剖析目标检测算法YOLOV4

具体改进点:

        > 用 Concat 代替 Add,提取更丰富的特征。

之前介绍过 Concat 操作后,特征图的尺寸不变,深度会增加,而 Add 操作后尺寸和深度都不改变,从这个意义上说,用 Concat 代替 Add,就能够提取更丰富的特征。

       > 引入 transition layer (1 * 1conv + 2 * 2pooling),提取特征,降低计算量,提升速度。

为什么引入 1 * 1conv,能够降低计算量,提升速度 ?

深度剖析目标检测算法YOLOV4

解答:这里我举一个实例来说明,输入图片大小是 56 * 56 * 256,要求得到输出大小是 28 * 28 * 512,这里就有两种实现方式:

          一次卷积方式,它的卷积核参数个数是 117 万;另一种是二次卷积方式,引入了 1 * 1 卷积,它的卷积核参数个数是 62 万,

         相比于一次卷积方式,它的卷积核参数个数降低了一倍。

        > 将 Base layer 分为两部分进行融合,提取更丰富的特征。

将 Base layer 一分为二,一部分通过类似残差网络得到的输出与另一部分进行 Concat 操作,将操作后的结果通过 Transition Layer。

Backbone 改进点

用 dropblock 取代 dropout

深度剖析目标检测算法YOLOV4

dropout 作用:防止过拟合,

dropout 缺点:每次训练时随机去掉的神经元可以通过相邻的神经元来预测,因为随着网络层数的增加,神经元之间的相关性是越来越强。

dropblock:每次训练时随机去掉一整片区域,这样就能组合更多不一样的网络,从而表现出更好的泛化作用。

Neck 改进点 

FPN(Feature pyramid networks) + PANet(Path Aggregation Network)

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

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