模型网络学习篇#2:YOLOv1——最开始的地方(2)
其实这块就叫做YOLOv1的全连接层。其实YOLOv1的网络结构是借鉴了GoogleNet的,输入图像的尺寸为448×448,经过24个卷积层,2个全连接的层(FC),最后在reshape操作,输出的特征图大小为7×7×30。(4)综上所述,因此每个grid cell输出的数据维度为30×1,而7×7个方格输出的维度即为7×7×30。全连接层之前,特征已经被打乱了,原来好好的照片被叠成了一个砖块,
上次学习了YOLOv1网络重要的卷积层和池化层以及多通道卷积是怎么回事,今天就来学习一下YOLOv1最后的那段把方形的矩阵特征展开的一段是什么操作吧!

其实这块就叫做YOLOv1的全连接层。其实YOLOv1的网络结构是借鉴了GoogleNet的,输入图像的尺寸为448×448,经过24个卷积层,2个全连接的层(FC),最后在reshape操作,输出的特征图大小为7×7×30。
今天主要学习的就是YOLOv1的全连接层
全连接层:
全连接层通常出现在卷积神经网络(CNN)或多层感知器(MLP)等网络结构的末尾。它负责将前面层中提取到的特征映射转换为最终的输出。在分类任务中,全连接层的输出通常与类别数量相对应,用于输出每个类别的概率分布或类别得分。
所以作为一个目标检测模型,要得出一个检测的置信度,就需要一个全连接层作为结尾。那么全连接层是怎么输出一个得分的呢?
我们对全连接层的理论进行推导:
全连接层的理论推导分为以下几个步骤:
输入数据:假设输入数据为一个样本x,其中x是一个n维向量。
权重矩阵:假设全连接层有m个神经元,那么全连接层的权重矩阵W是一个m×n的矩阵。
偏置向量:全连接层还包括一个偏置向量b,它是一个m维向量。
线性变换:全连接层将输入数据x与权重矩阵W进行线性变换,得到一个m维向量y,计算公式为y = W · x + b。
激活函数:将线性变换后的结果y经过一个非线性激活函数,如ReLU、Sigmoid等。
通俗一点说,全连接层就是把神经网络提取的特征解读出来

全连接层之前,特征已经被打乱了,原来好好的照片被叠成了一个砖块,模型怎么去解读这个砖块里的特征呢?就靠这个全连接层!
全连接层的主要特点是每一个神经元与前一层的每一个神经元都相连接,这意味着每个输入都影响每个输出。在全连接层中,输入向量通过一个权重矩阵进行线性变换,然后加上一个偏置项,最后通过激活函数(如ReLU、Sigmoid、Tanh等)进行非线性变换。

回到YOLOv1,对于最后一个卷积层,它输出一个形状为 (7, 7, 1024) 的张量,然后张量展开。使用2个全连接层作为一种线性回归的形式,它输出1470个参数。然后再Reshape为7×7×30的张量。
7×7是YOLOv1划分的网格数

这样的一个网格我们称它为grid cell,
对于每个grid cell:
(1)预测B个边界框(在yolov1中选择2个边界框作为预测结果)。
(2)每个边界框包含5个元素,分别为,中心坐标:x,y;检测框的宽和高:w,h;对应检测框 的置信度c
(3)对应该grid cell(注意,不是边界框)预测物体的概率值(利用softmax输出概率)
(4)综上所述,因此每个grid cell输出的数据维度为30×1,而7×7个方格输出的维度即为7×7×30。 即为最终yolov1输出结果。
7×7对应的是grid cell,30对应的就是参数了。10个代表x坐标,y坐标,宽w,高h,置信度c。20个代表20个对应目标的概率值。到这YOLOv1的工作基本上就结束啦
关于YOLOv1其实还有很多很多内容,我们来日再说!
参考文章:
【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)_yolo论文-CSDN博客
更多推荐

所有评论(0)