{"id":13443630,"url":"https://github.com/ispc-lab/HRegNet","last_synced_at":"2025-03-20T17:30:50.305Z","repository":{"id":63163457,"uuid":"389485801","full_name":"ispc-lab/HRegNet","owner":"ispc-lab","description":"[ICCV 2021] HRegNet: A Hierarchical Network for Large-scale Outdoor LiDAR Point Cloud Registration","archived":false,"fork":false,"pushed_at":"2023-08-25T11:09:05.000Z","size":49349,"stargazers_count":89,"open_issues_count":3,"forks_count":12,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-28T07:39:29.655Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ispc-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-26T02:24:35.000Z","updated_at":"2024-09-19T08:48:01.000Z","dependencies_parsed_at":"2024-01-18T14:47:00.606Z","dependency_job_id":"1d454610-b8a7-4e64-bdce-20adb536b359","html_url":"https://github.com/ispc-lab/HRegNet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ispc-lab%2FHRegNet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ispc-lab%2FHRegNet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ispc-lab%2FHRegNet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ispc-lab%2FHRegNet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ispc-lab","download_url":"https://codeload.github.com/ispc-lab/HRegNet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244660206,"owners_count":20489297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:02:05.702Z","updated_at":"2025-03-20T17:30:50.296Z","avatar_url":"https://github.com/ispc-lab.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"## HRegNet: A Hierarchical Network for Large-scale Outdoor LiDAR Point Cloud Registration\n\n### Introduction\nThe repository contains the source code and pre-trained models of our paper (published on ICCV 2021): `HRegNet: A Hierarchical Network for Large-scale Outdoor LiDAR Point Cloud Registration`.\n\nThe overall network architecture is shown below:\n\u003ccenter\u003e\n\u003cimg src=\"assets/overall.png\" width=\"60%\"\u003e\n\u003c/center\u003e\n\n### News\nWe have fixed some bugs in the code and updated the pretrained weights for both two datasets. The registration performance would be better than the reported performance in the paper. The current tested results are listed here:\n\n#### KITTI dataset\n|RTE (m)|RRE (deg)|Success rate|\n|:----:|:----:|:----:|\n|0.0557+-0.0746|0.1780+-0.1959|99.77%|\n\n#### NuScenes dataset\n|RTE (m)|RRE (deg)|Success rate|\n|:----:|:----:|:----:|\n|0.1218+-0.1122|0.2734+-0.1970|100.0%|\n\n### Environments\nThe code mainly requires the following libraries and you can check `requirements.txt` for more environment requirements.\n- PyTorch 1.7.0/1.7.1\n- Cuda 11.0/11.1\n- [pytorch3d 0.3.0](https://github.com/facebookresearch/pytorch3d)\n- [MinkowskiEngine 0.5](https://github.com/NVIDIA/MinkowskiEngine)\n\nPlease run the following commands to install `point_utils`\n```\ncd models/PointUtils\npython setup.py install\n```\n\n**Training device**: NVIDIA RTX 3090\n\n### Datasets\nThe point cloud pairs list and the ground truth relative transformation are stored in `data/kitti_list` and `data/nuscenes_list`. \nThe data of the two datasets should be organized as follows:\n#### KITTI odometry dataset\n```\nDATA_ROOT\n├── 00\n│   ├── velodyne\n│   ├── calib.txt\n├── 01\n├── ...\n```\n#### NuScenes dataset\n```\nDATA_ROOT\n├── v1.0-trainval\n│   ├── maps\n│   ├── samples\n│   │   ├──LIDAR_TOP\n│   ├── sweeps\n│   ├── v1.0-trainval\n├── v1.0-test\n│   ├── maps\n│   ├── samples\n│   │   ├──LIDAR_TOP\n│   ├── sweeps\n│   ├── v1.0-test\n```\n### Train\nThe training of the whole network is divided into two steps: we firstly train the feature extraction module and then train the network based on the pretrain features.\n#### Train feature extraction\n- Train keypoints detector by running `sh scripts/train_kitti_det.sh` or `sh scripts/train_nusc_det.sh`, please reminder to specify the `GPU`,`DATA_ROOT`,`CKPT_DIR`,`RUNNAME`,`WANDB_DIR` in the scripts.\n- Train descriptor by running `sh scripts/train_kitti_desc.sh` or `sh scripts/train_nusc_desc.sh`, please reminder to specify the `GPU`,`DATA_ROOT`,`CKPT_DIR`,`RUNNAME`,`WANDB_DIR` and `PRETRAIN_DETECTOR` in the scripts.\n\n#### Train the whole network\nTrain the network by running `sh scripts/train_kitti_reg.sh` or `sh scripts/train_nusc_reg.sh`, please reminder to specify the `GPU`,`DATA_ROOT`,`CKPT_DIR`,`RUNNAME`,`WANDB_DIR` and `PRETRAIN_FEATS` in the scripts.\n\n**Update**: Pretrained weights for detector and descriptor are provided in `ckpt/pretrained`. If you want to train descriptor, you can set `PRETRAIN_DETECTOR` to `DATASET_keypoints.pth`. If you want to train the whole network, you can set `PRETRAIN_FEATS` to `DATASET_feats.pth`.\n\n### Test\nWe provide pretrain models in `ckpt/pretrained`, please run `sh scripts/test_kitti.sh` or `sh scripts/test_nusc.sh`, please reminder to specify `GPU`,`DATA_ROOT`,`SAVE_DIR` in the scripts. The test results will be saved in `SAVE_DIR`.\n\n### Citation\nIf you find this project useful for your work, please consider citing:\n```\n@InProceedings{Lu_2021_HRegNet,\n        author = {Lu, Fan and Chen, Guang and Liu, Yinlong and Zhang Lijun, Qu Sanqing, Liu Shu, Gu Rongqi},\n        title = {HRegNet: A Hierarchical Network for Large-scale Outdoor LiDAR Point Cloud Registration},\n        booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision},\n        year = {2021}\n}\n```\n\n### Acknowledgments\nWe want to thank all the ICCV reviewers and the following open-source projects for the help of the implementation:\n\n- [DGR](https://github.com/chrischoy/DeepGlobalRegistration)(Point clouds preprocessing and evaluation)\n- [PointNet++](https://github.com/sshaoshuai/Pointnet2.PyTorch)(unofficial implementation, for Furthest Points Sampling)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fispc-lab%2FHRegNet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fispc-lab%2FHRegNet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fispc-lab%2FHRegNet/lists"}