YOLOv1

什么是YOLOv1?

一、网络结构

         看大佬的总结,目前目标检测领域网络结构的总体框基本上都包含了上面三个部分:Backbone、Neck network和detect head.

        Backbone用作特征提取,Neck network用于对Backbone提取到的特征进行整合,Detect head用于对整合后的特征进行预测。

 

下面是YOLOv1d的网络结构(预测过程)

1.Backbone

        Backbone这个骨干网络是用来做特征提取的,但是至于到底提取了什么特征,这个我们是无从知晓的,因为神经网络对于我们来说仍然是一个黑盒子,我们只关注什么样的Backbone可以为我们更好的提取特征信息,下面梳理一下Backboned分类:

(1)大型网络

VGGNet:包括VGG19

ResNet:ResNet50和ResNet101

ResNexT:

ResNet+DCN:

DarkNet:DarkNet19和DarkNet53,这里YOLOv1的骨干网络用的就是DarkNet19。

CspResNet:在减小网络的参数量的同时还能提高网络的性能。

(2)轻量型网络

MobileNet:谷歌的工作

ShuffleNet:旷世的工作 

(3)YOLOv1的Backbone

输入:448*448*3,网络的最后是两个全连接层,由于全连接层要求特征图固定尺寸,所以需要对输入网络的图片做resize;

conv+FC:网络用1*1卷积核和3*3卷积核来做通道下降,在卷积和全连接操作中使用的激活函数是Leaky ReLU做激活函数,在最后一个全连接层使用的是线性激活函数。

输出:网络在最后一层全连接层输出的是1470*1的向量,在通过一个reshape操作,这个1470*1的向量被转换为7*7*30的张量。

这个7*7*30的张量贴个图:

 

对这个7*7*30的进行解释:

7*7网格:图像输入到网络后会被划分为7*7d的网格,同时网络最后输出的7*7*30的张量与它相对应。

30维的张量:每个网格会输出一个30维的向量,这个30维向量包含的信息有预测的2个bouning box的置信度,2个预测框的信息和20个类别的概率。

2个预测框的信息:包含框的中心点的坐标(x,y)和框的宽高(w,h)

2个bounding box的置信度:每个置信度包含两个信息,一个是这个框含有背景的概率,一个是预测框和真实框的iou的值。

20个类别的概率值:每个网格都会预测出20个类别的概率值

2.Neck network

图像经过Backbone提取特征之后,输出的是非常粗糙的特征图,具有相当大的感受野,因此这么这么大的感受野容易造成检测对象的“失焦”,而且对于小物体而言非常不友好。

3.Detect head 

        我一直对这个部分比较好奇,没想到看大佬说的这么简单,至少这个大佬是这么说的,就是对Backbone和Neck输出的特征图进行几个堆叠卷积的操作:

二、训练过程

1.特征提取阶段

        特征提取阶段主要是用的是yolov1的骨干网络,那么具体是怎么提取的呢?

2.

三、预测过程

四、YOLOv1的缺点

1.一个网格只能预测一个类别,当两个物体落在这个网格中时,但是一个网格只能预测一个目标;

2.损失函数设计有问题,这样导致模型的预测的定位误差较大;

3.图片经过64倍下采样后,最后网络输出的特征图会变成非常粗糙的特征图。

参考资料

【目标检测论文阅读】YOLOv1 - 知乎 (zhihu.com)

1.1 YOLO入门教程:YOLOv1(1)-目标检测结构浅析 - 知乎 (zhihu.com)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值