My scripts for the SIIM-ISIC Melanoma Classification challenge 2020. We achieved 259th position on the leaderboard and a bronze medal. Thanks a lot to Mohammad Innat and Uday Kamal for their contributions. Please check out Innat's elaborate well-written solution here.
- Skin lesion classification with ensemble of squeeze-and-excitation networks and semi-supervised learning
- Self-training with Noisy Student improves ImageNet classification
-
☑ Meta Features
-
☑ Balanced Sampler
-
☑ Mixed Precision
-
☑ Gradient Accumulation
-
☑ Model freeze-unfreeze
-
☑ Optimum Learning Rate Finder
-
☑ ArcFace Loss
-
☑ TTA
- Margin Focal Loss
- Meta Features
- 1st place solution in ISIC 2019 challenge (w/code)
- APTOS Gold Medal Solutions: Although data type is different but it might be helpful.
- Rank then Blend
- Melanoma Recognition via Visual Attention
- Deep Metric Learning Solution For MVTec Anomaly Detection Dataset
- Ugly Duckling Concept
- Public Leaderboard Probing
- Specialized Rank Loss for Maximizing ROC_AUC
- Humpback Whale Classification 1st place solution
- Attention model for feature extraction: Scoring
0.9287
with Resnet only.
- Run
git clone https://github.com/tahsin314/Melanoma_Classification_2020
- Download this dataset and extract the zip file.
- In the
config.py
file change thedata_dir
variable to your data directory name. - Run
conda env create -f environment.yml
- Activate the newly created conda environment.
- Download
Hair Images
from here and put it into theaugmentations/images/
directory. - Run
train.py
. Change parameters according to your preferences from theconfig.py
file before training.
EfficientNet's are designed to take in to account input image dimensions.
So if you want to squeeze every last droplet from your model make sure to use same image resolutions as described below:
Efficientnet-B0 : 224
Efficientnet-B1 : 240
Efficientnet-B2 : 260
Efficientnet-B3 : 300
Efficientnet-B4 : 380
Efficientnet-B5 : 456
Efficientnet-B6 : 528
Efficientnet-B7 : 600
- Focal loss
- Meta Data (I removed it in the final version to avoid overfitting)
- Hair Augmentation
- EfficientNet
- Resnest (Converges faster than EfficientNet)
- Higher Image Dimensions
- Progressive Resizing (It might have improved my score but I'm not so sure.)
- Class Balanced Training
- Visual Attention
- TTA (ShiftScaleRotate, RandomSizedCrop, HueSaturationValue, HorizontalFlip, VerticalFlip)
- Metric Loss (Converges Faster but unstable)
- Microscope Augmentation
- EfficientNet with Arcface
- Freeze-Unfreeze Technique
- Cutmix and Mixup (Does not improve score but helps prevent overfitting)
My final model was a combination of Fast Resnest
embedded with visual attention combined with Efficientnet-B4
.