This project contains my code for the CVPR2020 challenge on Semi-Supervised Recognition.
A CVPR202 ML challenge focused on learning from partially labeled data, a form of semi-supervised learning. The dataset is designed to expose some challenges encountered in a realistic setting, such as the fine-grained similarity between classes, significant class imbalance, and domain mismatch between the labeled and unlabeled data.
Primarily, I tackled the problem as transfer learning one and used best practices from 5 different domains to increase performance.
- Transfer Learning (ImageNet --> iNat2020)
- Fine-Grained Classification
- Long Tail Classification
- Semi-supervised learning (A huge unlabelled dataset)
- Learning From out of distribution data
![results](https://private-user-images.githubusercontent.com/30290500/332049069-96de2cc4-5e3e-4ed9-9494-8773a3ba1a42.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxMzY4NjUsIm5iZiI6MTczOTEzNjU2NSwicGF0aCI6Ii8zMDI5MDUwMC8zMzIwNDkwNjktOTZkZTJjYzQtNWUzZS00ZWQ5LTk0OTQtODc3M2EzYmExYTQyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIxMjkyNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlNzhkZThhMDM5NWViNmNhYTEwM2FhODMxOGVmMDQ2YWY1OWFlYjc4YjUxYzk0ZWRiMzdhOWViZTJmMzMwMmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.DcT90G1TtSnMkldA3HFb7bRt-YCPy18K0JghUz7lU9g)
This challenge focuses on Aves (birds) classification, where we provide labeled data of the target classes and unlabeled data from target and non-target classes. The data is obtained from iNaturalist, a community-driven project aimed at collecting biodiversity observations.
The dataset comes with standard training, validation, and test sets. The training set consists of:
- labeled images from 200 species of Aves (birds), where 10% of the images are labeled.
- unlabeled images from the same set of classes as the labeled images (in-class).
- unlabeled images from a different set of classes as the labeled set (out-of-class). These images are from a different set of classes in the Aves taxa. This reflects a common scenario where a coarser taxonomic label of an image can be easily obtained.
The validation and test set contain 10 and 20 images respectively for each of the 200 categories in the labeled set. The distributions of these images are shown in the table below.
Split | Details | Classes | Images |
---|---|---|---|
Train | Labeled | 200 | 3,959 |
Train | Unlabeled, in-class | 200 | 26,640 |
Train | Unlabeled, out-of-class | - | 122,208 |
Val | Labeled | 200 | 2,000 |
Test | Public | 200 | 4,000 |
Test | Private | 200 | 4,000 |
The number of images per class follows a heavy-tailed distribution as shown in the Figure below.