346. Severstal; Steel Defect Detection | severstal-steel-defect-detection
虽迟但到,我想分享一下我的解决方案简报。
我的方案只是16个模型的组合:
我所有的模型都是在随机抽取的80%训练数据上训练的,使用了Catalyst和Albumentations的强数据增强(这是我第一次认真使用这两个库,所以我尝试了很多不同的增强方式,似乎产生了不错的结果):
A.VerticalFlip(p=0.5),
A.HorizontalFlip(p=0.5),
A.ShiftScaleRotate(rotate_limit=15,shift_limit = 0.01, p=0.3), A.GridDistortion(p=0.2)A.OpticalDistortion(p=0.2),
A.Blur(blur_limit = 1, p=0.2),
A.CLAHE(clip_limit = 2, tile_grid_size = (16,16), p=0.2),
A.HueSaturationValue(p=0.1),
A.JpegCompression(quality_lower = 50, p=0.2), A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.2), A.RandomGamma(p=0.2)
+ A.RandomSizedCrop 或 A.Resize
对于分割模型,我使用了:
对于分类模型 - 使用BCE损失。
我对所有模型进行了同时推理:我读取小批量的测试图像,应用不同的变换集,并计算所有模型的预测结果。这意味着我每张图像只读取一次,这使得推理速度相当快。
不同分类和分割模型的预测结果被平均化。更复杂的融合方案反而降低了我的分数。
我选择的第二个方案对不同类别有不同的阈值,并且Public LB分数更好——但结果发现它对Public LB过拟合了。