2
votes

Am trying tensorflow object detection on a custom dataset, for some reason my model is not learning anything here is a list of what i tried

  1. i tried training pet data set from Oxford-IIIT Pet Dataset as in here. It worked as expected

  2. Now i followed this tutorial to train my own dataset ( for testing am just using images of monkeys)

but unfortunately my model is not learning anythingscreen-shot of tensorboard

Info : am training on google could platform as in this tutorial. My configuration pipeline config, my pbtxt.

I created annotations using Labelimg

EDIT

No actual detection is seen even after 6hrs of training in google cloud platform val and no increase in Precision is seen.

EDIT 2

link to dataset. I have not used all the images in this dataset as some of them were irrelevant, I have used only the images which i have annotated.

3
you model is learning properly. Only the learning rate is constant - Ishant Mrinal
@IshantMrinal i have updated my question, what might be the reason for not detecting any monkeys? - Shiva Kishore
check your nms_threshold . not sure exactly what's wrong. - Ishant Mrinal
Would you be willing to share your dataset? It's possible something is formatted incorrectly. Unrelated, but I also noticed your num_classes argument is set to 37. It can probably be set to 1 for the monkey's dataset. - Derek Chow
@DerekChow I have added the dataset link to the question, Thanks in advance - Shiva Kishore

3 Answers

2
votes

One issue could be that in the config file, the number of classes is 37, but for your dataset you only have a single class. Try to change the num_classes in the config file to 1 and see what happens.

1
votes

I am having the same issue. I tried with TensorBox and I got some good results with learning. Now I can not do with Tensorflow. enter image description here

0
votes

I was having the same problem with my own training dataset.

  • Loss was converging to near 0 indicating that the network was learning
  • The evaluation set would produce very few or absolutely no detections

My case was a little different from @ShivaKishore in that I had many classes in my dataset. After a few attempts at debugging one eventually produced detections. I reduced my number of classes to a single class. This is not to say that you can only identify a single class but rather it rooted out a bug in my tfrecord generation. I'm still trying to figure out what that bug was. I know that I have many labels that are not found in my "debug" version of the dataset, which perhaps causes a problem?

I think that my problem and @ShivaKishore's problem are a bit different but have the same root, the network and the class labels do not jive. @ShivaKishore did you ever fix the num_classes issue that others have pointed out? I'm optimistic that will fix your problem.