Answers.Body: <p>Yes, you may use the small model you have but you need to tune it.</p>
  <p>The models you have used are not too big if any overfitting happens you can just use dropout to alleviate that.</p>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-03-09T15:14:36.737Z
Answers.LastActivityDate: 2021-03-09T15:14:36.737Z
Answers.UserDisplayName: Abhishek Verma
Answers.Body: <p>I would first suggest to cluster your data using <a href="https://en.wikipedia.org/wiki/T-distributed_stochastic_neighbor_embedding" rel="nofollow noreferrer">T-SNE</a> 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.</p>
  <p>Since your dataset is relatively small, it is indeed a good idea to use a pretrained network (e.g. MobileNet V3) and perform <a href="https://en.wikipedia.org/wiki/Transfer_learning" rel="nofollow noreferrer">transfer learning</a> (by retraining <strong>only</strong> the final layer).</p>
  <p>Finally, for your task image size might be not crucial indeed.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-03-11T11:41:16.073Z
Answers.LastActivityDate: 2021-03-11T11:41:16.073Z
Answers.UserDisplayName: penkovsky
Body: <p>I am looking for advice or suggestion.
  I have photos like these: <a href="https://i.sstatic.net/or303.jpg" rel="nofollow noreferrer">photo_1</a> and <a href="https://i.sstatic.net/ucbsj.jpg" rel="nofollow noreferrer">photo_2</a> 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:</p>
  <ol>
  <li>Should I use my own written small net?</li>
  <li>Are the models that I use too big for this problem?</li>
  </ol>
  <p>Any advice will be appreciated.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-03-09T15:18:07.290Z
Comments.Text: 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)?
Comments.UserDisplayName: htl
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-03-09T17:45:35.077Z
Comments.Text: It is overfitting by a bit.
Comments.UserDisplayName: Artūras Drūteika
Tags: <deep-learning><computer-vision><classification>
Title: What model structure I should use to train on low res and blurry images?
UserDisplayName: Artūras Drūteika
ThreadText: # What model structure I should use to train on low res and blurry images?
  
  (Asked by: username_0 on 2021-03-09)
  
  I am looking for advice or suggestion.
  I have photos like these: [photo\_1](https://i.sstatic.net/or303.jpg) and [photo\_2](https://i.sstatic.net/ucbsj.jpg) 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.
  
  **Tags:** deep-learning, computer-vision, classification
  
  > **Comments:**
  > **username_1**: 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)?  
  > **username_0**: It is overfitting by a bit.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2021-03-09. Score: 1
  
  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.
  
  
  ---
  
  ### Answer by username_3 on 2021-03-11. Score: 1
  
  I would first suggest to cluster your data using [T-SNE](https://en.wikipedia.org/wiki/T-distributed_stochastic_neighbor_embedding) 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](https://en.wikipedia.org/wiki/Transfer_learning) (by retraining **only** the final layer).
  
  Finally, for your task image size might be not crucial indeed.
  
  
  ---
  
  