Res2Net:新的深度学习多尺度结构,提升物体检测立竿见影
The following article is from AI公园 Author ronghuaiyang
加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
来源:AI公园
作者: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着重于分割类型的任务,其中改进的物体识别能力发挥了作用。下面是图像语义分割的比较:
正如上面所看到的,在bottleneck中引入scale维度可以帮助CNN更好地勾勒出图像中感兴趣的东西,从而提高整体的准确性。
Res2Net的github在这里:https://github.com/gasvn/Res2Net
把ResNet更新为Res2Net = Res2NetPlus
然而,我发现Res2Net的官方实现在很多方面都是在一个较老的ResNet风格中实现的。因此,我从github@frgfm(基于github @gasvn)获取Res2Net实现,并将其修改为:
1、使用Mish而不是ReLU进行激活。
2 、将ResNet的主干更改为一个前沿的3@3x3堆叠的主干(stride 2,stride 1,stride 1),而不是旧的单一的7x7核。
3 、反转BN->激活的顺序,变成激活->BN。这是基于我们对FastAI研究的发现,并得到了论文:Rethinking the usage of Batchnorm…的支持:
“我们不应该把Batch Normalization放在ReLU之前,因为ReLU的非负响应会使权值层更新的方式不太理想……”。
PyTorch代码:https://github.com/lessw2020/res2net-plus
用法很简单:
Res2NetPlus的实际应用
在咨询工作中,我利用卫星图像构建了一个太阳能电池板探测器,我从零开始构建了一个Res2NetPlus50,然后将其与标准Imagenet预训练的进行了迁移学习的ResNet50进行了比较。我发现Res2Net50的准确率更高(+5%),训练也更稳定。
该模型最终于上周投入生产,验证数据的准确率为97.8%。
初步生产结果与训练结果一致:
缺点:
虽然Res2Net的计算复杂度与等效的ResNet相似,但它的运行速度仍然比对应的ResNet慢(20%似乎是平均水平)。
此外,对于FastAI排行榜数据集之类的分类任务,Res2Net在验证和训练损失上创造了记录(即正确时更正确,错误时更少错误),但并不是最终的绝对准确性的记录。
这是一个我还没有弄明白如何改正的问题,只有先假设一些分类任务可能是不是非常依赖于完整的物体的区分。
因此,Res2Net的最佳用法似乎集中在物体识别和分割类型的任务上。
小技巧 - Res2Net喜欢高级数据增强,比如mix-up、CutMix等。你可以看到使用这些工具时验证损失会急剧下降,因此强烈建议使用Res2Net进行大量的数据增强。
链接:
官方的Res2Net仓库:https://github.com/gasvn/Res2Net
Res2NetPlus结构:https://github.com/lessw2020/res2net-plus
-End-
*延伸阅读
添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
△长按添加极市小助手
△长按关注极市平台
觉得有用麻烦给个在看啦~