Comments (6)
Hi @LogWell ,
Thank you for reporting.
Which method do you use? (CPD, GMMReg, SVR, GMMTree or Filterreg)
from probreg.
left: probreg
tf_param, _, _ = cpd.registration_cpd(source, target, 'rigid', callbacks=cbs)
right: open3d, with threshold=0.02
data: please change .txt
to .ply
0_0_00 (copy).txt
bch0002hd2o01p01s__result2__s (copy).txt
registration with scale
is very useful
from probreg.
Thank you for the data.
I noticed that this data are deformable objects, so I tried affine transformation registration.
It's a little better, I think, isn't it?
import copy
import numpy as np
import open3d as o3
from probreg import cpd
source = o3.io.read_point_cloud('data1.ply')
target = o3.io.read_point_cloud('data2.ply')
source = source.voxel_down_sample(voxel_size=0.02)
target = target.voxel_down_sample(voxel_size=0.02)
result = copy.deepcopy(source)
tf_param, _, _ = cpd.registration_cpd(source, target, 'affine')
result.points = tf_param.transform(result.points)
target.paint_uniform_color([0, 1, 0])
result.paint_uniform_color([0, 0, 1])
o3.visualization.draw_geometries([target, result])
from probreg.
If a complete mesh is registered with an incomplete point cloud, a distance threshold is still needed (to eliminate some incorrect corresponding points), right?
For the mesh of human body, if we want to compare the results of different algorithms, we need to register first. Generally, we only need to rotate, scale and translate. The affine transformation will make the comparison unfair.
from probreg.
As you say, in ICP you can set a distance threshold on the distance between the source point and the nearest neighbor point of the target point, but in CPD it is difficult because it expresses the distance between points with probability.
Take a look at the paper if you like.
The paper also lists registration results with incomplete data (Fig.6), so isn't the distance threshold the only thing that matters?
If you want to make a fair comparison, it may be better to use rigid deformation data.
Because when shown the above comparison, you can't categorically say that the right one is better.
The result on the left is certainly a bit of a leaner body part, but it looks more like it is trying to align their left foot.
from probreg.
I see. Thank you very much~
from probreg.
Related Issues (20)
- Performance metric HOT 3
- ImportError: cannot import name '_math' HOT 1
- Contrained nonrigid CPD not moving points coherently
- Question about initialization of nonrigid transformation
- calculate the deformation field of point cloud and apply it to the 3D CT image
- bcpd_nonrigid.py does not consider local shapes.
- Error installing on Ubuntu 16.04 HOT 3
- the officially provided "Getting started" demo could not run properly HOT 1
- Interpolate full-size displacement field where having only a few points? HOT 2
- Conceptual question about rotation constraints HOT 2
- RigidCPD does not work in multiprocessing.Process HOT 2
- No module named 'utils' HOT 2
- How to find pairs of corresponding points after transformation? HOT 1
- Nonrigid cpd not functional HOT 1
- Question about outliers HOT 1
- Problems with installation of 'probreg' HOT 4
- Installing error in WIndows HOT 2
- Registration between a sparse and a dense point cloud HOT 3
- error when import probreg after pip installtion on ubuntu 20.04 + python3.6 HOT 1
- cpd.NonRigidCPD issue with swapping source and target
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 probreg.