Res2Net:新的深度学习多尺度结构,提升物体检测立竿见影
btikc 2024-09-05 12:19:54 技术文章 10 ℃ 0 评论
作者:Less Wright
编译:ronghuaiyang
导读
只要把ResNet中的block块换成Res2Net的block块,其他什么都不用动,物体检测立刻提升2个点。
正如谷歌Brain的EfficientNe论文所显示的,对于CNN架构的各个方面(宽度、深度、分辨率)的扩展,投资的回报正在迅速减少。
有一篇新的论文,来自Gao,Cheng,Zhao等人,Res2Net: a new multi-scale backbone architecture,展示了在一个给定块中做多尺度,而不是通常的一层一层的做多尺度,是一个未知的领域,可以对物体检测和分割带来额外的回报。
大多数架构都是在一层一层的基础上使用了多尺度。他们的创新之处是在一个给定的残差块中使用分层的、层叠的特征组(称为“scale”),取代了通用的单个3x3卷积核。
为此,他们重建了普通的ResNet架构的bottleneck block,用“4scale-(3x3)”残差分层架构取代了标准的1-3-1的CNN布局。因此,这个更改构建了“Res2Net”。这样,中间的主卷积从单分支变为多分支。
用图来说明一下:
这里的概念是通过增加块内的感受野,而不是一层一层地捕获图像中更细粒度的不同级别的尺度,从而提高CNN检测和管理图像中物体的能力。
作者将Res2Net块内的特征组数量称为“scale dimension”。因此上面的代码块是scale为4的Res2Net代码块。
然后,可以将这些Res2Net模块插入标准ResNet或ResNeXt模块中,从而提高它们的粒度。
Res2Net着重于分割类型的任务,其中改进的物体识别能力发挥了作用。下面是图像语义分割的比较:
然而,我发现Res2Net的官方实现在很多方面都是在一个较老的ResNet风格中实现的。因此,我从github@frgfm(基于github @gasvn)获取Res2Net实现,并将其修改为:
3 、反转BN->激活的顺序,变成激活->BN。这是基于我们对FastAI研究的发现,并得到了论文:Rethinking the usage of Batchnorm…的支持:
在咨询工作中,我利用卫星图像构建了一个太阳能电池板探测器,我从零开始构建了一个Res2NetPlus50,然后将其与标准Imagenet预训练的进行了迁移学习的ResNet50进行了比较。我发现Res2Net50的准确率更高(+5%),训练也更稳定。
英文原文:https://medium.com/@lessw/res2net-new-deep-learning-multi-scale-architecture-for-improved-object-detection-with-existing-de13095c9654
本文暂时没有评论,来添加一个吧(●'◡'●)