深度分割模型比赛训练技巧(Tricks)
发布日期:2021-05-14 15:14:01 浏览次数:25 分类:精选文章

本文共 2259 字,大约阅读时间需要 7 分钟。

深度分割模型训练技巧(Tricks)

模型集成

在深度模型中进行模型集成时,可以采用Blend/Average方法,对多折模型的预测结果进行加权求和;或者使用vote对模型结果进行投票。

数据集划分

将目标尽量放置在图像中央进行划分,避免边缘划分。若图片大小为1024×1024,推荐设置Overlap为124。

dropout层

在训练时使用dropout,在预测时禁用dropout,这等价于集成多个模型进行预测。

数据增强

常用数据增强方法:

  • 翻转(Flip)
  • 旋转或平移(Rotate/Translate)
  • 亮度调整(Adjust Brightness)
  • 颜色随机化(Random Color)
  • 随机形变(Random Distortion)
  • 随机缩小(Random Scaling)

高阶数据增强方法谨慎使用:

  • Mixup
  • CutMix

数据增强工具推荐

  • 手写工具:OpenCV
  • 框架工具:推荐使用Albumentations,适合大型比赛,提前占据优势

学习率调整策略

对少量数据集,建议使用类似CosineAnnealing的学习率策略,以帮助跳出局部最优。

调参关键点

推荐调参顺序:

  • 网络模型
  • 优化算法和学习率
  • 损失函数
  • 图像预处理
  • 分割问题

  • 模型精度达到比赛或论文要求
  • 分析造成精度低的原因:损失函数、预处理、数据集不均衡
  • 分割和分类精度异常的处理方法:设计合适的损失函数
  • 数据分析问题解决方法

  • 莽试
  • 查阅论文
  • seeking help
  • 寻找专门的网站或博客
  • 多任务学习

    多任务学习(如分类+分割)可以帮助解决任务矛盾,但需要谨慎调参损失函数。

    网络架构优化

  • 增加网络深度
  • 采用最新网络架构(查阅最新论文)
  • 输入图像大小

    通常选择128-512范围,遇到特殊情况可扩展至1024。

    损失函数轮番

    BCE → Dice → Lovasz → ...

    迁移学习

    利用预训练模型加快收敛。

    分割网络结构

    Encoder(特征提取器)

    • VGG系列(vgg16/vgg19/se-vgg)
    • Inception系列(v1/v2/v3)
    • Densenet系列(DENSE块)
    • SENet系列(SE块)
    • ResNet家族(resnet、resnext、se-resnet)
    • Efficient系列(b0/b1/…)

    Decoder(分割还原)

  • 转置卷积(Deconvolution)
  • 上池化(Up Sampling)
  • 线性插值(Linear Interpolation)
  • 确定合适的数据量

    • 训练集:1-2w张
    • 验证集:1000-8000张
    • 建议每个epoch预估1-5分钟,测试集规模可为几百到几千张。

    参数推荐设置

    • early_stop_round:5~10
    • learning_rate:0.001~0.1
    • batch_size:根据机器硬件调整
    • image_size:尽量大(如512或1024)

    损失函数选择(示例)

    BCE Loss

    Weighted BCE Loss

    Focal Loss

    Dice Loss

    Lovasz-Softmax Loss

    TopK Loss

    Hausdorff Distance Loss

    Sensitivity Specificity Loss

    Distance Penalized CE Loss

    Colour-Aware Loss

    OHEM(优先错误样本)

    ##池化层选择

    • Max Pooling
    • Average Pooling
    • Random Pooling
    • Strip Pooling
    • Mixed Pooling

    注意力机制

    • SE(Spatial-Exclude)
    • Non-local
    • CcNet
    • GC-Net
    • Gate
    • CBAM(Channel-Backbone Attention)
    • Dual Attention
    • Spatial Attention
    • Channel Attention

    卷积块选择

    • Residual Block
    • Bottleneck Block
    • Split-Attention Block
    • Depthwise Separable Convolution
    • Recurrent Convolution
    • Group Convolution
    • Dilated Convolution
    • Octave Convolution
    • Ghost Convolution

    伪标签制作

  • 使用训练集切图对测试集进行切图(大型图像)
  • 对测试集切图进行预测
  • 人工修正预测结果并筛选模型较好的结果
  • 将筛选后图片加入训练集切图训练
  • 自动化搜索

    搜索超参数:

    • Grid Search
    • Random Search
    • Bayesian Search

    搜索网络结构:

    • 自动化调参工具:NNI、Ray

    基础网络选择

    • 自然复杂场景:Mask-RCNN
    • 医疗、简单场景:UNet

    深度模型深度建议

    深度与感受野相关,计算最后感受野与原图近似等大时的深度较好。

    Test Time Augmentation

    在计算资源有限时,无需多折训练,使用Single Fold Single Training yacht Snapshot Ensemble / Stochastic Weight Averaging。

    分割网络训练集集成方式

    • Snapshot Ensemble
    • Stochastic Weight Averaging

    ##池化层选择改进

    Mixed Pooling

    对池化层进行组合,提升性能。

    上一篇:3D视觉
    下一篇:大型图像进行碎片化分割

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2025年04月28日 18时58分50秒