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, please see ./lens/data for details. 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{hines2025lens,
      title={A compact neuromorphic system for ultra energy-efficient, on-device robot localization}, 
      author={Adam D. Hines and Michael Milford and Tobias Fischer},
      journal={},
      year={2025},
      volume={},
      number={},
      doi={},
      url={}, 
}

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.3.tar.gz (48.5 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.3-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lens-vpr-0.1.3.tar.gz
  • Upload date:
  • Size: 48.5 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.3.tar.gz
Algorithm Hash digest
SHA256 a3bc89d56f8fdeb75cf698eddb7598a88be19cebe6fcc98c160d13101e749b12
MD5 66f045e529d9f608c51a94408b6ef256
BLAKE2b-256 c8d35e8827e0a87d518062012725ac3e8623e5ee7719d82a46a552a9dfffb636

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lens_vpr-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 60.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 180560fad047554435064d49acbdcb7503ecca0d34cd3161ff1fb2bac5397014
MD5 3561acad0b820fc435b7b79854910acd
BLAKE2b-256 a96871346f3955579f2438013d7a86d8fcea2d545bbd798720d3eeeb62328279

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