深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)

YOLOv3介绍:

        发表在2018年的CVPR上,论文名称:An Incremental Improvement。

深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第1张图片

         上图可以看出 yolov3在COCO数据集上,推理速度是最快的,但是准确率不是最高的。

深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第2张图片

         上图则是yolov3在COCO数据集(IOU=0.5)上,对比其它网络速度以及准确度都非常的高。

YOLOv3的BackBone

        在YOLOv3中,主干网络采用Darknet-53,相比于YOLOv2的Darknet-19,效果好很多。如下图:

                                        深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第3张图片

         在Darknet-53中,一共53个卷积层,配置如下图:

                         深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第4张图片

         在这里可能会有疑问,在上面两个图在,为什么Darknet-53的效果比ResNet深层网络的效果会更好?它们看上去并没有太大的区别。

        解释:在Darknet-53的结构中,是没有最大池化层的(maxPooling层),所有的特征图尺度压缩通过卷积层来实现了

        在Darknet-53中,每一个Convolutional层都包含着三个操作(卷积、BN、激活函数),如下图:

                                   深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第5张图片

         在Darknet-53中,每一个方框就代表着一个残差结构,如下图:

                                        深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第6张图片

YOLOv3模型结构

        YOLOv3是在三个预测特征层进行预测的,每个预测特征层会使用三种尺度,这三种尺度将使用K-means 聚类算法得到的。通过该算法会得到9种尺度:(10*13)、(16*30)、(33*23)、(30*61)、(62*45)、(59*119)、(116*90)、(156*198)、(373*326)。刚好每3个对于着一个预测特征层,如下图:

        深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第7张图片

         对于每一个特征预测层需要预测N*N*3*(4+1+80)个参数。其中N为特征图的大小,3为三种尺度,在原论文是在COCO数据集上的,所以有80个类别,对于每一个anchor而言需预测4个偏移参数以及1个confidence score。如下图所示:

                              深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第8张图片

         接下来是yolov3的模型图:

         深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第9张图片

         通过上图可以清晰的看到该网络的结构,其中第一个预测特征层是在Darknet-53中,将全连接层、池化层等去掉之后的结构。

        其中Convolutional Set部分,包括5个卷积层部分。

        第一个Convolutional Set的另一个分支,首先通过一个卷积层,然后通过上采样层(此时特征矩阵的高和宽会扩大为两遍26*26),扩大后会和Darknet-53相同尺寸为26*26的特征矩阵进行深度拼接,再通过一系列操作得到第二个特征预测层和第三个特征预测层。

        注意:将在预测特征图层1上预测较大的目标,在预测特征图层2上预测尺度中等的目标,在预测特征图层3上预测较小的目标。

YOLOv3目标边界框的预测(与yolov2相同,在这里详细讲解)

        深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第10张图片

        如上图假设是某一个特征预测层,虚线框代表一个anchor。在原论文中,偏移量都是在cell(单元格)的左上角进行计算的,即anchor的中心坐标是在cell的左上角这个点。如图,该anchor的中心坐标为(Cx,Cy),宽度和高度分别为Pw和Ph。

        我们经过预测得到的值分别为tx,ty,th,tw。首先对tx,ty进行一种函数处理,使得预测的坐标限制在cell里面,然后分别加上左上角的坐标就得到了最后预测的bounding box的坐标:,在对tw,th进行变换得到bounding box的宽度以及高度:,即上图实线的矩形框就代表着最后预测的bounding box。

YOLOv3正负样本的匹配

        在原论文当中,对于每一个gt(ground truth,正确标记的数据)目标,都会分配一个bounding box  ,也就是针对每一个gt而言,都会分配一个正样本。对于一张图片有几个gt目标,也就有多少个正样本。

        分配的原则:将与我们gt重合度最大的bounding box作为正样本。如果有bounding box超过了规定的阈值,但不是重合度最大的,则将其丢弃,剩下的则是负样本。

YOLOv3的损失

        如下图:

深度学习目标检测之YOLO系列网络(一步步变强之yolo v3)_第11张图片

        (说明:以上各图并非原创

你可能感兴趣的:(目标检测,深度学习,网络)