1
$\begingroup$

I am looking for advice or suggestion. I have photos like these: photo_1 and photo_2 and many more similar to that. The average shape of these photos is about 160 x 100. What we are doing is we are trying to find wheather or not person in a photo is wearing safety vest and helmet (if person is wearing both it is 1, if something is missing or both are missing it is 0). Training data consists of about 5k almost equally distributed image sets. I have tried to use augmentation techniques (flipping, adding noise, brighness correction) but results didn't improove. I tried to train on many pretrained popular models: resnet101, mobilenet_v2, efficientneyb3, efficientneyb0, DenseNet121, InceptionResNetV2, InceptionV3, ResNet152V2, ResNet50V2, but results are not eyepleasing. I have tried different input sizes ranging from 224x224 to 112x112 but result didn't improve as much as I would have liked it to be. And the weird thing is that the image shape does not correlate to wheather or not there are more wrong predictions using bigger or smaller images. As a side not I would lik to ask couple questions:

  1. Should I use my own written small net?
  2. Are the models that I use too big for this problem?

Any advice will be appreciated.

$\endgroup$
2
  • $\begingroup$ What is happening with your training and validation accuracy? Is training accuracy high but validation low (suggestive of overfitting)? Both low (possibly underfitting or a poor model)? $\endgroup$
    – htl
    Commented Mar 9, 2021 at 15:18
  • $\begingroup$ It is overfitting by a bit. $\endgroup$ Commented Mar 9, 2021 at 17:45

2 Answers 2

1
$\begingroup$

Yes, you may use the small model you have but you need to tune it.

The models you have used are not too big if any overfitting happens you can just use dropout to alleviate that.

You need to improve the quality of your images. One way is to reconstruct them using autoencoders or GANs (Super-resolution GANs). Then, you can classify them.

$\endgroup$
1
$\begingroup$

I would first suggest to cluster your data using T-SNE visualisation technique. Try to see if different classes are separable. If not, try to perform different image enhancement filters (e.g. white balance, sharpening) and see how does the separation change. This is how you design your image preprocessing pipeline.

Since your dataset is relatively small, it is indeed a good idea to use a pretrained network (e.g. MobileNet V3) and perform transfer learning (by retraining only the final layer).

Finally, for your task image size might be not crucial indeed.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .