返回列表

2nd place solution (quick overview)

425. VinBigData Chest X-ray Abnormalities Detection | vinbigdata-chest-xray-abnormalities-detection

开始: 2020-12-30 结束: 2021-03-30 医学影像分析 数据算法赛
第二名方案(快速概览)

第二名方案(快速概览)

作者: ZFTurbo (Grandmaster) | 比赛排名: 第2名

第一部分:初始模型

起初,我开始尝试针对该数据集使用不同的目标检测(OD)模型。我尝试了:EffDet (B5)、CenterNet (HourGlass)、Yolo_v5、Retinanet (RsNet50, ResNet101, ResNet152)、Faster RCNN。

主要的初始技巧:

  1. 为了训练模型,我在 train.csv 上使用了 WBF,IoU 设为 0.4。我通常将此文件用于大多数模型的训练和验证。
  2. 通过验证,我发现对模型输出的框进行过滤时,NMS 使用较低的 IoU 值至关重要。因此,我对 Yolo_v5 使用了 NMS IoU: 0.25,对 RetinaNet 使用了 NMS IoU: 0.3。看起来,让高置信度框消耗周围更多的框效果更好。
  3. 我不想更改 RetinaNet 的锚点,因此我创建了一个包含接近正方形框的 train.csv 版本,因为默认的 RetinaNet 不喜欢细长的框。

最佳模型如下:

  • Yolo_v5: ~0.251 Public LB (标准 + 镜像图像 5折交叉验证, 640px)
  • RetinaNet (ResNet101): ~0.246 Public LB (标准 + 镜像图像 5折交叉验证, 1024px)
  • RetinaNet (ResNet152): ~0.222 Public LB (标准 + 镜像图像 5折交叉验证, 800px)
  • CenterNet (HourGlass): ~0.196 Public LB (标准 + 镜像图像 5折交叉验证, 512px)

EffDet – 使用了与小麦竞赛相同的代码,但在这个数据集上效果很差。至于 Faster-RCNN,我想我的代码有问题,因为得分非常低。

使用这些模型的 WBF 集成 + 2 个公共模型 (Detectron2 和 Yolo_v5):

我在 Public LB 上达到了 0.300(Private LB 0.289)。然后我与队友合并。他们有更多的 mmdetection 模型以及 Yolo_v5,但我们一起只达到了 0.301。

第二部分:调查

当我们陷入停滞时,我们决定获取每个类别的单独得分,并与我们的 OOF(Out-of-Fold)验证进行比较。我们花了 3 天时间得到了下表:

Class 0: 0.014 (mAP LB: 0.210 Valid: 0.900)
Class 1: 0.009 (mAP LB: 0.135 Valid: 0.335)
Class 2: 0.017 (mAP LB: 0.255 Valid: 0.278)
Class 3: 0.046 (mAP LB: 0.690 Valid: 0.915)
Class 4: 0.019 (mAP LB: 0.285 Valid: 0.438)
Class 5: 0.013 (mAP LB: 0.195 Valid: 0.376)
Class 6: 0.010 (mAP LB: 0.150 Valid: 0.465)
Class 7: 0.003 (mAP LB: 0.045 Valid: 0.400)
Class 8: 0.011 (mAP LB: 0.165 Valid: 0.372)
Class 9: 0.004 (mAP LB: 0.060 Valid: 0.162)
Class 10: 0.027 (mAP LB: 0.405 Valid: 0.548)
Class 11: 0.012 (mAP LB: 0.180 Valid: 0.343)
Class 12: 0.037 (mAP LB: 0.555 Valid: 0.388)
Class 13: 0.009 (mAP LB: 0.135 Valid: