Open Ritchizh opened 4 years ago
Hi, Yes this is due to the incorrect point correspondences. Please set the threshold manually according to your data in line 120, in nricp.py file.
This project is still in development phase, If you want to use a better way of obtaining nonrigid transformations please check https://pypi.org/project/pycpd/.
Thank you for answering!
Varying the distance threshold doesn't seem to work. My distance array parameters are the following: min = 7.8e-05, max = 0.046, mean = 0.0036; distance.shape = (9515, 1)
They vary a bit depending on the threshold. How should the threshold be chosen?
I will also check the library at your link.
Hey, not sure why, I will have to debug, Can you try solving using SVD or QR decomposition.
Can this error be connected to my data? I generated the triangle meshes from point clouds with Open3d _o3d.geometry.TriangleMesh.create_from_point_cloud_ballpivoting method (normals estimated with _estimatenormals(o3d.geometry.KDTreeSearchParamHybrid()) method).
I'm not sure how to replace _choleskyAAt with SVD: it should take sparse matrix and return factor object.
I tried using the test data but still got the error. I am using Python 3.8 and Open3D 0.13.0. That might be the problem?
I haven't tested this with newer versions of open3d or python. It is working (example data) with Python 3.6 and Open3d 0.9.
I also meet the probelm. i check the distance , the max of the distance is 1.04, min:0.0059,mean : 0.22, when i set mismatches = np.where(distances>1)[0](nricp.py 120 row), it works ok! hope to help you
Thank you for answering!
Varying the distance threshold doesn't seem to work. My distance array parameters are the following:
min = 7.8e-05, max = 0.046, mean = 0.0036; distance.shape = (9515, 1)
They vary a bit depending on the threshold. How should the threshold be chosen?I will also check the library at your link.
Hi! When I am trying to run the code with my data: https://drive.google.com/drive/folders/1jr5uoy96BbjG_mH60BWAmdflqgdAPhXq?usp=sharing
I am getting the following error: _11 def choleskySolve(M, b): ---> 13 factor = cholesky_AAt(M.T) 14 return factor(M.T.dot(b)).toarray() CholmodNotPositiveDefiniteError: ../Cholesky/t_cholmodrowfac.c:430: not positive definite (code 1)
(With your test data it works fine. ) I assume some values in the decomposition are very close to zero, but negative. Could you possibly tell what causes this error, how to fix it?