YOLOv1

YOLO是典型的one-step,将候选区bbox的确定和检测过程合二为一,整体可看作是回归问题,检测时间大大缩短,典型的

end-to-end。

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

1、网络结构图

 卷积层采用Leaky ReLU激活函数。全连接层却采用线性激活函数。

第1个全连接层之前,采用dropout,参数值设为0.5

注意:在最后一个卷积层与dropout层之间,有一个local层,同样做的是卷积计算,但是卷积层共享卷积核参数,而local层每次滑动卷积窗口时,都会使用新的卷积核参数。详见yolov1.cfg文档

 问题:我没有明白的是,网络结构中显示有两个全连接层,但是cfg文档中似乎只有一个(难道是detection层包含了?),而且它的output=1715   ???这是为何?还望有大佬赐教留言

2、训练过程

    在训练之前,先在ImageNet上进行了预训练,其预训练的分类模型采用网络结构图中前20个卷积层,输入是224×224(因为目标分类对图片像素的要求不高),然后添加一个average-pool层和全连接层。预训练之后,在预训练得到的20层卷积层之上加上随机初始化的4个卷积层和2个全连接层。由于检测任务一般需要更高清的图片,所以将网络的输入从224x224增加到了448x448

(图片源于网络)

   

3、输入输出

    将输入图片resize到448x448大小,然后被划分为7×7个网格grids。最终输出7×7×30的张量,这就意味着输入的每个网格对应输出30维的向量。30维向量主要包括:20个对象的预测概率(YOLOv1只支持识别20种物体),2个bbox的置信度(因为每个grid预测2个bbox),2个bbox的位置(每个需要4个数,共8个)

(图片源于网络)

也就是可以用一个公式来说明:

S×S×(B×5+C)

在这里S=7,B=2,C=20.     如果是训练自己的数据集,C改成数据集的类别数。

虽然每个grid可以预测2个bbox,但是最终只选择只选择 IOU 最高的 bbox 作为物体检测输出,所以最多只能检测出1种物体,对于群体的检测很差。

4、置信度计算

代表是否存在目标,取值为0或者1。代表检测框pred和真实框truth之间的交并比。

5、损失函数

第一项:边框中心点的误差(YOLO中设置\lambda _{coord}=5

第二项:边框高度、宽度的误差

第三项:边框中有目标时,置信度误差

第四项:边框中没有目标时,置信度误差(YOLO中设置\lambda _{noobj}=0.5,为了调低不含对象的bbox的置信度)

第五项:目标分类误差

6、NMS

对于同一目标被多次检测的问题,目标检测算法常用NMS做最终检测。参考我的一篇博客https://blog.csdn.net/xue_csdn/article/details/100556865

7、FastYolo

FastYolo是文章中提出的一种轻量级版本,使用9个卷积层,并且卷积层中使用更少的卷积核(作者只介绍了其检测相关参数,没有对网络结构做说明,不太重要)。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值