The algorithm performs tracking of a circle-shaped target given the event-stream from an event-camera. Two hardware implementations are provided:
@inproceedings{Glover2017a,
address = {Vancouver, Canada},
author = {Glover, Arren and Bartolozzi, Chiara},
booktitle = {IEEE International Conference on Intelligent Robots and Systems},
pages = {3769--3776},
publisher = {IEEE},
title = {{Robust Visual Tracking with a Freely-moving Event Camera}},
year = {2017}
}
A C++ YARP module that runs the algorithm on a standard CPU.
- install YARP
- install event-driven
- make sure both YARP and event-driven can be found on the environment path / project path
- clone this repository (e.g. into
~/projects/particle-filter-tracking
) - cd
~/projects/particle-filter-tracking
&& mkdir build && cd build - cmake ..
- make
- ensure the bin is found in the environment path
- yarpserver --write
- yarpmanager
- open the provided yarpmanager application (
particle-filter-tracking/cpu/app_cpu_tracking.xml
) - run all
- open a dataset (example TBA) with the yarpdataplayer
- connect all
- play the dataset on the yarpdataplayer
Note: you can substitute the yarpdataplayer with a live feed of an event-camera if it is yarp-compatible. Please contact the authors for more information if you want to make your camera yarp compatible.
Python scripts using the "Graph Front End" of the SpiNNaker tool-chain and c-code for running the algorithm on a SpiNNaker board.
- how to compile and run
These instructions assume this repository exists at ~/projects/particle-filter-tracking
-
make directory for SpiNNaker project code
mkdir /home/user/spinnaker && cd /home/user/spinnaker
-
install cross-compiler from https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
Uncompress in/home/user/spinnaker
-
Pull the following repositories from https://github.com/SpiNNakerManchester
DataSpecification
PACMAN
spalloc
SpiNNakerGraphFrontEnd
spinnaker_tools
spinn_common
SpiNNFrontEndCommon
SpiNNMachine
SpiNNMan
SpiNNStorageHandlers
SpiNNUtils
-
Set-up your
~/.bashrc
with the following additional lines
export SPINN_DIRS=~/spinnaker/spinnaker_tools
export PATH=~/spinnaker/gcc-arm-none-eabi-6-2017-q2-update/bin:$SPINN_DIRS/tools:$PATH
export PERL5LIB=$SPINN_DIRS/tools
export PYTHONPATH=~/projects/particle-filter-tracking/:$PYTHONPATH
source ~/.bashrc
or restart the terminal -
Apply the
bug.patch
to repositorySpiNNFrontEndCommon
git apply bug.path
-
Run the automatic_make.sh script from
/home/user/spinnaker
directory -
cd ~/projects/particle-filter-tracking/spinnaker
make
At this point the c-code executables should compile. To use the spinnaker toolchain to build the graph and run the algorithm:
Optional: if you want to use an IDE
- Set-up Python project using your favourite IDE or install PyCharm and make a new project with the contents of
~/projects/particle-filter-tracking/spinnaker/
- Add all the repositories from step 3. as external libraries of the project.
And/otherwise:
- Follow the steps under "Configuration" here http://spinnakermanchester.github.io/graph_front_end/4.0.0/SpiNNakerGraphFrontEndInstall.html to set-up your SpiNNaker board.
python ~/projects/particle-filter-tracking/spinnaker/pfMain.py