yolo系列详解--yolov1、yolov2、yolov3

1.yolo:You Only Look Once: Unified, Real-Time Object Detection

论文地址:https://arxiv.org/pdf/1506.02640.pdf

处理流程:输入图片需要缩放到448*448,最后生成一个维度为7*7*30的tensor。

创新点:因为是一阶段的网络,故而运行速度快。

论文的整体框架如下:

 

 

 对于最后的7*7*30的tensor的意义如下:

将448*448的图片分割成S*S的网格,每个网格都预测2个bounding boxes(如果物体的重心落在bounding box中,那么此bounding box负责检测物体)。

等式:7*7*30=SxSx(B*5+C)   其中S=7,B=2,C=20(PASCAL VOC),5是指一个置信度和四个坐标值。

每个bounding box包含四个坐标值(Center_x,Center_y,width,height)和一个置信度(该bounding box内存在对象的概率 * 该bounding box与该对象实际bounding box的IOU)

其中Pr(Object)={0,1},如果不存在物体,则为0,否则为1。

IOU可参考:https://www.cnblogs.com/AntonioSu/p/12193743.html

 具体维度30各值所代表的意义:

 

 

 

 

2.YOLO9000: Better, Faster, Stronger

论文地址:https://arxiv.org/pdf/1612.08242.pdf

处理流程:两阶段训练网络,先classification,后detention。

    classification:先用224*224的图片预训练Darknet-19,而后再用448*448的图片微调网络Darknet-19。

    detention:每隔10个batches,换一种输入维度{320,352...,680},而后对darknet-19做如下处理

        移除最后一个卷积层、avgpooling层以及softmax层,并且新增了三个3*3*1024卷积层,同时增加了一个passthrough层,passthrough
        对最后一个池化层的输入做变化,将26*26*512变为13*13*2048做处理,而后与最后一层的13*13*1024拼接在一起,变为13*13*3072。最后通过1*1卷积核
        变为13*13*125。

创新点

1.通过聚类的方式找到每个特征点有5个anchor
2.没使用全连接
3.平滑处理

 

Darknet-19

最后的13*13*125的解释:

125=num_anchors *(4+1+num_classes) ,其中 num_anchors=5,num_classes=20(VOC)。

 

passthrough是为了检测图片中的小物体, passthrough层操作方式:

 

平滑处理:对坐标值加入exp(x)

 

3.YOLOv3: An Incremental Improvement

论文地址https://arxiv.org/pdf/1804.02767.pdf

处理流程:先通过Darknet-53处理得到13*13*3*85的特征,而后再上采样,分别得到26*26*3*85和 52*52*3*85.

创新点

1.detention网络引入残差
2.在不同的特征图上做处理
3.没用pooling,没用全连接

 

Darknet-53

 

先验框: 

 

总共有 13*13*3 + 26*26*3 + 52*52*3 = 10647 个预测。每一个预测是一个(4+1+80)=85维向量,这个85维向量包含
边框坐标(4个数值),边框置信度(1个数值),对象类别的概率(对于COCO数据集,有80种对象)。

posted @ 2020-01-07 23:06  suwenyuan  阅读(1524)  评论(0编辑  收藏  举报