LENS: Locational Encoding with Neuromorphic Systems
Project description
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3bc89d56f8fdeb75cf698eddb7598a88be19cebe6fcc98c160d13101e749b12
|
|
| MD5 |
66f045e529d9f608c51a94408b6ef256
|
|
| BLAKE2b-256 |
c8d35e8827e0a87d518062012725ac3e8623e5ee7719d82a46a552a9dfffb636
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
180560fad047554435064d49acbdcb7503ecca0d34cd3161ff1fb2bac5397014
|
|
| MD5 |
3561acad0b820fc435b7b79854910acd
|
|
| BLAKE2b-256 |
a96871346f3955579f2438013d7a86d8fcea2d545bbd798720d3eeeb62328279
|