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?

  • $\begingroup$ In general, you should choose the photo as close to your test case as possible. Take a look at Machine Learning Yearning 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. $\endgroup$
    – CuCaRot
    Sep 29, 2020 at 9:20

1 Answer 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.


Would you agree, also in the case of symbols?

  • 1
    $\begingroup$ 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. $\endgroup$
    – nbro
    Sep 28, 2020 at 22:57

You must log in to answer this question.

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