Skip to main content

ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression

Project description

ADR: Real-Time and Robust 3D Place Recognition with Adaptive Data Reorganization and Geodesic-Constrained Plane Suppression

Project Page arXiv GitHub License Latest Release

[NOTE]
This document may be out of date. See adr_code for the latest document.
This source code was based on STD: A Stable Triangle Descriptor for 3D place recognition.

💡 News

  • September 2025: Accepted at RA-L

🍝 Install with pip

  1. Install dependencies

    sudo apt update \
    && sudo apt install libgoogle-glog-dev \
        libgflags-dev \
        libatlas-base-dev \
        libeigen3-dev \
        libpcl-dev \
        libtbb-dev
    
  2. Install python package

    pip install relocal_adr
    

🎼 Usage

  1. Init place recognition object

    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

    # 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

    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

    adr.update(feature)
    
  5. For detailed usage, see 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

    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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

relocal_adr-0.1.1.tar.gz (52.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

relocal_adr-0.1.1-cp38-cp38-manylinux_2_31_x86_64.whl (14.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.31+ x86-64

File details

Details for the file relocal_adr-0.1.1.tar.gz.

File metadata

  • Download URL: relocal_adr-0.1.1.tar.gz
  • Upload date:
  • Size: 52.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.2

File hashes

Hashes for relocal_adr-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4b296829cd40ed69718c2c64db5cca94496b75ef1dbcb1674d1ff15f69d6b2f7
MD5 6e7d65f190a1d4c2e8e51bc3994c5e57
BLAKE2b-256 1c6b043149c6dc4f2f6a6ca07d069cf26ae9d35353293e3c89ebdeb1ab521538

See more details on using hashes here.

File details

Details for the file relocal_adr-0.1.1-cp38-cp38-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for relocal_adr-0.1.1-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e2ad45dce29ac4d50d50754b971de88c7b5964e1ffab7da716593039e61fda60
MD5 f45c1154db3a2f83e4ad8691aec6dfd7
BLAKE2b-256 84f6ade9a94442d309831222cce281806784231d08a8fa4060a8690e68d1e3dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page