I am developing a binary image classifier, and my dataset size is of 90 images. From a theoretical point of view, are they enough for fine-tuning a pre-traiend classifier? I plan to test the models listed here.
1 Answers
As a rule of thumb, a dataset in computer vision is considered small when it contains less than 1000 images per class. This holds also for finetuning pretrained models.
This doesn't mean you won't get better results with less than that, but in your case 90 is truly a small amount that will almost certainly lead to overfit those images without any good generalization.
If the classes you want to classify are not part of any of the main "big" datasets like ImageNet, then unfortunately you'll have to sit down, prepare some coffee and start scraping and annotating images as much as you can.
If instead the classes you want to classify are a subset of some already existing dataset, then your problem becomes more of a transfer learning problem, in which case it will be more useful for you to start investigating preprocessing step that will match your images with those of ImageNet (or whatever dataset was used to train the pretrained weights you're planning to use. Some annotation work will still be beneficial though, since 90 images are very few even just for evaluation, i.e. you'll might find nice tricks like normalization and histogram matching that boost the performance of a pretrained model on your 90 images just to see those step brutally fail in a real production environment.

- 5,298
- 1
- 14
- 25
-
Thanks for your reply! Do you have any reference for the 1000 images per class rule-of-thumb? – randomal Aug 02 '22 at 02:36