349. Understanding Clouds from Satellite Images | understanding_cloud_organization
祝贺本次比赛的所有获胜者!这是我获得的第一枚金牌,我感到非常高兴。
我的解决方案是由3个分割模型组成的集成模型。
在本次比赛中,我发现图像增强非常重要。我尝试了许多不同的增强组合,最终找到了一组对我效果很好的方案。我使用 albumentation 库来进行图像增强。
aug = Compose([
ShiftScaleRotate(scale_limit=0.5, rotate_limit=0, shift_limit=0.1, p=0.6, border_mode=0),
OneOf([
ElasticTransform(p=0.5, alpha=50, sigma=120 * 0.02, alpha_affine=120 * 0.02),
GridDistortion(p=0.5),
OpticalDistortion(p=0.5, distort_limit=0.4, shift_limit=0.5)
], p=0.8),
RandomRotate90(p=0.5),
Resize(352, 544),
VerticalFlip(p=0.5),
HorizontalFlip(p=0.5),
OneOf([
IAASharpen(alpha=(0.1, 0.3), p=0.5),
CLAHE(p=0.8),
GaussNoise(var_limit=(10.0, 50.0), p=0.5),
#GaussianBlur(blur_limit=3, p=0.5),
ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=0.3),
], p=0.8),
RandomBrightnessContrast(p=0.8),
RandomGamma(p=0.8)])
模型1:
编码器: efficientnet-b1
解码器: unet
图像输入尺寸: 416x608
TTA (测试时增强): 水平翻转, 垂直翻转, 多尺度: [(352, 544), (384, 576), (448, 640), (480, 672)]
阈值: 标签阈值 = [0.85, 0.92, 0.85, 0.85], 像素阈值 = [0.21, 0.44, 0.4, 0.3]
得分: 9折交叉验证 = 0.66002, 公开LB = 0.67070, 私有LB = 0.66806
模型2:
编码器: efficientnet-b3
解码器: fpn
图像输入尺寸: 352x544
TTA: 水平翻转, 垂直翻转, 多尺度: [(320, 512), (384, 576)]
阈值: 标签阈值 = [0.85, 0.9, 0.9, 0.85], 像素阈值 = [0.35, 0.4, 0.42, 0.42]
得分: 9折交叉验证 = 0.65646, 公开LB = 0.66426, 私有LB = 0.66687
模型3:
编码器: resnet50
解码器: unet
图像输入尺寸: 352x544
TTA: 水平翻转, 垂直翻转, 多尺度: [(320, 512), (384, 576)]
阈值: 标签阈值 = [0.9, 0.92, 0.87, 0.82], 像素阈值 = [0.35, 0.51, 0.31, 0.3]
得分: 9折交叉验证 = 0.65715, 公开LB = 0.66541, 私有LB = 0.65973
所有模型均使用 bcedice loss(二元交叉熵骰子损失)和 Adam 优化器。运行阈值搜索以获取标签阈值和像素阈值。
我利用交叉验证和公开LB分数来粗略设定模型权重,并运行阈值搜索以获取阈值。
模型权重: 模型1, 模型2, 模型3 = [4, 1, 2]
阈值: 标签阈值 = [0.84, 0.9, 0.