Create a SPECK dataset

Important

Before proceeding, please ensure you have the necessary USB permissions.

Collect events for images

To create a dataset from the Speck2f Development Kit, you can simply run the following in your command terminal:

pixi run speck_collect

An instance of the samnsagui will open and show you the events being collected.

Once started, begin collecting your dataset by moving through the environment. To finish collecting, simply close the samnagui window.

Our dataset generator script will automatically create and save images and create the necessary .csv file for training your model.

Modify collection window

By default, the dataset generator will collect over a 1-second timewindow. If we want to increase or decrease the timewindow, we can use the --timebin argument to specify the number of milliseconds to collect over:

pixi run speck_collect --timebin 250

This will collect over 250 ms, instead of the default 1,000 ms.

Set the experimental details

When creating the dataset, you can specify the dataset name, camera, and experiment name. Let’s for example say we’re collecting an outdoor dataset called OutdoorNav, on the in-built davis128, and we want to call it traverse001:

pixi run speck_collect --dataset OutdoorNav --camera davis128 --data_name traverse001

This will create and store all the images in the ./lens/dataset/OutdoorNav/davis128/traverse001/ and generate the necessary .csv file for model training.

Then, if we wanted to train on this dataset we’d simply need to run:

pixi run train --dataset OutdoorNav --camera davis128 --reference traverse001 --reference_places <NUM_REFERENCES>

Dataset considerations

For SPECK datasets, and indeed any datasets being deployed to the device, must consider strict model size constraints for place encoding.

Warning

Model sizes for LENS deployed on SPECK are limited to approximately 180 kB in total due to the available memory in each neurocore.

Refer to the Sinabs documentation for more information.

In general, a network architecure of 100 input neurons, 200 feature neurons, and 100 output neurons is roughly the limit for SPECK datasets.

Hint

Although larger input and feature sizes limit the number of places to encode, we have succesfully learned over 600 places on SPECK using smaller input and feature encodings.

See our paper for more information.