| Name | relocal-adr JSON |
| Version |
0.1.1
JSON |
| download |
| home_page | None |
| Summary | ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression |
| upload_time | 2025-10-12 12:15:48 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.8 |
| license | MIT License Copyright (c) 2025 DUT Smart Robot Lab Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| keywords |
pointcloud
lidar
autonomous driving
place recognition
3d vision
loop closure detection
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression
[](https://utn-air.github.io/flownav.github.io/)
[](https://ieeexplore.ieee.org/document/11162696)

[](https://github.com/utn-air/flownav/releases)
> [**NOTE**]
> This document may be out of date. See [adr_code](https://github.com/HopeCollector/adr_code) for the latest document.
> This source code was based on [STD: A Stable Triangle Descriptor for 3D place recognition](https://github.com/hku-mars/STD).
## 💡 News
- **September 2025**: Accepted at [RA-L](https://ieeexplore.ieee.org/document/11162696)
## 🍝 Install with pip
1. Install dependencies
```bash
sudo apt update \
&& sudo apt install libgoogle-glog-dev \
libgflags-dev \
libatlas-base-dev \
libeigen3-dev \
libpcl-dev \
libtbb-dev
```
2. Install python package
```bash
pip install relocal_adr
```
## 🎼 Usage
1. Init place recognition object
```python
from relocal_adr import ADR, Feature
from yaml import safe_load
cfg = safe_load(open("config_kitti.yaml", "r"))
adr = ADR(cfg)
```
2. Extract Descriptor from points
```python
# It is recommended to use dense point clouds
frame_num = 10
# Select the data loading method independently according to the data set
# Load points in world frame, !!! NOT LOCAL FRAME !!!
points: np.ndarray = dataloader.get(start_id, frame_num, frame.WORLD)
# Extract feature from raw points
feature: Feature = adr.extract(points)
```
3. Query matching results
```python
ress = adr.query(feature)
# Print results
if ress[0] >= 0:
print(f"current frame match frame[{id}] in database, score is: {score}")
```
4. Update the feature to the database
```python
adr.update(feature)
```
5. For detailed usage, see [demo.py](./demo.py)
## 🐋 Develop in Docker
1. Build docker image
```
docker compose build --pull
```
2. Attach the service with VSCode
- Install `ms-vscode-remote.remote-containers` in vscode extension marketplace
- Press `F1`, search "reopen in container"
- Click it, and all settings are complete
3. Install local package
```bash
uv sync
uv pip install ./relocal_adr
```
## 🔗 Datasets
The demo sample uses the `kitti_odom_2012_dataloader` to load data. Similar data loaders include
- kaist-dataloader
- nclt-dataloader
- wild-dataloader
can be installed directly using pip
## 📝 Citation
```
@ARTICLE{wang2025adr,
author={Wang, Chengmin and Zhuang, Yan and Yan, Fei and Zhang, Xuetao},
journal={IEEE Robotics and Automation Letters},
title={Real-Time and Robust 3D Place Recognition With Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression},
year={2025},
volume={10},
number={11},
pages={11251-11258},
doi={10.1109/LRA.2025.3609614}
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "relocal-adr",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "pointcloud, lidar, autonomous driving, place recognition, 3d vision, loop closure detection",
"author": null,
"author_email": "HopeCollector <cmw0249@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/1c/6b/043149c6dc4f2f6a6ca07d069cf26ae9d35353293e3c89ebdeb1ab521538/relocal_adr-0.1.1.tar.gz",
"platform": null,
"description": "# ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression\n\n[](https://utn-air.github.io/flownav.github.io/)\n[](https://ieeexplore.ieee.org/document/11162696)\n\n[](https://github.com/utn-air/flownav/releases)\n\n> [**NOTE**] \n> This document may be out of date. See [adr_code](https://github.com/HopeCollector/adr_code) for the latest document. \n> This source code was based on [STD: A Stable Triangle Descriptor for 3D place recognition](https://github.com/hku-mars/STD). \n\n## \ud83d\udca1 News\n\n- **September 2025**: Accepted at [RA-L](https://ieeexplore.ieee.org/document/11162696)\n\n## \ud83c\udf5d Install with pip\n\n1. Install dependencies\n\n ```bash\n sudo apt update \\\n && sudo apt install libgoogle-glog-dev \\\n libgflags-dev \\\n libatlas-base-dev \\\n libeigen3-dev \\\n libpcl-dev \\\n libtbb-dev\n ```\n\n2. Install python package\n\n ```bash\n pip install relocal_adr\n ```\n\n## \ud83c\udfbc Usage\n\n1. Init place recognition object\n\n ```python\n from relocal_adr import ADR, Feature\n from yaml import safe_load\n\n cfg = safe_load(open(\"config_kitti.yaml\", \"r\"))\n adr = ADR(cfg)\n ```\n\n2. Extract Descriptor from points\n\n ```python\n # It is recommended to use dense point clouds\n frame_num = 10\n\n # Select the data loading method independently according to the data set\n # Load points in world frame, !!! NOT LOCAL FRAME !!!\n points: np.ndarray = dataloader.get(start_id, frame_num, frame.WORLD)\n\n # Extract feature from raw points\n feature: Feature = adr.extract(points)\n ```\n\n3. Query matching results\n\n ```python\n ress = adr.query(feature)\n\n # Print results\n if ress[0] >= 0:\n print(f\"current frame match frame[{id}] in database, score is: {score}\")\n ```\n\n4. Update the feature to the database\n\n ```python\n adr.update(feature)\n ```\n\n5. For detailed usage, see [demo.py](./demo.py)\n\n## \ud83d\udc0b Develop in Docker\n\n1. Build docker image\n \n ```\n docker compose build --pull\n ```\n\n2. Attach the service with VSCode\n\n - Install `ms-vscode-remote.remote-containers` in vscode extension marketplace\n - Press `F1`, search \"reopen in container\"\n - Click it, and all settings are complete\n\n3. Install local package\n\n ```bash\n uv sync\n uv pip install ./relocal_adr\n ```\n\n## \ud83d\udd17 Datasets\n\nThe demo sample uses the `kitti_odom_2012_dataloader` to load data. Similar data loaders include\n\n- kaist-dataloader\n- nclt-dataloader\n- wild-dataloader\n\ncan be installed directly using pip\n\n## \ud83d\udcdd Citation\n\n```\n@ARTICLE{wang2025adr,\n author={Wang, Chengmin and Zhuang, Yan and Yan, Fei and Zhang, Xuetao},\n journal={IEEE Robotics and Automation Letters}, \n title={Real-Time and Robust 3D Place Recognition With Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression}, \n year={2025},\n volume={10},\n number={11},\n pages={11251-11258},\n doi={10.1109/LRA.2025.3609614}\n}\n\n```",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2025 DUT Smart Robot Lab Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://github.com/HopeCollector/adr_code#readme",
"Homepage": "https://github.com/HopeCollector/adr_code",
"Source": "https://github.com/HopeCollector/adr_code"
},
"split_keywords": [
"pointcloud",
" lidar",
" autonomous driving",
" place recognition",
" 3d vision",
" loop closure detection"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "84f6ade9a94442d309831222cce281806784231d08a8fa4060a8690e68d1e3dc",
"md5": "f45c1154db3a2f83e4ad8691aec6dfd7",
"sha256": "e2ad45dce29ac4d50d50754b971de88c7b5964e1ffab7da716593039e61fda60"
},
"downloads": -1,
"filename": "relocal_adr-0.1.1-cp38-cp38-manylinux_2_31_x86_64.whl",
"has_sig": false,
"md5_digest": "f45c1154db3a2f83e4ad8691aec6dfd7",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 14902978,
"upload_time": "2025-10-12T12:15:46",
"upload_time_iso_8601": "2025-10-12T12:15:46.480142Z",
"url": "https://files.pythonhosted.org/packages/84/f6/ade9a94442d309831222cce281806784231d08a8fa4060a8690e68d1e3dc/relocal_adr-0.1.1-cp38-cp38-manylinux_2_31_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1c6b043149c6dc4f2f6a6ca07d069cf26ae9d35353293e3c89ebdeb1ab521538",
"md5": "6e7d65f190a1d4c2e8e51bc3994c5e57",
"sha256": "4b296829cd40ed69718c2c64db5cca94496b75ef1dbcb1674d1ff15f69d6b2f7"
},
"downloads": -1,
"filename": "relocal_adr-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "6e7d65f190a1d4c2e8e51bc3994c5e57",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 52591,
"upload_time": "2025-10-12T12:15:48",
"upload_time_iso_8601": "2025-10-12T12:15:48.819267Z",
"url": "https://files.pythonhosted.org/packages/1c/6b/043149c6dc4f2f6a6ca07d069cf26ae9d35353293e3c89ebdeb1ab521538/relocal_adr-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-12 12:15:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "HopeCollector",
"github_project": "adr_code#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "relocal-adr"
}