YOLOv1——YOLOv3的一些理解和总结

  1. 每一代YOLO中最亮的亮点,旨在能迅速了解YOLO的关键特性。
    1.1 YOLOv1
    在这里插入图片描述
    YOLOv1最值得说的当然是YOLO网络提出本身,使用回归的方法端到端解决了目标检测问题。
    YOLOv1——YOLOv3的一些理解和总结_第1张图片
    一个值得一提的细节就是,YOLOv1采用了将一副图片划分为多个grid cell的方法,每个grid cell仅预测出两个框,最终的输出张亮大小为:S x S x (B x 5 + C),其中S是grid cell在某一维的数目,B是每个grid cell预测出的框的数目,5代表了框的中心x,y坐标和框的宽w、高h,以及框的IOU值,C代表了每个物体类别的概率。典型输出张量大小是7 x 7 x 30。
    YOLOv1——YOLOv3的一些理解和总结_第2张图片
    最后给出YOLOv1中使用的骨干网络架构。

    1.2 YOLOv2
    YOLOv2对v1做了很多改进,最瞩目的就是引入了anchor box的机制代替了v1版本中的bounding box。
    YOLOv1——YOLOv3的一些理解和总结_第3张图片
    通过对数据集中的物体形状进行聚类,获取到几种不同高矮胖瘦的anchor box。v2中可以输出的框的数目明显增多,有效解决了v1版本中最让人诟病的小分辨物体检测能力不够的问题。典型输出如下图所示为13 x 13 x 5 x 25,其中13是grid cell数目,5是每个cell的anchor box数目,25代表了框的x,y,w,h,c 和20个类别的概率。
    YOLOv1——YOLOv3的一些理解和总结_第4张图片
    同样地,把网络结构放在下面,作者采用了自创的Darknet网络架构。
    YOLOv1——YOLOv3的一些理解和总结_第5张图片
    1.3 YOLOv3
    大名鼎鼎的YOLOv3,反而是最容易理解的。因为其主要是对网络架构进行了改进,其一是采用了Darknet53的网络结构,其次是增加了多个特征维度的输出,分别预测不同尺寸的物体。
    其典型输出中13 x 13 x 255 = 13 x 13 x (3 x (5 + 80)),13代表grid cell数目,3代表anchor box的数目,5代表框的x,y,h,w,c,80代表类别的数目,由于下采样32倍,倍数最高,因此用来预测大物体,所分配的3个anchor box也是最大的。
    26 x 26 x 255同理,下采样16倍,用来预测中等大小的物体;52 x 52 x 255则是下采样8倍,用来预测小物体。
    YOLOv1——YOLOv3的一些理解和总结_第6张图片

  2. 给出一个很好的YOLOv3基于TF2.x的代码实现。
    https://github.com/zzh8829/yolov3-tf2

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