系列文章目录
第一章竞赛入门
前言
近年来,越来越多的高校企业会推出一些列深度学习算法竞赛,一方面是面向社会高校人才就一些瓶颈问题寻求解决方案;另一方面也给大家提供了一个展示个人能力的平台,通过参加竞赛可以丰富自己的简历。这里就前段时间看到一篇推文,整理一下相关的竞赛策略。主要从数据分析、主干网络选择、网络调参、损失函数以及数据增强等方面进行归纳。推文是以IEEE 2023国际遥感数据融合大赛为背景,光学与SAR遥感图像融合的细粒度屋顶检测、分类,光学与DEM遥感图像融合的建筑高度估计
一、数据分析
在实际竞赛中如果赛题组没有给出数据的详细介绍或该赛道本身就是针对特定数据问题(小样本、类不均衡、数据噪声)提出的,就需要对数据进行进一步的分析。
文章中就基于光学遥感图像的细粒度屋顶检测、分类,高度估计技术进行分析:
- 数据是否存在类不平衡问题:
不同屋顶类型、建筑物高度(低,中,高)的样本呈现不均匀的长尾分布。
- 数据质量:
1)在遥感图像中很多建筑属于弱小目标不易分辨;不同屋顶类别之间视觉特征模糊难以区分;
2)部分标注数据中,建筑轮廓和高度掩码(nDSM大于0部分)不对齐
实际场景中的云雾干扰、建筑阴影、相互遮挡等,降低了识别精度。
- 数据特点:
1)光学影像由于分辨率问题会存在大量的小目标、混合像元(这其实是卫星遥感影像面对的常规问题)。
2)SAR雷达影像因为波长更长,可以穿透云层、雾、灰尘、霾和烟,克服了遥感光学影像受天气、光照、时间等干扰的不足。(在这里将SAR影像作为一种融合数据,来增强建筑的特征的表示)
二、主干网络选择
1.网络
建筑屋顶具有目标特征微弱,不同屋顶间的特征边界模糊、不同类别屋顶数量极度不平衡等特点。
作者团队为了提高模型区分目标前景和背景的能力从而提高模型的召回率,系统架构采用经典的端到端two stage实例分割算法Cascade Mask-RCNN作为基础框架。
据笔者了解,现有的研究或应用中两阶段实例分最为经典的还是Mask-RCNN系列,相比较单阶段算法,两阶段算法是通过牺牲时间来换取精度。不同于火热的单阶段yolo,这类算法对应用的实时需求较高,相对侧重于时间和精度。如果不考虑时间效率,两阶段的mask-rcnn系列是较为推荐的算法。具体选择哪些,看看相关竞赛冠军方案ResNet/MobileNet/U-Net/ConvNeXt或一些sota算法基本上抄作业大差不差。但具体去做的时候还是要做几轮实验看一下效果,选取最优的主干网络作为基础网络。
推文作者基于CBnetV2首次提出将目前的SOTA算法ConvNeXtV2进行dual-ConvNeXtV2结构的构建。
网络调优损失函数与模型初始化
1)为了应对训练数据存在的长尾分布场景,我们将定位损失GIoULoss与分类损失SeesawLoss相结合,有效地缓解了训练过程中占比较小类别的梯度会被头部类别淹没的问题。
2)在训练模型前对主干网络进行了自监督模型预训练,自监测预训练策略选用与ConvNeXtV2较为契合的FCMAE
MAE自监督作为网络的初始化预训练权重可以有效减少训练时间、提高精度(笔者是深度学习方向,但并非网络调参出身,主要是研究偏向于弱监督,文中的部分策略是在与朋友交流过程中,朋友提到的,后续笔者对针对相关内容更新实验验证)
三、数据增强
基于实例分割提点利器Simple Copy-Paste基础上,我们提出Modified Copy-Paste,将裁剪后的目标进行平移、缩放、翻转来进一步增强再粘贴到新的影像中。
四、模型微调
这一点可能是一般的深度学习入门者经常容易忽略的问题。
“丰富的数据增强策略是把双刃剑,它不仅可以扩充数据集增强模型的泛化能力也可以从一定程度导致整体训练数据的domain shift,从而影响模型最终的能力。为了最大程度利用数据增强策略,弱化其负面影响,我们在实验中发现,经过多轮次训练后的模型可以通过关闭数据增强并使用小学习率进行微调来达到进一步提高精度的效果。”
SWA
机器学习模型权重一般会收敛到一组最佳权重集合的边缘部分,而使用随机权重平均可以收敛到这个最佳权重集合的更中心位置,一般具有更好的平均表现和泛化水平。该策略可以对训练好的模型进行稳定,有助于比赛最终模型效果的稳定。
推文作者介绍由于SAR影像没有宇光学影响对齐,导致添加SAR数据后模型精度下将,作者貌似并未对SAR数据进行进一步的对齐处理。作者在论文中进行进一步的论文实验分析,不过赶论文内容,竞赛性的论文感觉还是挺好写的,值得一试。
补充-数据建模
“为了提高高度估计的准确性,在网络中加入了一个额外的高度分层分割分支。在此分支中,使用与高度估计分支相同的 UPerNet 解码器。然而,融合特征只需要一个 n 通道卷积层,其中 n 等于高度层次的数量。我们将 nDSM 划分为几个离散的高度层级,而不是直接使用仅具有单个类的实例分割标签,这有助于通过不同的高度层级加强模型的特征提取能力。通过分析nDSM的分布并使用聚类算法,将nDSM分为n类作为建筑高度层级的类别标签, 这些离散的类别标签用于指导建筑物高度的估计,解决了通用方法中与nDSM对齐的语义标签不足的问题。”
作者从现有数据中提取出可用的信息,在竞赛要求中如果没有要求说不能对数据进行进一步处理或优化,可以根据实际的需求对数据进行建模。这个就对个人或团队能力有一些要求了
总结
对文章加了一些个人理解,后续应该有时间参加一些竞赛,如果有可能在参加一些算法竞赛的过程中尽可能去找一两个有经验的带来一下会更好,没有的话就像我,看博客做实验吧。欢迎大家一起交流讨论。
后续有时间会对相关主干网络、数据增强、损失函数进行实验与总结。