Answers.Body: <p>Google recommandation seems to answer this:</p>
  <blockquote>
  <p>The training data should be as close as possible to the data on which
  predictions are to be made.</p>
  <p>For example, if your use case involves blurry and low-resolution
  images (such as from a security camera), your training data should be
  composed of blurry, low-resolution images. In general, you should also
  consider providing multiple angles, resolutions, and backgrounds for
  your training images.</p>
  </blockquote>
  <p><a href="https://cloud.google.com/vision/automl/object-detection/docs/prepare" rel="nofollow noreferrer">https://cloud.google.com/vision/automl/object-detection/docs/prepare</a></p>
  <p>Would you agree, also in the case of symbols?</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-09-28T22:57:28.590Z
Answers.Text: If you know how your test images are, there is no point in training your neural network on images with different settings (e.g. different dimensions or resolutions). Your ultimate goal is to perform well on the test. Of course, if the test set  (or distribution) was to change, then you should also take this into account. The part "you should also consider providing multiple angles, resolutions, and backgrounds for your training images." is about _data augmentation_, which can help your neural network to learn more "robust" representations.
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-09-28T12:24:20.907Z
Answers.LastActivityDate: 2020-09-28T12:24:20.907Z
Answers.UserDisplayName: Vale
Body: <p>I am new to the field of AI but due to the high level of abstraction that comes with services such as Google VisionAI I got motivated to write an application that detects symbols in photos based on tensorflow.js and a custom model trained in Google Vision AI.</p>
  <p>My App is about identifying symbols in photos, very similar to traffic signs or logo detection. Now I wonder if</p>
  <ol>
  <li>I should train the model based on real, distorted and complex photos that contain those symbols and lots of background noise</li>
  <li>if it was enough to train the model based on cropped, clean symbols</li>
  <li>A hybrid of both</li>
  </ol>
  <p>I started with option a and it works fine, however it was a lot of work to create the training dataset. Does the model need the distorted background to work?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-09-29T09:20:52.667Z
Comments.Text: In general, you should choose the photo as close to your test case as possible. Take a look at [Machine Learning Yearning](https://www.dbooks.org/machine-learning-yearning-1501/) of Andrew Ng, in part 6, he described a scenario that the performance in dev set is really good but very poor when implementing in real life (test set). My advice is to choose your data carefully, make the variance enough to handle all situations and the distribution is balanced to prevent overfitting to one class only.
Comments.UserDisplayName: CuCaRot
Tags: <tensorflow><object-detection>
Title: Should I prefer cropped images or realistic images for object detection?
UserDisplayName: Vale
ThreadText: # Should I prefer cropped images or realistic images for object detection?
  
  (Asked by: username_0 on 2020-09-28)
  
  I am new to the field of AI but due to the high level of abstraction that comes with services such as Google VisionAI I got motivated to write an application that detects symbols in photos based on tensorflow.js and a custom model trained in Google Vision AI.
  
  My App is about identifying symbols in photos, very similar to traffic signs or logo detection. Now I wonder if
  
  1. I should train the model based on real, distorted and complex photos that contain those symbols and lots of background noise
  2. if it was enough to train the model based on cropped, clean symbols
  3. A hybrid of both
  
  I started with option a and it works fine, however it was a lot of work to create the training dataset. Does the model need the distorted background to work?
  
  **Tags:** tensorflow, object-detection
  > **Comments:**
  > **username_1**: In general, you should choose the photo as close to your test case as possible. Take a look at [Machine Learning Yearning](https://www.dbooks.org/machine-learning-yearning-1501/) of Andrew Ng, in part 6, he described a scenario that the performance in dev set is really good but very poor when implementing in real life (test set). My advice is to choose your data carefully, make the variance enough to handle all situations and the distribution is balanced to prevent overfitting to one class only.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2020-09-28. Score: 1
  
  Google recommandation seems to answer this:
  
  > The training data should be as close as possible to the data on which
  > predictions are to be made.
  >
  > For example, if your use case involves blurry and low-resolution
  > images (such as from a security camera), your training data should be
  > composed of blurry, low-resolution images. In general, you should also
  > consider providing multiple angles, resolutions, and backgrounds for
  > your training images.
  
  <https://cloud.google.com/vision/automl/object-detection/docs/prepare>
  
  Would you agree, also in the case of symbols?
  
  > **Comments:**
  > **username_2**: If you know how your test images are, there is no point in training your neural network on images with different settings (e.g. different dimensions or resolutions). Your ultimate goal is to perform well on the test. Of course, if the test set  (or distribution) was to change, then you should also take this into account. The part "you should also consider providing multiple angles, resolutions, and backgrounds for your training images." is about _data augmentation_, which can help your neural network to learn more "robust" representations.  
  
  ---
  
  