前言: YOLO ( You Only Look Once )是一种目标检测算法,由Joseph Redmon等人在 2015 年提出。它的主要思想是将目标检测任务看作是一个回归问题,并且可以在一个神经网络中同时预测目标的位置和类别。该算法被命名为YOLOv1 。其中在2016年, YOLOv2 发布, YOLOv3 在 2018 年发布。最近,YOLOv12发布,可见YOLO系列仍然具有相当高的研究价值。
上图就是YOLOv1的网络结构,用现在的眼光看其实是比较简单滴,我们将一点一点解释其中每个部分的含义。
首先,Image Input就是输入图像,448*448*3就可以理解为表示大小是448*448的矩阵,这样的矩阵有3个,这3个矩阵可以理解为分别代表R、G、B的数值。
Conv是卷积层的意思,我们在上篇文章中简单解释过Conv,不过在上一篇文章里我们只讲了简单的单通道的卷积核,也没有将偏置和步幅的概念。下面进行详细的说明:
首先说偏置p:
卷积核是2*2的,那么在输入图像里面就2*2地每个格子对应地乘过去,得到新的矩阵。偏置就是给矩阵的每个元素都加2。比如图中标黄的21=(0*0+1*1+3*2+4*4)+2
在说步幅s:
上图是步幅s=2时的卷积过程,可以看到步幅就是每隔多少个元素进行一次“相乘”,s=2,就是每隔两个元素进行一次“相乘”。可以想象到,s越大输出的特征矩阵就越小。
最后说说多通道卷积:
以上就是一个多通道卷积的过程,我们可以看到输入是3通道的,卷积核是3通道的,输出却是单通道的。这就说明了多通道卷积的一个性质,我们用简图表示:
当输入特征的通道数和卷积核的通道数相等时,输出的就是单通道矩阵。那么要是有很多个卷积核呢?
有多少卷积核那么生成的新特征就有多少个通道。
此时我们再来看上图的448*448*3经过7*7*64,p=3,s=2的卷积,(先忽略池化,池化不影响通道数),生成一个通道数为64的112*112*64就容易理解了吧。那么112*112这个大小是怎么来的呢?那么除了卷积以外,还必须了解一个池化的概念了。
Maxp最大池化,运算过程很简单,就是在框框里取最大值然后形成新的矩阵。
过程就像这样,这里的Maxp,2*2,S-2,意思就是2*2里面取最大值,每隔2个取一个值。可以看到这个操作是一定会把矩阵变小的,其作用就是浓缩特征。
输出特征的大小遵循以下公式(FN就是卷积核的个数):
遵循这个规律,我们已经可以读懂大部分的内容了,只有最后的一小节还没弄明白,明天再继续看!