【YOLO系列文章】YOLOv1解读

本文详细解读YOLOv1检测框架,包括图片网格划分、网络设计、训练过程,探讨YOLOv1的局限性。通过理解网格责任、损失函数设计以及预防过拟合的技巧,揭示其工作原理。
摘要由CSDN通过智能技术生成

1. 介绍

本文将对YOLOv1框架进行详细的解读,将针对我看论文的一些疑问进行解读,仅作为个人笔记。
因为还没有读代码,因此只针对论文进行理解性解读,有错误的地方欢迎指出。

论文地址:https://arxiv.org/pdf/1506.02640.pdf
项目地址:https://pjreddie.com/darknet/yolo/
GitHub:https://github.com/AlexeyAB/darknet
参考博文1:https://zhuanlan.zhihu.com/p/24916786?utm_source=qq&utm_medium=social
参考博文2:https://blog.csdn.net/x_iunknown/article/details/83064787

2. 检测框架

相比于Fast-RCNN, Faster-RCNN 等,yolo系列秉承着一个流程,一个end-to-end的思想,没有分成两步进行(提取proposal+识别),而是采用如下流程,简洁明了。

将图片分成网格状 -> 每个网格预测若干个矩形框 -> 判断矩形框里是否有物体

2.1 图片划分成网格

将一幅图片划分成 7x7的网格,S=7.
在这里插入图片描述

2.2 网络设计

网络如下,借鉴了Googlenet的思想, 但没有用inception,转用1 x 1 卷积,3 x 3 卷积, 1 x 1卷积,这样有个好处,降维,减少计算量,比直接用3 x 3计算量小很多。

网络具体细节不解释了,看不懂图的话,请面壁思过。
在这里插入图片描述

预训练网络:输入224 x 224, 数据集imagenet
后面训练的网络:输入变成448 x 448, 数据集pacal voc

最后输出为 7x7x30:
【问题1】:为什么为30?
box1, box2, confidence1, confidence2 20个分类,其中box = (tx, ty, tw, th)。其实这边就体现出一个问题了,一个划分出的小格子里只能预测一个类,拿要是一个格子里有两个类呢?换句话说两个box都有效,但是yolov1只取一个类,因此可想而知,recall肯定不会太好,会漏掉很多物体。后面的yolo版本对这个问题会有改进。
在这里插入图片描述

2.3 训练

需要注意的几点

  • 训练样本构造
  • 448 x 448 输入(提高分辨率,增加小物体检出率)
  • leaky 激活函数
  • loss 函数设计
  • 防止过拟合做的trick
2.3.1 训练样本构造

构造什么?就是最后那个30维向量。以如下图示为例
在这里插入图片描述
首先明确构造思想,中心点所在的网格对预测的对象负责。
蓝点对狗狗负责,黄点对自行车负责,红点对汽车负责。其他的点都不预测任何对象。

  1. box 位置构造

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值