lijx10 / USIP

USIP: Unsupervised Stable Interest Point Detection from 3D Point Clouds. ICCV 2019
GNU General Public License v3.0
206 stars 29 forks source link

Wrong keypoints testing with kitti dataset #27

Closed LeoAnnArbor closed 3 years ago

LeoAnnArbor commented 3 years ago

Hi, I tried to reproduce the results of work on the KITTI dataset. I used save_keypoints.py with path to the dataset from GDrive (numpy representations of PCs) and to both models best.pth from oxford/16384-512-k1k16-2d and oxford/16384-256-k1k32-2d. When visualizing the results, I also had the similar problem as shown below: result with the output: kitti - i916 - n35 - .../USIP/processed_data/kitti-reg-test/02/002121.bin, .../USIP/output/keypoints_knn_ball/oxford_kitti_k1k16/tsf_8APLY1X2/02/002121.bin

However, I think my results are more than just a rotation.

First, when loading the key points, they are already transformed back to the velodyne coordinate based on the calibration files using the /tools/load_keypoint.m function. So the key points should already be in the NWU coordinate?

Second, the range of the original point cloud is x [-78.79, 79.56], y [-18.25, 25.04] and z [-3.02, 2.9]. The range of the key point is x [-46.08, 22.42], y [-27.67, 61.71] and z [-9.1, 11.31]. From the stats, it looks like that there is a rotation offset between x and y coordinate. But all three ranges are much greater than the original range of the z and the new key points will be off.

It would be great if anyone can help me figure out where I did wrong. Thanks in advance for the help!

Originally posted by @LeoAnnArbor in https://github.com/lijx10/USIP/issues/10#issuecomment-911140873