[神经网络]Anchor_Free网络(YoloX,CenterNet)

        Anchor_Free网络不同于传统的目标检测网络需要先生成很多先验框再从中筛选+回归生成预测框。其可以直接从目标的中心点向周围发散一个预测框。这样做有两个好处:①省略了生成大量先验框的过程,可以一定程度增加预测速度;②预测框没有预设长宽比,对于长宽比异常的目标识别精度更有精度。

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第1张图片                ​​​​​​​        ​​​​​​​    [神经网络]Anchor_Free网络(YoloX,CenterNet)_第2张图片

        从上面的图可以很清楚的看出Anchor_Free(左)和Anchor_Base(右)在处理预测框上的区别。

一、CenterNet

        CenterNet是一种经典的Anchor_Free网络,其网络结构如下图所示:可以分为骨干网络高分辨率特征图生成网络分类头

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第3张图片

         1.骨干网络

        骨干网络一般为ResNet50或Hourglass Net。这里以ResNet50为例,512x512的图像经过特征提取会得到一个16x16x2048的特征图。并不像Yolo一样需要抽取多个不同尺寸的特征。

        2.高分辨率特征图生成网络

        即网络结构图中的三个ConvTranspose(反卷积)模块,对于特征图(16x16x2048)而言,三次反卷积会最终生成一个128x128x64的特征图(每次反卷积特征的高宽会放大2倍),使用这个特征图网络即可通过Center Head预测出最终结果。

        3.Center Head

        Center Head将128x128x64的特征图划分为128个区域,每个区域中存在一个特征点。当物体的中心落入某个区域时,该区域的特征点(通常是区域左上角的点)会作为基点来确定物体。

        Center Head会利用特征图进行三个卷积,分别进行热力图预测中心点预测宽高预测

        ①热力图预测:用来判断每一个热力点(特征点)是否存在物体,以及物体的种类,其通道数为num_classes(种类数),输出结果为(128x128x num_classes)

                num_classes通道为每个种类的概率,经过激活函数即可判断最有可能的类型

        ②中心点预测:用来判断中心点到热力点的偏移情况,通道数为2,输出结果为(128x128x2)

                2维通道代表中心点相对于特征点右下角的偏移情况

        ③宽高预测:用来预测每个物体的宽高情况,通道数为2,输出结果为(128x128x2)

                2维通道代表物体预测框的宽和高

        CenterNet同样需要非极大抑制操作来确保同一类型的预测框不会过多叠加,但是不同的是其需要在生成预测框之前,在热力图预测结果上进行非极大抑制

二、YoloX

        Yolo系列向来都是经典的Anchor_Base网络,而YoloX通过对预测头(Yolo Head)的修改是的其能在不适用先验框的情况下生成预测框。

        YoloX的大体结构和传统的Yolo差别不大,也使用Darknet作为骨干网络,最大的修改来自与Yolo Head,网络结构图下图,依旧能分为骨干网络、FPN加强特征提取网络、Yolo Head预测头

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第4张图片

         1.骨干网络

        为改进的CSPDarknet,这个网络会输出三个不同尺寸的特征图,称为有效特征层。由上面的网络图可以看出,CSPDarknet主要由两种模块构成:Conv2D_BN_SiLU和CSPLayer,同时在输入的时候使用了Focus结构,最后一层使用了SPP提高网络的感受野。

        Conv2D_BN_SiLU实际上就是一个残差网络模块,知识其激活函数从ReLu换成了SiLU,SiLU具备无上界有下界、平滑、非单调的特性。SiLU在深层模型上的效果优于 ReLU。可以看做是平滑的ReLU激活函数,其公式可以写作:f(x)=x\cdot sigmoid(x)

        CSPLayer类似于ShuffleNet中的Channel Split操作,该模块将输入特征拆分为左右两个部分,左边直接连接到输出,右边则正常进行残差运算。结构如下图所示:

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第5张图片

         Focus结构不难理解,其在图片中每隔一个像素点获取一个值。每获取四个值时便将这四个值进行堆叠生成一个特征层,相当于将原来的3通道变为了12通道,操作图如下图所示:

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第6张图片

         SPP结构通过不同池化核大小的最大池化进行特征提取,以提高网络的感受野,在YoloV4中该结构被用在FPN中,而YoloX中则将其用在了骨干网络上。

        2.FPN网络

        同样是对骨干网络输出的三个特征进行上采样融合和下采样融合,结构如图,主要的特点是采用了CSPLayer替代传统卷积,在这里就不再赘述,可以参考之前YoloV7的文章。

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第7张图片

[神经网络]YoloV7icon-default.png?t=N658https://blog.csdn.net/weixin_37878740/article/details/131590277?spm=1001.2014.3001.5501

        3.Yolo Head

        这是YoloX最大的不同点,以前的Yolo网络的所有解耦头都是连载一起的(即分类和回归由一个1x1卷积实现),而YoloX将其进行了拆分,到最终预测的时候再整合起来。

[神经网络]Anchor_Free网络(YoloX,CenterNet)_第8张图片

         从上图可见,此分类头一共三个输出Cls用来判断每个特征点包含的物体种类(num_classes个通道),Reg为回归参数(4个通道),用来调整预测框,Obj用来判断特征点是否含有物体(1个通道)。

你可能感兴趣的:(神经网络,学习笔记,神经网络,人工智能,深度学习)