我们是怎央打团队,以下是对本次大赛的一些心得的分享。
我们从数据切分方式、网络选择、训练的Tricks、后处理等方面来介绍我们所使用的方法。
一、数据切分方式
我们本次参赛的训练过程包含两个阶段(后面会详细介绍),每个阶段使用了不同的数据划分方式。训练阶段一将图像划分为大小为1024x1024、重叠率为1/8的图像块(与baseline中的cut_data.py一致)。训练阶段二将图像划分为大小1024x1024且无重叠的图像块。切分结束后,对两个数据集都进行了数据清洗,去掉image图像为全黑(无图像信息)以及label图像为全白(无道路)的图像对。然后将切割代码会产生的个别label错误的图像对手动删除, 这样的问题在切分后的数据集中一般会出现小于十组图像对。
二、网络选择
本次参赛使用的网络是LinkNet34, 将LinkNet网络自身的backbone由ResNet18替换为ResNet34,使用的Loss是BCE+DICE一比一的直接加和。经过比赛期间的测试我们发现不同的网络对于结果的影响不会到很明显的程度,因此在网络结构本身的选择上其实在比赛早期可以不用花太多功夫。提分重点还是在数据增强、后处理和训练技巧上。
三、训练的Tricks
数据增强使用了①亮度对比度随机变换(albumentations默认的参数设置);②随机尺度的高斯模糊(尺度3-7随机);③HSV抖动;④物理增强(平移、尺度缩放、旋转±15°、随机水平垂直翻转、随机旋转90°)。数据增强之后将输入网络的图像像素值归一化到±1.6(借鉴自D-LinkNet)。
采取了两步训练的方式,第一阶段和第二阶段的训练数据不同,数据准备如第一部分内容中所述。第一阶段使用imagenet预训练的权重做初始化,第二阶段使用第一阶段的训练结果作为初始化。
优化器使用Adam,在训练阶段1初始化学习率为2e-4,衰减周期为5个epoch,衰减系数为0.9;在训练阶段2初始化学习率为1e-5,衰减周期为1个epoch,衰减系数为0.9。
四、后处理
在模型预测阶段使用了8张预测结果来整合最终结果(原图、水平翻转、垂直翻转、水平+垂直翻转,以及上述4张图分别逆时针旋转90°得到的图)。同时采用了膨胀预测的方法。
谢谢大家!
本文首发 AI Gallery: https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=2b06e091-140e-4e2e-b39a-8ad9bfa80f16
本赛事赛题:https://competition.huaweicloud.com/information/1000041322/circumstance
决赛获奖选手分享集锦:https://competition.huaweicloud.com/information/1000041322/share
