Giter VIP home page Giter VIP logo

Comments (7)

ybkscht avatar ybkscht commented on September 6, 2024

Hi rush,

The jump in the classification and regression loss is strange but the mAP is still near 1.0, so the 2D detection task is still doing well and I think this shouldn't be the main problem here (classification and regression losses are from the 2D detection part and the mAP is a metric for it).
The transformation loss (which is for the 6D pose estimation part) instead is decreasing but when looking at the 6D pose estimation metrics like ADD, they start to increase very slowly.
From my experience the absolute value of the transformation loss should be much higher (factor 100x - 1000x) and I could imagine that your dataset unit is different from Linemod which uses mm.
If this is the case, you need to change the translation_scale_norm parameter in the generator according to the unit of your dataset and probably the transformation loss weight (in train.py) from 0.02 to something greater because the transformation loss becomes otherwise too small relative to the other losses.
EfficientPose works internally with meter but the output is scaled with the translation_scale_norm parameter. For example when using Linemod which is in mm, the translation_scale_norm parameter is set to 1000 (which is also the default).
But that's just a guess and hard to say if this is really the problem without more information about your dataset and training parameters.

Did you use the debug.py script to check wheter the images and annotations of your custom dataset are loaded as expected? This also can help a lot in such scenarios.

I hope this helps you.

Sincerely,
Yannick

from efficientpose.

rush9838465 avatar rush9838465 commented on September 6, 2024

from efficientpose.

ghoshaw avatar ghoshaw commented on September 6, 2024

Hi, I also train my own data, but the loss seems strange either.
image
image
image
image
image
image
image
BTW, my data is in meter, so I set the translation_scale_norm to 1, and the loss weight is still 0.02, and I find that the scale of loss between the 2D detect and pose estimating is not that large. I also use the debug.py to show the data, the result seems ok, except for that the 3D points order I used is different from the origin code. I random set the 3D points order, but I think this should not be an issue, because I find that the result saved in training process can plot the point correctly, it is just the pose estimate is not accurate. So any advice for my training? Thanks a lot!

from efficientpose.

rush9838465 avatar rush9838465 commented on September 6, 2024

@ghoshaw My previous problem was caused by extrinsic matrix error. If debug.py shows that your 3D bounding box is normal, it indicates that your extrinsic matrix should have no problem. But I changed 0.02 to 5.

from efficientpose.

ghoshaw avatar ghoshaw commented on September 6, 2024

@rush9838465 , in your case, the loss of transformation is smaller than the 2d detect loss, but in my case, my transformation loss is larger than 2d detect loss, So I think I should change 0.02 t0 0.002?

from efficientpose.

rush9838465 avatar rush9838465 commented on September 6, 2024

@ghoshaw I think it can be left unchanged, your loss is pretty low. Have you tried inference?

from efficientpose.

ghoshaw avatar ghoshaw commented on September 6, 2024

I did not try inference, but the image saved in training process is not that good.
And I just find a bug, I accidentally freeze the backbone, and I will try to do a new experiment. Thanks for your answer!

from efficientpose.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.