yewzijian / RPMNet

RPM-Net: Robust Point Matching using Learned Features (CVPR2020)
MIT License
328 stars 60 forks source link

Input single fragment for real-time registration #18

Closed kidpaul94 closed 3 years ago

kidpaul94 commented 3 years ago

Hello, Thank you for the great work. The results on the paper look amazing! It seems like RPMNet can be used for real-time processing with good registration accuracy. Would you give me some idea which part of the code I need to fix so that the registration can be done for single noisy fragment (.ply, numpy array or open3d point cloud) to a clean reference? I can already see that I have to change "inference" in eval.py (if I just ignore "evaluate") but I'm not quite sure how to change them.

yewzijian commented 3 years ago

Hi @kidpaul94, you're right that the inference() function contains the code you need.

Unfortunately there's also other redundant code that are used for evaluation. All you need is just to pass the required data through the model, i.e. L157: pred_transforms, endpoints = model(val_data, _args.num_reg_iter) , where val_data should be a dictionary with the keys points_src and points_ref containing the two point clouds you want to register. See RPMNet::forward() in rpmnet.py for the tensor format.

But that's a good suggestion, I'll try to find time to add a demo code to allow for easier registration.

kidpaul94 commented 3 years ago

Thanks a lot!