【每日一网】Day23:SpineNet简单理解

SpineNet

算法背景

在过去的一段时间内,CNN的结构设计取得了巨大的进展,更宽更深的网络接替而来,但是CNN的结构从发明以来并未有过改善,都遵循着分辨率单调递减的规则,尽管这种尺度递减的架构设计准则在分类任务中取得了巨大的成功,但是这种设计规则真的适合于目标检测这种同时进行定位和分类的任务吗,针对这种问题,谷歌提出了一种尺度排列网络,它具有以下特征:
1、中间特征的尺度可以随时提升或者下降,因此模型可以随着深度的增加而保持空间信息;
2、特征图之间的连接可以跨尺度以促进多尺度特征融合;
【每日一网】Day23:SpineNet简单理解_第1张图片
为了避免过多的人工调节,作者使用NASNet在coco上通过resnet50为基准,采用resnet50的Bottleneck模块作为候选特征模块,进行(1)特征模块排列(2)每个特征模块的输入连接

网络结构

【每日一网】Day23:SpineNet简单理解_第2张图片
所提骨干网络架构包含一个固定的stem模块,与可学习的尺度排列网络,而stem部分的模块是后续尺度排列网络的候选输入。

​ 尺度排列网络由一系列在这里插入图片描述
构成,每个Bk具有一个关联的特征水平Li,对应的特征分辨率为[公式]
,相同水平的模块具有相同的架构。受启发于NAS-FPN,作者定义了L3到L7共计5个输出模块,同时每个输出模块后接1x1卷积以输出具有相同特征维度的多尺度特征P3到P7。
根据源码,得出以下结构:
【每日一网】Day23:SpineNet简单理解_第3张图片

尺度排列

网络的构建模块顺序是十分重要的,因为其仅与父模块相关联。在这作者通过排列中间与输出特征定义尺度排列的搜索空间,搜索空间大小为(N-5)!5!。尺度排列需要首先确定,然后再进行网络的其他部分的搜索。

跨尺度连接

作者在搜索空间内为每个模块定义两个输入链接,父模块可以是任何一个更低的索引块或者院子stem模块。

模块调整

作者认为需要允许模块调整自身的分辨率水平与类型,中间模块可以以{-1,-,1,2}调整自身分辨率水平,导致4的N-5次方的搜索空,所有模块可以自适应的从{bottleneck,residual}中选择。

重采样

跨尺度特征融合的一个重要挑战在于:分辨率与特征维度可能不一致。此时,需要进行尺寸和维度的重采样来匹配目标模块的分辨率和维度。作者使用了如下方式进行重采样:
1、上采样:最近邻域插值法改变size,1x1卷积改变维度
2、conv+maxpool改变size,1x1卷积改变维度
【每日一网】Day23:SpineNet简单理解_第4张图片

多模型均衡

基于SpineNet49,作者构建四种改进版以在延迟与性能之间寻求均衡,这四种模型分别命名为SpineNet49S/96/146/190.

· SpineNet49S:它是在SpineNet49的基础上低特征维度以0.65进行缩放;
· SpineNet96:通过对每个模块重复两次将模型大小加倍,见下图加倍方式;
· SpineNet146:通过对每个模块重复三次进行加大模型,见下图加倍方式;
· SpineNet190:通过对每个模块重复四次更进一步加大模型

你可能感兴趣的:(每日一网,网络,人工智能,机器学习,深度学习,算法)