pglira / simpleICP

Implementations of a rather simple version of the Iterative Closest Point algorithm in various languages.
MIT License
290 stars 59 forks source link

Pytorch Point to Plane similar to SimpleICP #27

Open LemonPi opened 2 years ago

LemonPi commented 2 years ago

Hi, I tried out SimpleICP and it seems to work very well for my problem. The only issue with SimpleICP for me is that it's very slow due to not being batched (as I need a distribution of ICP results). I was wondering if you knew any pytorch implementations of point to plane ICP? pytorch3d's implementation I believe is point to point and produces much worse fits than SimpleICP. If not, I am interested in porting this python implementation to pytorch to support batching.

pglira commented 2 years ago

Hi, its not completely clear to me what you mean with "batching". Can you clarify this? Is the goal to run register n point cloud pairs at the same time, i.e. in parallel?

LemonPi commented 2 years ago

The goal is to register two point clouds together but with different initial pose estimates in parallel. This is achieved in pytorch3d by passing the point cloud as B x N x 3 and B x M x 3 inputs with B x 4 x 4 initial homogeneous transform estimates. (This formulation allows registration of different pairs of point clouds in parallel, but I just use it to duplicate my input point clouds B times).