I'm working a model which detect different products in supermarket shelf. In the training data, there are a lot of objects with similar shape placed very close to or stacked to each others.(eg: milks with different brands are stacked, placed on the same shelf, the model should be able to detect milk1, milk2). What is the best approach to this problem. I've tried to train a Faster RCNN, but the RPN isn't working well. I've also tried feature matching, but it cannot detect partially visible objects. Any help will be appreciated!

enter image description here

The training images look like this

Link to FRCNN result when detect 2 type of milk and 1 type of yogurt

faster r-cnn detection result

  • $\begingroup$ The text in images is clear? Can't you extract some data from them? $\endgroup$ Mar 14, 2019 at 9:28
  • $\begingroup$ I just added some training sample. Would it work better if the input images in higher resolution? $\endgroup$ Mar 14, 2019 at 9:33
  • $\begingroup$ Another question, Is the position of the camera is same for objects with same shape and different size? $\endgroup$ Mar 14, 2019 at 9:45
  • $\begingroup$ yes, all object are observed in the same distance $\endgroup$ Mar 14, 2019 at 9:48
  • $\begingroup$ @alirezazolanvari I just added the link to detection result using faster r-cnn $\endgroup$ Mar 14, 2019 at 9:54

1 Answer 1


If all objects are observed in the same distance and almost same angle, the relative height and width can be helpful features for recognizing objects with similar shape and different size. By this features different methods like GAN algorithms such as CoGAN and BiGAN may help you in this problem.

It should be noticed that for recognizing the size of the objects the features play more important role than the algorithms.

  • $\begingroup$ I've always thought that GAN is used for generation. Do you have any link about applying GAN for object detection? I can't seem to find any. $\endgroup$ Mar 14, 2019 at 12:19
  • $\begingroup$ What do you think if I used relative width and height as output for RPN instead of bounding box coordinates $\endgroup$ Mar 14, 2019 at 12:22
  • $\begingroup$ When you can generate an entity well, obviously you can detect it accurately. In well-trained GAN networks, the discriminative network is powerful enough for recognizing generated entities. So, after you GAN had been trained, you can use the trained discriminative network for solving your problem. $\endgroup$ Mar 14, 2019 at 12:32
  • $\begingroup$ If I understand correctly, you suggest that discriminator can be used to classify objects in my problem for better accuracy. What do you think I should do to improve my RPN accuracy? $\endgroup$ Mar 14, 2019 at 12:55
  • $\begingroup$ I think giving the presented features (height and width) beside the images can improve the accuracy $\endgroup$ Mar 14, 2019 at 13:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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