点击上方“CVer”,选择加"星标"或“置顶”
重磅干货,第一时间送达
本文作者:张航
https://zhuanlan.zhihu.com/p/136105870
本文已由原作者授权,不得擅自二次转载
ResNeSt 这个论文的工作量比较大,我们会分开进行讲述,这篇关于语义分割。正文开始之前先说一下,我们已经开源了论文中提到的所有模型和训练代码 (见 ResNeSt 主仓库)
https://github.com/zhanghang1989/ResNeSt
特别是我们的 detectron2-ResNeSt ,在detectron2的基础上直接提高3%。
https://github.com/zhanghang1989/detectron2-ResNeSt
下面是正文:
自2016年底,PSPNet 横空出世,从此成为领域的标杆,在当年的 MS-COCO + ADE20K 竞赛中夺冠,其中最佳单模型达到了 44.94% 的 mIoU。
这个最佳模型的记录保持了接近三年之久,直到最近才被超过,达到了46.27%(数据来自 PaperWithCode)。领域内的工作用了3年将这个数据集的结果推动了1.3%,ResNeSt-269 + DeepLabV3 单模型取得了 47.60% mIoU 的结果,在短时间内将最佳单模型结果再次提高了1.3%。这样来看,是不是可以说 ResNeSt 推动了这个数据集3年的进展呢?
虽然这样说有点标题党,我们看一下在 ADE20K 上的具体表现:
我们用DeepLabV3 + ResNet作为 baseline,可以看到使用 ResNeSt 取代标准 ResNet 可以得到接近 3% 的提升。截止至论文投稿时,ADE20K验证集上的最佳模型是 ACNet,在不使用任何技巧的情况下,DeepLabV3 + ResNeSt-101可以达到 46.91% mIoU,比 ACNet 提高了 1%。在论文提交之后,我们又训练了更深的 ResNeSt-269 模型,并且进一步将这一结果推进至 47.60%。
我以前也做过一些语义分割方面的工作,对其中的困难有一点自己的想法(不对的地方还请指正)
很难突破:感觉无论在模型上做哪些改动,似乎都很难有较大的提高。这个时候是不是可以考虑在其他方面做一些创新呢?比如这篇 ResNeSt 提供了一个思路,说不定在backbone 阶段改进更有效呢,我们发现 ResNeSt50 + FCN 在 ADE20K 上就可以达到 42.94% mIoU,已经碾压了其他类似复杂度的模型。另外一个可以思考的方向,我们是不是也可以在 data 上面找突破呢, @朱毅大神之前做的 video propagation 在 Cityscapes 数据集上有很大提高,马上会推出一篇 semi-supervise 训练的论文,可以期待一下~
方法不通用:许多 low-hanging fruit 都被别人做了,要想提高分数,就需要对模型进行魔改,这样做出来的模型很复杂,而且通常不是很通用。主要原因在于不同数据集的难点不同,比如 ADE20K 注重的是语义理解和上下文信息,然而在 Pascal VOC 和 Cityscapes 这样类别比较少的数据集,主要困难在边界,通常某些网络上的改动在一个数据集上很好,在其他数据集上没用。如何可以找到相对通用的方法呢?
我觉得 ResNeSt 在语义分割方面的表现,可能对将来的工作或许有一点启发。
虽然最近分类网络有很大的突破,但是在检测、分割等下游应用大多工作仍在使用 ResNet 做为 backbone 进行迁移学习。ResNet 网络的优势在于通用性与模块化,然而毕竟是为了分类问题设计的网络,通常在目标领域会有一些结构上的不足,比如对于分割任务来讲,网络的感受野相对较小,缺少全局的上下文信息等等。针对这种情况,下游应用通常会在 backbone 基础上进行魔改,比如使用 pyramid representation 来提高感受野大小,或者引入全局的上下文信息,还有比较 expensive 的 Spatial Attention 的工作。与其这样魔改,不如我们把这些改进做到 backbone 里直接预训练一下。
在CVPR 2018,我做过一个 EncNet 的工作,算是一个把 attention 应用到语义分割问题上比较早期的工作了。我们发现,通过一个全局的上下文信息来预测 channel 维度的 attention 对分割很有帮助。那个时候也想过把这个模块用在 ImageNet 预训练中会有什么效果,但是碍于资源有限没有深入研究(deadline 前几周才借到机器跑实验)。SE-Net,SK-Net 等工作都在基础网络训练的时候引入 attention 机制,而且取得了很大的成功,SE-Net 的缺点在于不利于网络结构的加宽以及 feature-map 的多样性,因为不同的 channel 都是相互依赖的;SK-Net 的多分支结构,不容易模块化和加速。受到 ResNeXt 的启发,我们把 attention 做到了 group level,这样的分组结构,有利于 featuremap 的多样性,同时这种模块化的设计保持了 ResNet 的原有宏观结构,可以直接应用到已有的算法中去。就这样我们得到了 ResNeSt,在论文中,我们发现在物体检测,实例分割,语义分割等方向对下游模型都有很大提升。
相对于对已有网络进行魔改,可能不如对基础网络提升来的直接。希望这篇论文可以抛砖引玉,以后可以看到更多的关于基础网络研究的文章。毕竟分类问题基本属于已经解决了的问题,能够更好地为下游应用服务,才是更加有意义的。
不出意外的话,Chongruo @水中草、Jerry @张钟越和我最近会讲一下 ResNeSt 之物体检测与实例分割。论文中用到的 Mask-RCNN,Cascade R-CNN 等模型和训练代码已经开源在了detectron2-ResNeSt。
https://github.com/zhanghang1989/detectron2-ResNeSt
我们之后应该会放出更好的模型,给准备打 MS-COCO & LVIS 竞赛的小伙伴们提供一个 Start Kit。
http://cocodataset.org/workshop/coco-lvis-eccv-2020.html
推荐阅读
论文下载
在CVer公众号后台回复:ResNeSt,即可下载本论文
重磅!CVer-图像分割 微信交流群已成立
扫码添加CVer助手,可申请加入CVer-图像分割 微信交流群,目前已汇集1300人!涵盖语义分割、实例分割和全景分割等。互相交流,一起进步!
同时也可申请加入CVer大群和细分方向技术群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、TensorFlow和PyTorch等群。
一定要备注:研究方向+地点+学校/公司+昵称(如图像分割+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加群
▲长按关注我们
麻烦给我一个在看!