558. Vesuvius Challenge - Ink Detection | vesuvius-challenge-ink-detection
感谢主办方举办这场激动人心的比赛,并向所有获奖者表示祝贺!这是我第一次参加此类比赛,以下是我的解决方案和方法。
我们使用3D Resnet(https://github.com/kenshohara/3D-ResNets-PyTorch/blob/master/models/resnet.py)作为编码器,配合CNN解码器。
我们尝试了多种解码器结构,包括Unet、Uperhead、CNN和ResCNN。最终发现,结构最简单的CNN解码器取得了最佳效果。
| 骨干网络 | 解码器 | Z-DIM |
|---|---|---|
| 3DResnet-18 | CNN | 22 |
| 3DResnet-34 | CNN | 22 |
Z_DIM: 21->43
图像尺寸: 224
步长尺寸: 56
A.Rotate(limit=90, p=0.5),
A.HorizontalFlip(p=0.5),
A.VerticalFlip(p=0.5),
A.RandomBrightnessContrast(p=0.75),
A.ShiftScaleRotate(p=0.75),
A.OneOf([
A.GaussNoise(),
A.GaussianBlur(),
A.MotionBlur(),
], p=0.5),
A.GridDistortion(num_steps=5, distort_limit=0.3, p=0.5),
A.CoarseDropout(max_holes=1, max_width=int(size * 0.3), max_height=int(size * 0.3),
mask_fill_value=0, p=0.5),
A.Normalize(
mean= [0] * in_chans,
std= [1] * in_chans
),
ToTensorV2(transpose_mask=True)
我们采用了两种训练方法。第一种方法是从1、2、3号文件夹中各选一个作为验证集,训练三个模型。但由于在验证集2上的表现不佳,最终只使用了在验证集1和3上训练的3DResnet-18模型。第二种方法是从1、2、3号文件夹中随机选取图像块作为验证集,用此方法训练了4个模型:两个基于3DResnet-18(步长分别为56和37),两个基于3DResnet-34(步长分别为56和37)。
BCELoss
Adamw
GradualWarmupSchedulerV2(https://www.kaggle.com/code/underwearfitting/single-fold-training-of-resnet200d-lb0-965)
图像尺寸: 224
步长尺寸: 224
阈值: 0.5
TTA: 4种旋转角度 + 水平/垂直翻转
最终模型组合:
(3DResnet-18 + CNN) × 4 + (3DResnet-34 + CNN) × 2
公开榜分数: 0.786897
私有榜分数: 0.652892