I want to train an image classification model. I have 10 classes with 15 images per class. Since the data is very less, I thought of modeling the problem as a few-shot image classification task and try experimenting with networks such as a ProtoNet.
The problem is that in few-shot learning, the dataset is split in a very different way compared to how we normally do in supervised learning. In few-shot learning, data is split based on classes such that at test time the model sees entirely new classes. But, for my use case, it is fine if the model has already seen all the classes at training time. I just require it to classify an unseen image at test time. In production, the model will receive one image at a time and it should classify it with low latency.
How can I split the data and what models can I try out so that we get good test-time accuracy? I am also open to trying out other paradigms aside from few-shot learning if there is some way to get good accuracy on this small dataset.
Additional Notes
- Right now I have 10 classes, but this can increase in the future (can go up to 100 classes), but the number of images per class will still be less (around 10 to 15 images).
- I am very new to few-shot learning, so please excuse me if I am misunderstanding something.
- I have already checked out this answer.