YOLO V4论文笔记

1、backbone 是指用于在imagenet数据集上预训练的结构,用于提取图片特征。用于GPU:vgg,resnet,densenet;用于CPU:squeezeNet,mobilenet,shuffleNet
2、head 是指用于预测类别和bbox的结构。
3、neck 是指在backbone与head之间插入的一些层,用于从不同的stages提取图片特征。通常由bottom-up paths和top-down paths组成,像FPN,Path Aggregation Network(PAN),BiFPN和NAS-FPN等

请添加图片描述

bag of freebies

定义:只是改变了训练技巧,或者只是增加了训练时间的措施,像:数据增强:包括翻转,裁剪等,也包含遮挡、擦除等 ;损失函数;正则化等

1、dropblock请添加图片描述

Focal Loss

请添加图片描述

CIOU损失

smoothL1损失是将坐标的四个点分别计算L1损失,而不考虑他们之间的关系,基于IOU损失的迭代:IOU损失=>GIOU损失=>DIOU损失=>CIOU损失

Bag of specials

定义:增加了模型预测的时间,但是加大地增加了准确率。

1、SAM

注意力机制请添加图片描述

2、激活函数

relu、swish、mish等

3、NMS

nms,soft nms(不是直接将重叠度高的bbox去掉,而是将该bbox的的score根据一个权重函数将其减小)

CSPDarknet

在这里插入图片描述
cspnet是将将feature map拆成两个部分,一部分进行卷积操作,另一部分和上一部分卷积操作的结果进行concatenate。因此它可以与向resnet,densenet或者darknet进行合并。

SPP

Spatial Pyramid Pooling(SPP)解决的问题:在R-CNN网络中,输入CNNs网络的图像必须是固定大小的图像。也就是通过SS算法或者rpn提取出来的proposal regions尺寸是不统一的,经过一个warp变形操作,所有proposal regions的尺寸都变成一致。然后再输入到CNN网络中。图像的多种多样的尺寸带来的问题是让图像看起来很不自然,可能会降低识别精度。

SPP的做法是在卷积层后增加一个SPP layer,spp layer将features map拉成要给固定长度的feature vector。然后将feature vector输入到fully-connected layers中。SPP的结构如下所示:
在这里插入图片描述

SPP这样做有两个优点:(i)解决的proposal regions尺寸问题;(ii)先计算出feature maps,在表示每个proposal region时候特征图的结果可以共享,节约计算时间。

PAN

YOLOv4中采用FPN与PAN相结合的结构,和Yolov3的FPN层不同,Yolov4在FPN层的后面还添加了一个自底向上的特征金字塔。这样结合操作,FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征,两两联手,从不同的主干层对不同的检测层进行参数聚合。

如下图中所示,FPN是自顶向下,将高层的强语义特征传递下来,对整个金字塔进行增强,不过只增强了语义信息,对定位信息没有传递,而本文就是针对这一点,在FPN的后面添加一个自底向上的金字塔,可以说是很皮了。这样的操作是对FPN的补充,将低层的强定位特征传递上去。

我们都知道,深层的feature map携带有更强的语义特征,较弱的定位信息。而浅层的feature map携带有较强的位置信息,和较弱的语义特征。FPN就是把深层的语义特征传到浅层,从而增强多个尺度上的语义表达。而PAN则相反把浅层的定位信息传导到深层,增强多个尺度上的定位能力。
在这里插入图片描述

YOLOv4网络结构

在这里插入图片描述

CBM :Yolov4网络结构中的最小组件,由Conv+Bn+Mish激活函数三者组成。
CBL :由Conv+Bn+Leaky_relu激活函数三者组成。
Res unit :借鉴Resnet网络中的残差结构,让网络可以构建的更深。
CSPX :借鉴CSPNet网络结构,由卷积层和X个Res unint模块Concate组成。
SPP :采用1×1,5×5,9×9,13×13的最大池化的方式,进行多尺度融合。

每个CSPX中包含5+2*X个卷积层,因此整个主干网络Backbone中一共包含1+(5+2x1)+(5+2x2)+(5+2x8)+(5+2x8)+(5+2x4)=72。

核心内容

1、输入端 :这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练
2、BackBone主干网络 :将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
3、Neck :目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
4、Prediction :输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值