YOLOV1论文小整理

前言

为了更好地阅读源码,在进入源码阅读阶段必须先进行理论探究,之后才能结合工程干活。所以本次也是参考了众多大佬的视频,博客进行一个总结。我们先从初代版本V1开始,主要是第一篇论文不多,那么这里主要是关于这个神经网络的一个结构,它后面的一个具体的一个工作流程,这部分主要是分两个部分,一个是训练部分,还有一个是识别部分。这里咱们主要是对整个流程做一个了解分析。

相关资源链接如下:
https://arxiv.org/pdf/1506.02640.pdf
参考大牛文章如下:
https://blog.csdn.net/shuiyixin/article/details/82533849
https://www.cnblogs.com/makefile/p/nms.html

关于作者

YOLOV1论文小整理
这个是相当牛皮的大佬,负责编写了V1,V2,V3 不过后面由于,美国军方曾将YOLO智能识别技术用于军事武器开发,所以他后面退出了计算机视觉方面的研究和工作,所以从后面的V4到V6都是由继任者完成的维护,升级。是一个相当有责任担当且水平超高的大师。

算法简介

这部分在论文中
YOLOV1论文小整理
YOLOV1论文小整理

总之,这东西是一个非常强大的计算机视觉识别算法。

那么我们想要去解读这篇文章的目的主要是为了搞清楚,这个YOLO网络的工作过程 。前面通过这三篇博文大家应该是对神经网络有很多的了解了。

啊哈~花一天快速上手Pytorch(可能是全网最全流程从0到部署)
GitHub 水项目之 快速上手 YOLOV5
YOLOV5 参数设定与模型训练的坑点一二三

V1网络结构

相信你已经看过了前面三篇文章(里面有关于CNN神经网络的快速理解与入门CIRAF10实战搭建)
那么让我们简单看看这个神经网络长什么样子。
YOLOV1论文小整理

这个就是他的第一代V1的神经网络结构(第五代可能是一个残差神经网络,看代码的时候好像看到了残差结构)

整个过程其实也不是很复杂,整个V1的网络结构还是说,是通过众多的卷积层,池化层,最后得到一个
7 x 7 x 1024 的全连接层,然后经过1 x 1 x 4096 的全连接层 然后最后得到一个7x7x30的连接层。

所以整个过程主要是一个复杂的卷积池化操作,这一点非常重要。

看看咱们先前搭建过的CIRAF10
YOLOV1论文小整理

感觉其实也没有复杂到哪里去。无非是 神经节点 增加了不少,训练算力多了N倍罢了。

识别过程

如果我们要梳理整个过程,我们还是看识别过程,因为这是我们最直观的部分。

卷积部分

我们先忽略卷积部分,因为这仍然是一个建模过程。
YOLOV1论文小整理

我们只关注最后面的 7 x 7 x 30
也就是说最后面 我们在实际上使用这个模型的时候,输入一张图片,首先这张图片会被缩放成 448×488 的大小 3 是RGB三个通道。最后一通操作得到了 7 x 7 x 30 的玩意。
不过这里的7 x 7 并不是说把一张图片变成7 x 7的像素。
YOLOV1论文小整理

就是这样
YOLOV1论文小整理

grid cell

这个玩意就是上面那张图的那个7×7的单元格。
YOLOV1论文小整理

我们最后输出的7x7x30的玩意就是为了后面得到这样的图片
YOLOV1论文小整理

经过处理,我们可以得到这样的图片
YOLOV1论文小整理

细胞存储信息

首先我们此时得到的是 7 x 7 x 30
那么我们 每一个单元格里面存储了什么信息? 为什么这玩意有30个维度?

首先,这里存储了两种类型的信息。
首先是边界信息、起点、宽高、可信度。
第二个是 类别的条件概率,这里主要是20个类。

所以这里首先有20,此外由于边框,这里的话,每一个单元格是预测了两个边框的,所以有10,一共是三十。
YOLOV1论文小整理

框架

现在让我们看看边界
YOLOV1论文小整理
这里有 49 个 cell 一个 cell 两个边框,一共98个。每一个边框都是以其中一个cell为中心的,然后每一个边框都不一定是在标准的矩形,可能拉的很长,或者很短,但是中心点是在cell里面的。

那么对于这个边界,也是有可信度的。我是这样理解这个可信度的,就是判断这个区域有物体的概率(边框框起来的)

后处理阶段

ok,现在咱们进入识别的最后一个阶段
这就是从上面有这么多盒子的图片到这个的方式

YOLOV1论文小整理
这样的
YOLOV1论文小整理
或类似的东西
YOLOV1论文小整理
YOLOV1论文小整理

这部分大多是这样的。

首先咱们还是已经知道了,咱们有96个边框,并且我们知道了每一个cell 不同类别的条件概率。

例如,我们预测上面的年轻女士。这里我以三类为例。
那么按照咱们的假设就是输出 7 x 7 x 13 的样子。

那么我们怎么处理呢,首先是先对这个边框 bounding box

处理边界

我们这里一共有98个边框,每一个边框都有对应的可行度,我们假设是 3 个类别的话,那么,对于每一个类别,我们cell对应的类别的条件概率 x 边框置信度(c)这样一来,我们就知道了每个边框3个类别的概率。20个分类对应的就是20个。

此时,我们首先计算全概率
YOLOV1论文小整理

此时,我们首先处理第一类
YOLOV1论文小整理

IOU

这里需要引入一个概念,即两个边界重叠的部分。
YOLOV1论文小整理
这个参数呢在V5的detect也是有的
YOLOV1论文小整理

设置越高,图像上的框越多,设置越低,如果只有一个重叠,框越少。

比较过程

然后我们进入对比过程
YOLOV1论文小整理

这时候比较的是第一类。

第二个和第三个以此类推。

这时候可能会有一个疑问,为什么不直接选择概率最高的框。
原因很简单
如何识别图片中的两个人
YOLOV1论文小整理

论文大概在这部分

YOLOV1论文小整理

培训过程

之后,识别过程终于到了训练过程。

这个过程其实比较简单。
我们可以比较我们开始使用的线性回归模型
YOLOV1论文小整理
这玩意其实也算个神经网络,只不过上面只有两个连接层,一个输入,一个输出,然后是损失函数,反向传播。训练只需要正向传播,然后通过结果拿到值,然后处理(NMS)

本质上,我们是一个合适的过程。

怎么拟合,先确定一个点,是训练还是预测,
在一通操作之后最后输出的都是 7 x 7 x 30的玩意。
我们输入神经网络的是标记图像。
就是这样。
YOLOV1论文小整理

把标签贴在图片上。

训练的时候,就是那个蓝色的矩形中心对应的cell去拟合,每一个cell有两个边框,让边框最大的(最接近你标注的边框的边框)去拟合计算。另外一个就那样吧。

损失函数

知道了我们拟合训练的过程,那么下一步就是损失函数了。
YOLOV1论文小整理

YOLOV1论文小整理

总结

说到这里其实只是到了论文的3,4页左右。不过后面的东西,都是老套路,前面提出我的观点,然后论述我的模型,内容,工作机制。后面是优缺点,对比,分析,然后是实验数据,这部分咱们就不看了,主要是为了搞清楚大体流程。
那么这里是关于YOLOV1的内容,明天去啃V2的。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年4月13日 下午1:45
下一篇 2022年4月13日 下午2:08

相关推荐