-
Notifications
You must be signed in to change notification settings - Fork 212
Same dataset, 100% for "single object" but 0% for "multi object" #109
Description
Hello everyone,
Thank you @btekin for sharing with us this amazing work. I have succeeded in implementing your paper with single object for my robotic manipulation task. However, I have difficulties with multiple object pose estimation.
I would like to tell you what I am suspecting in and please let me know if there is any other changes for the multi object besides the ones I will mention below.
- The ground truth bounding box is different than that of single object. It will be shown below, please let me know if thats true and how it should be fixed?
- In the main cfg file (as of occlusion.data), I keeping the directories of one object with its labels and then relying on the get_add_objs(--) function for calling the other object and training on its images as well. Is it right?
"More clarification":
For simplicity, I have generated a small dataset of two objects at the same scene with one pose only and for each object dataset, I annontated its respective object in the scene. After training for several epochs, I am showing the output from the validation set where its converge well.
This model is trained for detecting and estimating the pose of a cat.

And this one is trained for detecting and estimating the pose of a cam.

Now, I am using Python 3.6.8, and PyTorch 1.0.1.
I have update the following lines in these files according to #30 and btekin/singleshotpose
- train_multi.py (configs)
- region_multi.py
- darknet_multi.py
- dataset_multi.py
- image_multi.py
changed:
...singleshotpose/multi_obj_pose_estimation/image_multi.py
Lines 24 to 27 in 766d5ec
if objname == 'ape': add_objs = ['can', 'cat', 'duck', 'glue', 'holepuncher', 'iron', 'phone'] # eggbox elif objname == 'benchvise': add_objs = ['ape', 'can', 'cat', 'driller', 'duck', 'glue', 'holepuncher']
to:
if objname == 'cat':
add_objs = ['cam']
elif objname == 'cam':
add_objs = ['cat']
Regarding cfg files, I have main one same as occlusion.data but for two objects. And two individual cfg as ape.data.
The result of the model is:
Testing "cat"

Testing "cam"
