-
Notifications
You must be signed in to change notification settings - Fork 1.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
PMP: Non-rigid mesh registration #8329
base: master
Are you sure you want to change the base?
Conversation
/build:v0 |
There was an error while building the doc:
|
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Outdated
Show resolved
Hide resolved
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Outdated
Show resolved
Hide resolved
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Show resolved
Hide resolved
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Outdated
Show resolved
Hide resolved
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Show resolved
Hide resolved
* @param np2 an optional sequence of \ref bgl_namedparameters "Named Parameters" providing a point_map and normal_map for the `PointRange` | ||
* @param correspondences a vector given matching points between the `source` and the `target` | ||
* | ||
* \cgalNamedParamsBegin |
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.
All these numbers are opaque. What is a reasonable range? Why the defaults? Do they have any dependence on dimensions of the input (average edge length, bbox,....) ?
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/8329/v0/Manual/index.html |
Warning in I-c-337 |
removing warnings (unused variables and signed/unsigned comparison) switching to ARAP formulation also used in Surface deformation
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Show resolved
Hide resolved
removed deprecation warning
Timouts in I-c-345 |
- \f$\mathbf{M}\f$ is the intermediate mesh (initially equal to the source mesh). | ||
- \f$N(\mathbf{v}_i)\f$ denotes the set of vertices adjacent to \f$\mathbf{v}_i\f$. | ||
|
||
The \f$\mathbf{E_{match}}\f$ energy penalizes the distance between point pairs \f$\mathbf{v}_i\f$ and \f$\mathbf{\tilde{v}}_i\f$. The point pairs are restablished after each iteration. In addition, the method can take fixed point pairs of correspondences between source and target. This greatly improves the quality of the registration and is generally required for non-simple meshes. |
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.
non-simple is too vague: what does matter? the number of vertices, the curvature of the mesh, sharp creases, ...?
<center> | ||
<img src="non-rigid_registration.png" style="max-width:80%;"/> | ||
</center> | ||
\cgalFigureCaptionBegin{registration_results} |
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.
it would help understanding to remind that rigidity = w3
...gon_mesh_processing/examples/Polygon_mesh_processing/non_rigid_mesh_registration_example.cpp
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
Show resolved
Hide resolved
* \cgalParamExtra{The geometric traits class must be compatible with the vertex point type.} | ||
* \cgalParamNEnd | ||
* | ||
* \cgalParamNBegin{vertex_point_map} |
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.
don't you also need the vertex normal map for applying the rotation matrix?
* \cgalNamedParamsEnd | ||
* | ||
* \cgalNamedParamsBegin{Named Parameters 2} | ||
* \cgalParamNBegin{vertex_normal_map} |
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.
check the doc here if you want to init the vpm
/*! | ||
* \ingroup PMP_registration_grp | ||
* | ||
* \brief computes non-rigid transformation of a mesh onto a set of oriented points. |
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 it clear that it means points + oriented normals?
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've read it before. But in the CGAL repository the only other occurrence is in the poisson reconstruction documentation.
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/non_rigid_mesh_registration.h
Outdated
Show resolved
Hide resolved
* \cgalParamDefault{`50`} | ||
* \cgalParamNEnd | ||
* | ||
* \cgalParamNBegin{point_to_plane_energy} |
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.
providing a link to the section in the user manual where parameters are explained would be helpful. The range of possible values for w1, w2, w3 is also needed.
5e48786
to
09ca6d5
Compare
warning in Ic-350 |
removed warning
Summary of Changes
WIP
Non-rigid mesh registration based on:
https://vgl.ict.usc.edu/Research/NonRigidRegistration/MODERN%20TECHNIQUES%20AND%20APPLICATIONS%20FOR%20REAL-TIME%20NON-RIGID%20REGISTRATION.pdf
https://www.comp.nus.edu.sg/~lowkl/publications/lowk_point-to-plane_icp_techrep.pdf
TODO:
Release Management