0
$\begingroup$

I tried to train Faster R-CNN to detect multiple instances of a single class (eg. pomegranate on a pomegranate tree) but the training data consisted of 200 images where each image had only one object labeled. The model is detecting an object but with very low probability. Is the model trying to find a single instance of the class but getting confused?

model name: Faster RCNN inception v2enter image description here

Why does the model detect objects more efficiently when zoomed in closer?

enter image description here

Is there something wrong in the training process or something else?

$\endgroup$
0
$\begingroup$

I believe that the resulting accuracy of your model is due to a mix of reasons. Firstly, the data-set is really small, so you cannot expect to have an efficient model just by using your 200 images.

Proposed Solution #1: Data Augmentation. Enlarge your data-set by processing your images, crop, rotate, etc Examples with code. As for labeling the bounding boxes, you could do it manually or by creating functions to transform the co-ordinates based on the image processing method.

Proposed Solution #2: Also, try a different approach. I think that a version of the Yolo algorithm would be more appropriate for multiple instance detection YOLO-read_the_docs_link because R-CNN's search algorithm is fixed, no learning happens during selection, which might lead to bad region proposals resulting to fewer detection and low probability outputs.

Why does the model detect objects more efficiently when zoomed in closer?

The obvious reason is that it is easier for your model to detect them, given the fact that the data-set is small. Also, it depends on the labeling, if your ground truth contains only large bounding boxes, then it would detect bigger pomegranates more efficiently. Adding cropped instances of your data-set to the train set might help with this issue too.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Fixed the problem! I had to train on multiple object on the same image. I think training the model using one object per image trains it to detect only one object per image. so it gets confused when i put and image with multiple objects $\endgroup$ – Amarnath Jul 25 '19 at 6:34
  • $\begingroup$ Check this repository for state-of-the-art image augmentations. You could easily make 100x more data. $\endgroup$ – Piotr Rarus - Reinstate Monica Dec 17 '19 at 11:02

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.