-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SamplePointsUniformly, Chamfer Distance, Hausdorff Distance and F-Score #7056
Conversation
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
initializer_list -> vector TODO: Check F-Score values are correct
b8651e9
to
312476a
Compare
Remove 0.5 from Chamfer Add reference and equations to docs. rename compute_distance -> compute_metrics Return Tensor instead of vector
cpp/open3d/t/geometry/PointCloud.cpp
Outdated
} | ||
|
||
std::tie(indices12, distance12) = tree2.KnnSearch(points1, 1); | ||
std::tie(indices21, distance21) = tree2.KnnSearch(points2, 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these are the squared distances
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops, fixed.
namespace t { | ||
namespace geometry { | ||
|
||
core::Tensor ComputeMetricsCommon(core::Tensor distance12, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to define here that distancexx is the Euclidean distance
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment added.
gcc compiler warning as error (doxygen math) fix
8e19321
to
9f60d3d
Compare
# (1, 3, 3, 1) vertices are shifted by (0, 0.1, 0.1*sqrt(2), 0.1*sqrt(3)) | ||
# respectively | ||
metric_params = MetricParameters( | ||
fscore_radius=o3d.utility.FloatVector((0.01, 0.11, 0.15, 0.18))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need o3d.utility.FloatVector or can we pass a python list/tuple?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's supposed to work automatically for STL containers and pybind11, but it doesn't work in Open3D for std::vector<T>
due to some customizations. Going through a deque
enabled it. :-(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the problem with std::vector related to Eigen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably. We do some custom bindings for Eigen matrices / vectors as well as std::vector and std::vector That's likely disabling pybind11 default bindings. We should switch to pybind11's default bindings. [I don't know the original reason for customization, or if it's still needed.]
Type
Motivation and Context
Checklist:
python util/check_style.py --apply
to apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
Tensor API SamplePointsUniformly for TriangleMesh:
F-Score:
Chamfer Distance, Hausdorff distance