目录
资料
论文地址: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值,如下式
其中如果有ground true box(人工标记的物体)落在一个grid cell里,Pr(Object)取1,否则取0。 是预测的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中的代表了预测框与标注框(groundTruth)的IOU,表示如果有ground true box(人工标记的物体)和预测的x,y落在一个grid cell里,预测框与标注框(groundTruth)的IOU越大越好。4中的
置为0,表示不负责检测物体的bbox(如下图所示,ground true box和预测的x,y没有落在一个grid cell)的置信度越小越好。
Limitations of YOLO(YOLO的局限性)
1.YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。
2.测试图像中,当同一类物体出现的不常见的长宽比和其他情况时泛化能力偏弱。
3.由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体的处理上,还有待加强。
交流
欢迎加群交流