YOLO V3 的一些学习记录

整个网络主要是由一系列的1x13x3的卷积层组成(每个卷积层后都会跟一个BN层和一个LeakyReLU)层,作者说因为网络中有53个convolutional layers,所以叫做Darknet-53。下图就是Darknet-53的结构图,在其中标注了一些信息方便理解。(卷积的strides默认为(1,1),padding默认为same,当strides为(2,2)时padding为valid)

注:

不同的padding方式,VALID是采用丢弃的方式,比如input_width=13,只允许滑动2次,多余的元素全部丢掉 SAME的方式,采用的是补全的方式,对于上述的情况,允许滑动3次,但是需要补3个元素,左奇右偶,在左边补一个0,右边补2个0;

SAME 向上取整
VALID 向下取整

 

1、特点

(1)全部使用卷积结构。使用1x13x3的卷积以及残差块组成的

(2)原论文中提到的输入大小为320*320,416*416,608*608。这个大小必须是32的整数倍数。

(3)多尺度训练和输出:13*13,26*26,52*52分别用来检测大中小目标。

(4)yolo_v3有5次下采样 (池化层),每次采样步长为2,所以网络的最大步幅(步幅指层的输入大小除以输出)为2^5=32

(5)Anchor box的确定 ,这个先验框不同于之前Faster-Rcnn和SSD那样人工设定,在yolo v2和yolo v3中,都采用了对图像中的object采用k-means聚类。这个先验框的聚类与输入图像大小有关,作者配置文件中用的是416*416的输入

(6)损失函数。在v3的论文里没有明确提所用的损失函数,确切地说,yolo系列论文里面只有yolo v1明确提了损失函数的公式。对于yolo这样一种讨喜的目标检测算法,就连损失函数都非常讨喜。在v1中使用了一种叫sum-square error的损失计算方法,就是简单的差方相加而已。想详细了解的可以看我关于v1解释的博文。我们知道,在目标检测任务里,有几个关键信息是需要确定的:(x,y),(w,h),class,confidence。yolov3 除了w, h的损失函数依然采用总方误差之外,其他部分的损失函数用的是二值交叉熵。最后加到一起。那么这个binary_crossentropy又是个什么玩意儿呢?就是一个最简单的交叉熵而已,一般用于二分类,这里的两种二分类类别可以理解为"对和不对"这两种。

 

网络中作者进行了三次检测,分别是在32倍降采样(2^5),16倍降采样(2^4),8倍降采样(2^3)时进行检测,这样在多尺度的feature map上检测跟SSD有点像。在网络中使用up-sample(上采样)的原因:网络越深的特征表达效果越好,比如在进行16倍降采样检测,如果直接使用第四次下采样的特征来检测,这样就使用了浅层特征,这样效果一般并不好。如果想使用32倍降采样后的特征,但深层特征的大小太小,因此yolo_v3使用了步长为2的up-sample(上采样),把32倍降采样得到的feature map的大小提升一倍,也就成了16倍降采样。同理8倍采样也是对16倍降采样的特征进行步长为2的上采样,这样就可以使用深层特征进行detection。

Yolo v3通过上采样的方式很好的使16倍降采样和8倍降采样使用深层特征,但进行4次下采样和3次下采样得到的浅层feature map大小是一样的。Yolo_v3想把这些浅层特征也利用起来,就有了route层。把16倍降采样得到的feature map和四次下采样得到的层拼接在一起,在channel那个维度进行拼接。这样拼接的好处:让网络同时学习深层和浅层特征,表达效果更好。8倍降采样同样也是这样的操作,把三次下采样的feature map拼接在一起。

feature map中的每一个cell都会预测3个边界框(bounding box) ,每个bounding box每个box需要有(x, y, w, h, confidence)五个基本参数,然后还要有N个类别的概率,coco数据集80类目标,voc20类目标。因此对于coco数据集,在网络输入为416*416时,网络的输出大小为13*13(3*(4+1+80))=43095

 

2、网络结构图如下:

darknet-53网络结构

残差单元:

darknet-53 残差单元residual

Feature Extractor

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值