Comments (10)
Hi,this piece of code comes from the reference repo in README.There,line[3] in kitti label file is the observation angle of object.Refence to https://blog.csdn.net/sum_nap/article/details/84858911, i think the gap between theta_loc and alpha is pi/2.This is meaning of the first line in the code.The rest, I guess, is just to make sure the alpha is between 0 and pi*2.
from 3d_detection.
Thanks for your comment, but still it doesn't make any sense to get the correct local orientation from that way. I consider we should add 3/(2*np.pi) to alpha to get the local orientation.
How do you think? Please help me understand..
from 3d_detection.
Sorry,I just can't grasp your idea of adding 3/(2*np.pi).Can you explain more detailed about that?Thanks
from 3d_detection.
Um.. it's very difficult to explain what my idea is.. it would be better if I could show you a drawing by uploading a file.
Let me try describing it in words.
As long as I know, alpha is the angle between "the direction of an object" and "the perpendicular direction of the ray from the object's center". So, the local angle can be made as 270[deg] + alpha[deg].
It can also be expressed as 360[deg] - (ray angle[deg] - rotation_y[deg]) , which is from here(https://github.com/shashwat14/Multibin/blob/master/data_prep.py), in line 49.
I'm not very sure though if I'm understanding it in a right way.
If you're thinking that your code is correct, can you please elaborate it? It's actually widely used in other similar projects.
from 3d_detection.
I just drew it. Please correct me if I'm wrong with it.
from 3d_detection.
You are right!I have rethinked just now,and find the origin code has mistaked theta local by refering to the negative direction of ray from the object's center.So it is 180(deg) shifted to your answer.In the detection.py,I manually fixed it by pi/2-theta_loc.I think there will be no need to fix in the detection.py,if I fix the compution of theta_loc.Thank you very much for your advice,and it is really helpful to the project!I will fix it soon.
from 3d_detection.
Thanks for your quick response!
Of course, I checked the kitti's README.txt and I also misunderstood like what you said. But I realized that the saying "facing along the X-axis" means not looking at the x-axis, but it's going along the x-axis(parallel) . Think about the picture you uploaded, you will see that alpha is going to zero when the direction of the object become parallel with x-axis on the z-axis.
from 3d_detection.
Thanks for your help too! It's a very helpful project.
One thing now I'm concerning is, did the original code really mean it to get a local orientation?
In the original code, the new_alpha goes to the function 'compute_anchor()', and the anchors are returned.
As I'm not exactly sure of what the function does, I'm getting more confused now. Even other people who continue to implement the original code such as smallcorgi, scutan90 and etc, they all use the same code.
Are you certain that the original code really made a mistake?
Thanks for your help! Let's figure it out together.
from 3d_detection.
Hi,i have made some updates in this weekend.
About the new_alpha,i find that we should compute new_alpha by the equation -new_alpha+3*pi/2.There, using '-new_alpha' instead of 'new_alpha' because the kitti's alpha is the angle from" the direction of an object" to "the perpendicular direction of the ray from the object's center", whereas the local orientation equals to the angle from "the perpendicular direction of the ray from the object's center" to " the direction of an object" added by the angle from "the direction of the ray from the object's center" to "the perpendicular direction of the ray from the object's center" (270 deg).
The function 'compute_anchor()' split 360 deg to several small bins, and compute which bins the the local orientation angle is to fall into according the overlap rate.I'm not sure that the original code really made a mistake about new alpha, but according to the paper it is reasonable to use the real as the input to the function 'compute_anchor()'.
According to the fix of new_alpha, i have trained another model which has been updated in the README.Take it easy to download the new one.
from 3d_detection.
Hello, I am also working on this issue in my PyTorch implementation. I am pretty new to machine learning. If alpha and theta_l are just 270(deg) apart, why not train the net to just output alpha? Is there a reason with the multibin approach where it wouldn't work as well? The reason I say this is that in my algorithm to calculate the 3D constraints I use alpha to narrow down the possibilities, so I figured I should just try and regress alpha directly instead of theta_l. Is there any reason this wouldn't work as well? Thanks
from 3d_detection.
Related Issues (17)
- Does there any updates or results? HOT 1
- compile environment HOT 1
- Much larger distance Error compared to paper
- detection.py No loop matching HOT 2
- Regarding the usage of calib.txt file data
- version of python and libraries
- Pretrained Mode HOT 2
- How long does training take?
- Not able to detect new images
- Not able to split the kitti dataset HOT 4
- thanks for your excellent job HOT 1
- What's the meaning of the file voc_dims.txt? HOT 2
- There is a error when i try the project HOT 7
- where can I get the test dataset HOT 7
- Please check the way computing anchors
- Can you explain about post_processing.py ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 3d_detection.