Skip to content
This repository was archived by the owner on Jun 13, 2024. It is now read-only.
This repository was archived by the owner on Jun 13, 2024. It is now read-only.

Same dataset, 100% for "single object" but 0% for "multi object" #109

@MohamadJaber1

Description

@MohamadJaber1

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.
1908_Cat

And this one is trained for detecting and estimating the pose of a cam.
1908_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:
    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"
Wrong_Cat
Testing "cam"
Wrong_Cam

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions