图像分类、目标检测、图像分割等各类视觉技术都离不开骨干网络(backbone),一个强有力的骨干网络可以为模型带来更高的效率及精度,所以它的设计一直都是业界研究者关注的重点方向。
当下,现有的骨干网络其实已经非常丰富和成熟。比如近几年工业界的『网红』骨干网络—— ResNet,它做到了速度与精度的完美平衡,且由于较高的鲁棒性,在各类数据集上都有较好的效果,成为了社区中为数不多「久经考验的模型」。
这些年,很多研究者也基于ResNet进行了诸多改进,如ResNeXt、ResNet-D,Res2Net等。但是由于在速度与精度的平衡方面表现欠佳:为了追求更高的精度,而牺牲了速度,因此没有在工业领域广泛落地应用。
例如今年年中推出的ResNeSt,当属ResNet的最强改进版,在精度上取得了SOTA(state-of-the-art)的效果,但是速度上依旧受人诟病,所以没能成为工业落地的标配。
而原始的ResNet系列模型依然是工业界的首选。因此,如何设计一个精度高且速度快的骨干网络,一直是工业界和学术界研究的热点。
百度视觉研发团队基于飞桨深度学习平台推出的HS-ResNet,就是这样一个很好地平衡了精度和速度的优秀骨干网络。其以尽量不增加模型计算量和推理开销为前提,将原先的ResNet模型的top-1精度(ImageNet val数据集)从76.5%提升了近5个百分点,达到81.28%,精度远超现有SOTA!该网络不仅在图像分类领域表现抢眼,将其用于目标检测、图像分割上,涨点也同样明显。也就是说,在同样预测速度的网络中,该网络可以取得更高的精度,实打实堪称工业界最强的骨干网络之一。
下图展现了ResNet50不同改进版本的精度和延时的关系。测试环境为T4/FP32,使用了TensorRT,且Batch-Size为1。圆圈面积反映了不同模型的参数大小。橙色圆圈表示使用不同改进策略的ResNet50,绿色圆圈表示在ResNet50上使用了不同注意力策略,红色圆圈表示这次的主角HS-ResNet50。
下表展示了HS-ResNet与ResNet改进版的比较,从表格中的数据可以看出HS-ResNet的优势非常明显。
该HS-ResNet的设计也被梳理总结成了论文,感兴趣的开发者可以参见下面的链接阅读全文。
HS-ResNet论文:
https://arxiv.org/abs/2010.07621
那HS-ResNet到底是如何设计的呢?下面带领大家一起来看一下最强骨干网络的养成之路。
基于ResNet-D的初步优化
原始的ResNet已经是非常好的骨干网络了,ResNet-D在几乎不增加推理开销的同时进一步提升了精度,所以研发同学首先考虑使用该网络为baseline去优化。下图展示了ResNet-B(即常见的ResNet版本)到ResNet-D的进化。
采用更细致的Split方式
近些年很多模型的设计都在通道层面进行切分。比如,ResNeXt引入了「组」与「基数」的概念,将通道按不同的组分别做卷积操作,获取更加丰富的特征;Res2Net引入了scale与width的概念,将通道split后分级做卷积操作,提升了模型的感受野;ResNeSt采用了更细致的attention机制对通道做了加权处理。HS-ResNet的研发人员发现,使用更多的分组操作或者使用更细致的attention操作都会大大增加模型的耗时,大大降低网络结构的性价比;而多级的Split操作可以将不同的感受野信息做更好的融合,推理速度也没有变慢很多,从而达到只增加很少的耗时情况下提升更多的精度效果。
HS-ResNet的整体结构与ResNet-D一样,只是将bottleneck中的3x3卷积替换成了更为细致的split分级结构,当scale=5时其结构图如下所示。
使用更适当的训练策略
众所周知,训练策略往往会决定模型的最终性能,但过分的调整训练策略往往会让其他开发者认为模型优秀的表现源自于更好的训练策略。基于此,HS-ResNet的作者没有使用更强的训练策略(如EMA策略,drop-block等),仅使用了目前较为常规的训练分类trick,如label-smoothing、cosine-learning-rate-decay等。即使在这些常规策略下,该模型仍取得了SOTA效果。
前文提到,该骨干网络应用到下游任务中,也取得了不俗的表现,让我们一起看看其他视觉任务中的情况
1. 目标检测任务
对于目标检测任务,HS-ResNet的作者在MS-COCO数据集上进行验证,使用Faster-RCNN和FPN作为基础模型。下表展示了检测精度,从下表数据可以计算出,与ResNet50-D相比,HS-ResNet50在mAP@IoU=05:0.95%上可以直接获得2.7%的收益,这表明仅仅替换检测任务中的骨架网络,通过使用HS-ResNet网络即可显著提升检测任务的精度。
2. 实例分割任务
对于实例分割任务,同样地在MS-COCO数据集上进行验证,使用Mask R-CNN和FPN作为基础模型。实验结果如下表所示。从下表数据可以计算出,HS-ResNet50相比同等级参数量的ResNet50-D提高2.6%,相比参数量更多的ResNet101-D提高1.2%。
3. 语义分割任务
对于语义分割任务,在Cityscapes dataset上验证HS-ResNet带来的收益,使用Deeplabv3+作为基础模型。实验结果如下表所示。从下表数据可以计算出,与ResNet50-D相比,HS-ResNet50在meanIoU上的性能提升了1.8%,这表明多级切分通道模块能获得更加准确的语义信息。
后续工作
HS-ResNet的作者将继续验证该模型在其他视觉任务上的表现,期待该模型更多的state-of-the-art的结果。
该模型将于PaddleClas Repo进行开源,并提供丰富的下游任务(例如OCR,视频分类和场景分类)的实现,以供业界开发者使用。
PaddleClas飞桨图像分类套件是飞桨为工业界和学术界所准备的图像分类任务的工具集,拥有24个系列的分类网络结构和训练配置,122个预训练模型和性能评估,其中包括10万类图像分类预训练模型。其涵盖百度自研的SSLD知识蒸馏方案优化方案及优化后的诸多模型。并支持丰富的数据增广、多机训练、混合精度训练等方案。助力使用者训练出更好的视觉模型和应用落地。
如在使用过程中有问题,可加入飞桨官方QQ群进行交流:1108045677。
如果您想详细了解更多飞桨的相关内容,请参阅以下文档。
**·飞桨PaddleClas项目地址·
GitHub(欢迎Star):
https://github.com/PaddlePadd...
Gitee:
https://gitee.com/paddlepaddl...
·飞桨官网地址·