Skip to main content

LENS: Locational Encoding with Neuromorphic Systems

Project description

LENS Logo

PyTorch Documentation Status License: MIT QUT Centre for Robotics stars Downloads Pixi Badge Conda Version PyPI - Version GitHub repo size

This repository contains code for LENS - Locational Encoding with Neuromorphic Systems. LENS combines neuromorphic algorithms, sensors, and hardware to perform accurate, real-time robotic localization using visual place recognition (VPR).

LENS performs VPR with the SynSense SpeckTM development kits, featuring a combination of a dynamic vision sensor and neuromorphic System-on-Chip processor for real-time, energy-efficient localization.

LENS can also be used with conventional CPU, GPU, and Apple Silicon (MPS) devices to perform event-based VPR thanks to the Sinabs spiking network architecture.

For more information, please visit the LENS Documentation.

Getting started

For reproducibility and simplicity, we use pixi for package management and installation. If not already installed, please run the following command in your terminal:

curl -fsSL https://pixi.sh/install.sh | bash

You will be prompted to restart your terminal once installed. For more information, please refer to the pixi documentation.

Run the following in your terminal to clone the LENS repository and navigate to the project directory:

git clone git@github.com:AdamDHines/LENS.git
cd ~/LENS

For alternative package and dependency installation, please see the LENS documentation.

Quick demo

Get started using our demo dataset and pre-trained model to evaluate the system. Run the following in your command terminal to see the demo:

pixi run demo

Train and evaluate new model

Test out training and evaluating a new model with our ultra-fast learning method using our provided demo dataset by running the following in your command terminal:

pixi run train
pixi run evaluate

For a full guide on training and evaluating your own datasets, please visit the LENS documentation.

Optimize network hyperparameters

To get the best localization performance on benchmark or custom datasets, you can tune your network hyperparameters using Weights & Biases through our convenient optimizer script:

pixi run optimizer

For detailed instructions on setting up Weights & Biases and the optimizer, please refer to the LENS documentation.

Deployment on neuromorphic hardware

LENS was developed using a SynSense Speck2fDevKit. If you have one of these kits, deploying to it is simple. Try out LENS using our pre-trained model and datasets by deploying simulated event streams on-chip:

pixi run sim-speck

Additionally, models can be deployed onto the Speck2fDevKit for low-latency and energy efficient VPR with sequence matching in real-time:

pixi run on-speck

For more details on deployment to the Speck2fDevKit, please visit the LENS documentation.

Dataset

For all data relating to our manuscript, we have a dedicated permanent repository at https://zenodo.org/records/15392412, as well as including all data in this repository, which can found in the ./lens/data folder.

We acknowledge the Brisbane-Event-VPR dataset from https://zenodo.org/records/4302805.

License and citation

This repository is licensed under the permissive MIT License. If you use our code, please cite our paper:

@article{HinesLENS2025,
  author = {Adam D. Hines  and Michael Milford  and Tobias Fischer },
  title = {A compact neuromorphic system for ultra–energy-efficient, on-device robot localization},
  journal = {Science Robotics},
  volume = {10},
  number = {103},
  pages = {eads3968},
  year = {2025},
  doi = {10.1126/scirobotics.ads3968},
  URL = {https://www.science.org/doi/abs/10.1126/scirobotics.ads3968}
}

Issues, bugs, and feature requests

If you encounter problems whilst running the code or if you have a suggestion for a feature or improvement, please report it as an issue.

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

lens-vpr-0.1.4.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

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

lens_vpr-0.1.4-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

Details for the file lens-vpr-0.1.4.tar.gz.

File metadata

  • Download URL: lens-vpr-0.1.4.tar.gz
  • Upload date:
  • Size: 48.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for lens-vpr-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9f8febd71ffa19bc931b8e165940eae2c0137b461bdbce9138da9b535fae4a18
MD5 6f1e5b1e95a1dd85e37bb918039aa827
BLAKE2b-256 4ccfa76fd40d111627d32459f436b61e974ff48d1df00f420c83744ac0330bc1

See more details on using hashes here.

File details

Details for the file lens_vpr-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: lens_vpr-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 60.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for lens_vpr-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 bf47500a7c55b34cea888bd50f3cbace052ea132518a28acfd2fd789fb6196ed
MD5 8cd6a76fbce983fe6aaade56e3309c99
BLAKE2b-256 c71cbdc85a423a207801ad0f07226e0a120ae0eb87f20f51f5b887ea5a2cfff3

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