YOLOV1网络模型

目录

资料

网络模型介绍 

整体框架

预测原理

训练 

损失函数

Limitations of YOLO(YOLO的局限性)

交流 

Reference 


资料

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

pytorch代码1:​​​​​​https://github.com/DuanYiqun/pytorch_implementation_of_Yolov1 

pytorch代码2:https://github.com/abeardear/pytorch-YOLO-v1 

网络模型介绍 

整体框架

 整个网络是由24个卷积层和2个全连接层组成的,上图中只画出来了一个4096的全连接层,后面应该还跟着一个1470(1470=7x7x30)的全连接层,再reshape到7x7x30的一个特征矩阵。网络将所有的信息都压缩到了这个矩阵中,7x7代表49个grid cell,30在原文的解释是30=(B*5+C),B在这里为2,代表着每个cell有两个bounding box;5代表的是bounding box的信息,每个bounding box 中心点的坐标x,y和bounding box的width、height,还有一个bounding box的置信度;C代表的是类别数,PASCAL VOC一共有20类,所以C是20,代表每一类的预测概率。

预测原理

以上图为例,先将图片resize到448x448的尺度输入模型,经过模型的处理生成SxSx(B*5+C)的一个矩阵,这个矩阵的含义在整体框架部分有了说明。每个网格(1*1*30维度对应原图中的cell)要预测2个bounding box 的坐标(x,y,w,h) ,其中:中心坐标的(x,y)相对于对应的网格归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。 每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值,如下式

confidence = Pr(Object) * IOU_{pred}^{truth}

其中如果有ground true box(人工标记的物体)落在一个grid cell里,Pr(Object)取1,否则取0。 IOU_{pred}^{truth}是预测的bounding box和实际的ground truth box之间的IOU值。49个cell就包含了98个bounding box及confidence信息,如上图Bounding boxes + confidence部分。最后98个框经过NMS将大量冗余无用的框过滤,剩下Final detections的各类的一个框。每个框所属的cell内会有框中物体所属的类别概率,这样我们即得到了框的坐标,也得到了框内物体是什么及它的概率信息。NMS算法也有详细的解释:NMS非极大值抑制算法原理_pywin-CSDN博客

更清晰一些的过程如下图

训练 

预训练分类网络: 在 ImageNet 1000-class competition dataset上预训练一个分类网络,这个网络是Figure3中的前20个卷机网络+average-pooling layer(平均池化层)+ fully connected layer(全连接层) (此时网络输入是224*224)
训练检测网络:转换模型去执行检测任务,《Object detection networks on convolutional feature maps》提到说在预训练网络中增加卷积和全链接层可以改善性能。在作者的例子基础上添加4个卷积层和2个全链接层,随机初始化权重。检测要求细粒度的视觉信息,所以把网络输入把224*224变成448*448。
最后一层预测类概率和包围盒坐标。通过图像宽度和高度对包围盒宽度和高度进行归一化,使它们下降到0和1之间。将边界框x和y坐标参数化为特定网格单元位置的偏移,因此它们也在0和1之间。

损失函数

论文中的loss function:

bilibili子豪兄的笔记版: 

网络的loss由5部分组成:

1.负责检测物体的bbox中心点定位误差;

2.负责检测物体的bbox宽高地位误差,求根号能使小框对误差更敏感;

3.负责检测物体的bbox confidence误差;

4.不负责检测物体的bbox confidence误差;

5. 负责检测物体的grid cell分类误差。

其中1,2,5比较好理解一些,3中的\widehat{C_{i}}代表了预测框与标注框(groundTruth)的IOU,表示如果有ground true box(人工标记的物体)和预测的x,y落在一个grid cell里,预测框与标注框(groundTruth)的IOU越大越好。4中的\widehat{C_{i}}置为0,表示不负责检测物体的bbox(如下图所示,ground true box和预测的x,y没有落在一个grid cell)的置信度越小越好。

  

Limitations of YOLO(YOLO的局限性)


1.YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。

2.测试图像中,当同一类物体出现的不常见的长宽比和其他情况时泛化能力偏弱。

3.由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体的处理上,还有待加强。
 

交流 

欢迎加群交流

Reference 

【精读AI论文】YOLO V1目标检测,看我就够了_哔哩哔哩_bilibili
  

猜你喜欢

转载自blog.csdn.net/qq_36076233/article/details/123063552