YOLOv3介绍:
发表在2018年的CVPR上,论文名称:An Incremental Improvement。
上图可以看出 yolov3在COCO数据集上,推理速度是最快的,但是准确率不是最高的。
上图则是yolov3在COCO数据集(IOU=0.5)上,对比其它网络速度以及准确度都非常的高。
YOLOv3的BackBone
在YOLOv3中,主干网络采用Darknet-53,相比于YOLOv2的Darknet-19,效果好很多。如下图:
在Darknet-53中,一共53个卷积层,配置如下图:
在这里可能会有疑问,在上面两个图在,为什么Darknet-53的效果比ResNet深层网络的效果会更好?它们看上去并没有太大的区别。
解释:在Darknet-53的结构中,是没有最大池化层的(maxPooling层),所有的特征图尺度压缩通过卷积层来实现了。
在Darknet-53中,每一个Convolutional层都包含着三个操作(卷积、BN、激活函数),如下图:
在Darknet-53中,每一个方框就代表着一个残差结构,如下图:
YOLOv3模型结构
YOLOv3是在三个预测特征层进行预测的,每个预测特征层会使用三种尺度,这三种尺度将使用K-means 聚类算法得到的。通过该算法会得到9种尺度:(10*13)、(16*30)、(33*23)、(30*61)、(62*45)、(59*119)、(116*90)、(156*198)、(373*326)。刚好每3个对于着一个预测特征层,如下图:
对于每一个特征预测层需要预测N*N*3*(4+1+80)个参数。其中N为特征图的大小,3为三种尺度,在原论文是在COCO数据集上的,所以有80个类别,对于每一个anchor而言需预测4个偏移参数以及1个confidence score。如下图所示:
接下来是yolov3的模型图: