返回列表

12th place solution

558. Vesuvius Challenge - Ink Detection | vesuvius-challenge-ink-detection

开始: 2023-03-15 结束: 2023-06-14 医学影像分析 数据算法赛
第12名解决方案
作者: One Piece (排名第12)
发布时间: 2023-06-23

第12名解决方案

感谢主办方举办这场激动人心的比赛,并向所有获奖者表示祝贺!这是我第一次参加此类比赛,以下是我的解决方案和方法。

概述

我们使用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

同比赛其他方案