Skip to content
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

Non-rigid Iterative Closest Point (N-ICP) #7674

Closed
daniel-unyi-42 opened this issue Aug 28, 2023 · 0 comments
Closed

Non-rigid Iterative Closest Point (N-ICP) #7674

daniel-unyi-42 opened this issue Aug 28, 2023 · 0 comments

Comments

@daniel-unyi-42
Copy link
Member

daniel-unyi-42 commented Aug 28, 2023

Dániel Unyi GSoC 2023 Submission

Project summary:

The package Non-rigid Iterative Closest Point (N-ICP) implements an algorithm which finds a sequence of transformations that aligns a source surface to a target surface. The algorithm currently minimizes four energy terms: point-to-point matching, point-to-plane matching, global rigidity, and local rigidity, which are all quadratic and therefore can be minimized by solving a system of linear equations. For further reference, see paper 1 and paper 2. The implementation uses the Eigen library extensively; it solves the system with the LeastSquaresGradient solver. We optimized the code to run as quick as possible. The source surface is required to be a mesh, whereas the target surface can be a point set with normals. Moreover, the user can specify an std::map which contains ground-truth correspondences.

Commit log:

CGAL/cgal-public-dev@7fba8e04a9d (HEAD -> gsoc2023-nonrigid_icp-danielunyi, origin/gsoc2023-nonrigid_icp-danielunyi) arap modifications after discussion
CGAL/cgal-public-dev@e4d5903600c Cleaning up
CGAL/cgal-public-dev@5cebe76ec12 Nonrigid ICP least squares version - Point-to-plane matching, incorporating arap rotations
CGAL/cgal-public-dev@64ffea3c468 Nonrigid ICP least squares version - minor fixes
CGAL/cgal-public-dev@07ba046b9d2 Nonrigid ICP least squares version
CGAL/cgal-public-dev@98ebe293445 Incorporate ARAP (full rotation matrices)
CGAL/cgal-public-dev@bcf5c2f603f as-rigid-as-possible original paper - python version
CGAL/cgal-public-dev@706bdf3eba5 Drawing correspondences
CGAL/cgal-public-dev@c3f56b4bf27 Large weights on corresponding points
CGAL/cgal-public-dev@22e220b0b48 OpenGR support
CGAL/cgal-public-dev@46da4f862de User can pass point-to-point correspondences as constraints to the registration function
CGAL/cgal-public-dev@9dfdc5c6290 A is set from triplets (slightly faster than the previous version)
CGAL/cgal-public-dev@79a1f586058 Reading in Tosca meshes; user can specify number of threads
CGAL/cgal-public-dev@415fbac64a4 Faster solving with Eigen's analyzePattern
CGAL/cgal-public-dev@2424a1ee91c Target doesn't have to be mesh, point set is sufficient
CGAL/cgal-public-dev@d7648ca20a7 As-rigid-as-possible registration, other minor modifications
CGAL/cgal-public-dev@5bcc2c98927 Mesh Laplacian calculation
CGAL/cgal-public-dev@18deddfbe48 Point-to-plane error + checking error convergence in rigid registration
CGAL/cgal-public-dev@1828f4afbff Registration with Eigen example - the rigid part
CGAL/cgal-public-dev@e7adb5ee294 ICP minimization calculations
CGAL/cgal-public-dev@3f513a6fd0b Using vectorized operations for arap registration
CGAL/cgal-public-dev@78bd2c8ca13 As-rigid-as possible registration in Python
CGAL/cgal-public-dev@5f24ae9d236 Clarify python versions
CGAL/cgal-public-dev@954bc8b1d1f Rigid registration in Python: point-to-point & point-plane
CGAL/cgal-public-dev@201afecdcc6 Rigid registration with matching energy and rigid energy
CGAL/cgal-public-dev@5be11a69a9a Point to plane ICP example using Eigen's Jacobi SVD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants