YOLOV3学习笔记

目录

1. 更先进的特征提取网络

2. 位置检测原理


1. 更先进的特征提取网络

        YOLOV3相比YOLOV2其主体的特征提取网络变大了点,我想这也是其mAP提升的原因。YOLOV2的backbone使用了darknet19基础网络,darknet19即有9个卷积层,YOLOV3则使用了一种新的特征提取网络——darknet53,顾名思义有53个卷积层,论文中提到了darknet53的具体计算量,180.7亿次浮点计算,而上篇文章《YOLOV2学习笔记》中我们学习了darknet19只有70亿左右的浮点计算量,显然计算量多了很多,但相比于其提升的精度,这点计算量不算什么。除了网络架构更大了点,在darknet53中还创新的提出了residual操作。

       darknet53网络的分类性能与resnet101,resnet152相比其网络结构对GPU的利用更加高效,如图2可以看出,虽然53的计算量是resset152的2/3,但其推理速度是resnet152的两倍,与计算量相近的热水net101相比,推理速度是他的1.5倍,这充分说明了darknet53网络结构的优越性,对GPU的利用更高效。在图2基础网络对比图中显示了darknet53每秒钟计算的浮点运算最多,(Billion Floating Point/Second)BFLOP/S值达到了1457。

YOLOV3学习笔记_第1张图片

图1 daknet53网络

YOLOV3学习笔记_第2张图片

图2 base网络性能对比

2. 位置检测原理

        关于目标边界框的预测,在下图所示的anchor框中,如果anchor矩形框被检测的目标完全包含,则在边界框回归中参数设置为1,如果anchor矩形框只覆盖了目标的一部分,这里设置阈值为0.5,覆盖的部分面积小于anchor矩形框的一半,则该anchor矩形框将不计入损失函数中计算loss,如果覆盖面积大于anchor矩形框的一半,则将anchor矩形框记入损失函数中计算loss。该阈值在后面作者说明了,如果阈值设置为0.5时,YOLOV3的性能也是最好的。文中也提到,当该阈值增加时,YOLOV3的性能也会显著下降,另外YOLOV3目标检测网络使用了多尺度训练和推理,对小目标检测的准确度比YOLO提升了很多,但是对中等及大目标的准确率相对要差一点。

YOLOV3学习笔记_第3张图片

 

多尺度训练推理:在anchor box预测中引入特征金字塔网络,在darknet的yolov3.cfg文件中,可以看到,其yolo层的输出有三个,这三个yolo层输出的特征图尺度大小都不一样,不同尺度的特征图其描述的特征抽象程度不同,尺度越小特征越抽象越精细,尺度越大所描述的特征越粗糙。作者将这三个尺度的特征图使用了几个卷积层进行处理组合并输出,更好了利用了图像的粗细特征,使得预测更加精细。

YOLOV3学习笔记_第4张图片

 

3个yolo层的输出,且每层预测三个anchor box,即需要9个anchor值,使用K值聚类算法在coco数据集上聚类得到的9个anchor值为(10,13)(16,30)  (33,23) (30 61) (62 45) (59 119) (116 90) (156 198) (373 326),即为现在yolov3.cfg文件中anchor值。

你可能感兴趣的:(#,Darknet与YOLO,学习,深度学习,YOLOV3,原理)