YOLO-v3论文笔记

一、网络架构

首先解释一下Top1和Top5:模型在ImageNet数据集上进行推理,按照置信度排序总共生成5个标签。按照第一个标签预测计算正确率,即为Top1正确率;前五个标签中只要有一个是正确的标签,则视为正确预测,称为Top5正确率

YOLOv3使用的backbone是Darknet-53,他是在YOLOv-2上改进的,加深了网络深度,同时引入了Resnet的跨层加和操作。
YOLO-v3论文笔记_第1张图片
DBL : 如图1左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是yolo_v3的基本组件。就是卷积+BN+Leaky relu。对于v3来说,BN和leaky relu已经是和卷积层不可分离的部分了(最后一层卷积除外),共同构成了最小组件。
resn :n代表数字,有res1,res2, … ,res8等等,表示这个res_block里含有多少个res_unit。这是yolo_v3的大组件,yolo_v3开始借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深(从v2的darknet-19上升到v3的darknet-53前者没有残差结构 )。对于res_block的解释,可以在上图的右下角直观看到,其基本组件也是DBL。
concat:张量拼接。将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作是不一样的,拼接会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。

1、yolov3中只有卷积层,通过调节卷积步长控制输出特征图的尺寸,所以对于输入图片没有特别限制 。yolo_v2中对于前向过程中张量尺寸变换,都是通过 最大池化来进行,一共有5次。而v3是通过卷积核 增大步长来进行,也是5次。
2、借鉴了金字塔思想 ,特征图的输出维度为NxNx[3x(4+1+80)],NxN为输出特 征图格点数,一共3个Anchor框,每个框有4维预测框数值 tx, ty, tw,th,1维预测框置信度,80维物体类别数。所以第一层特征图的输出维度为 8x8x255。
3、总共输出3个特征图,第一个特征图下采样32倍,第二个16倍,第三个8倍,输入图像经过Darknet-53(无全连接层),再经过Yoloblock生成的特征图被当作两用,第一用为经过3x3卷积层、1x1卷积之后生成特征图一,第二用为经过1x1卷积层加上采样层,与Darnet-53网络的中间层输出结果进行拼接,产生特征图二。同样的循环之后产生特征图三。

输入

416*416

二、输出特征图的解码

1、先验框
在Yolov1中,网络直接回归检测框的宽、高,这样效果有限。所以在Yolov2中,改为了回归基于先验框的变化值,这样网络的学习难度降低,整体精度提升不小。采用对图像中object进行k均值聚类。

三、缺点

1、当iou的阈值为0.5时,yolo-v3的map可以很高,但是当阈值提高时,它的map反而在下降

你可能感兴趣的:(论文笔记,深度学习,pytorch,神经网络)