I need to design a marker image that should be detected by the neural network. I am aware that it is not a complex task just to detect an image and this can be done with OpenCV alone. However the detector but this should also work also in pure visibility conditions (low light, out of focus, worn out/partially damaged, makes tiny part of the image only, etc). The background around the marker image is just the real world, difficult to predict what it could be there.

What kind of images are the most easy for neural networks to work with? Most important

  • Should it have sharp contrast like letters or road signs or color gradients may work better?
  • Would repeating pattern (like chevron frame around) as part of the object help or better to have every piece of the tag unique?

I know that neural networks are mostly used to the "real world" images like humans and horses, but I am not sure if they are better objects or just it is more impressive to get them recognized.

From the other side, objects that humans make on purpose just to recognize them (like road signs) mostly use sharp contrast. I do not remember any road or other sign with any kind of color gradient but repeating pattern like chevron frame around is sometimes used. From the other side, a road sigh with color gradients is more complex to manufacture, and maybe the technology simply did not exist when they were first invented.

Is there any consensus which kind of objects are the most easy to recognize by neural networks under "noisy input" conditions?

  • 1
    $\begingroup$ I have no idea if this has been researched, but some recommendations that come to mind (that maybe you already know), you’ll want to choose your training set carefully. If the images are too clean during training, the network may be less likely to correctly classify noisy images. You should probably use a committee of neural networks if possible. Also, you should think about the relative importance of false positives vs. false negatives when creating your loss function. $\endgroup$
    – Joe
    Jun 12 '20 at 23:00
  • $\begingroup$ Noisy images for training, great idea, thanks. $\endgroup$ Jun 13 '20 at 7:27
  • $\begingroup$ The system is intended to work under conditions too bad for a barcode to be readable. Think you do not see even barcode itself well, leave alone how many bars there are there. $\endgroup$ Jun 13 '20 at 7:29
  • $\begingroup$ Well if barcodes don't appeal investigate other kinds of fiducial marker. $\endgroup$ Jun 13 '20 at 9:27
  • $\begingroup$ Some noisy images. Ideally you want the distribution of your training data (and test set) to be identical to the distribution that you want your network to perform well on. If you just use noisy images, it may actually perform well on noisy images, but then shock you by not detecting a crystal clear image. If your model is only meant to catch markers missed by another scanner, maybe that's ok. $\endgroup$
    – Joe
    Jun 13 '20 at 12:54

You are describing the field of robust object detection.

It depends greatly on the specifics of the data and model. Similar to person looking for their keys at night only under a street light, most robust object detection research is related to autonomous driving.

The simplest answer might be something out of sample from the training data. If the marker object is 100% synthetic, a model would quickly learn it since there would be no confusion with other inputs. Again, the definition of 100% synthetic would depend on the training set.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.