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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions