Lattice-allocated Real-time Line Segment Feature Detection and Tracking Using Only an Event-based Camera
Mikihiro Ikura1 Arren Glover1 Masayoshi Mizuno2 Chiara Bartolozzi1
1Istituto Italiano di Tecnologia 2Sony Interactive Entertainment Inc.
This repository is the official implementation of the paper "Lattice-allocated Real-time Line Segment Feature Detection and Tracking Using Only an Event-based Camera", which was presented on 2nd Workshop on Neuromorphic Vision: Advantages and Applications of Event Cameras (NeVi2025), International Conference on Computer Vision (ICCV) as a Spotlight session.
@inproceedings{ikura2025iccv-nevi,
title={Lattice-allocated Real-time Line Segment Feature Detection and Tracking Using Only an Event-based Camera},
author={Ikura, Mikihiro and Glover, Arren and Mizuno, Masayoshi and Bartolozzi, Chiara},
booktitle={Proceedings of the 2nd Workshop on Neuromorphic Vision: Advantages and Applications of Event Cameras (NeVi) in conjunctions with the International Conference on Computer Vision (ICCV)},
year={2025}
}NeVi2025_cmp.mp4
docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t ledge:latest .
- Input current User ID and Group ID into Docker environment
docker compose up -d
docker exec -it ledge /bin/bash
- if you fail to run docker container with the issue about nvidia runtime in docker, please take a look at this link.
- You can change the mounted directory described in
docker-compose.yamlto run LEDGE with your recorded data.
xhost local:docker
Change permission in USB event camera to work the camera in Docker container with non-root user by adding udev rules in your host environment
## Run .sh in your `host` environment
sudo chmod +x setup_usb_permissions.sh
./setup_usb_permissions.sh
C++ LEDGE library including the following functions
core: core functions for LEDGE, such as initialization, visualization, etc.detection: functions for detecting line segmentstracking: functions for tracking line segmentsmanager: functions for managing line segments
C++ implemented examples to show how to use LEDGE library into the project.
C++ Google test codes to confirm that implemented functions work correctly with pre-defined groud truth data.
- All tests are executed automatically in Github Actions.
- All tests should be passed to merge pull request.
# Run all python scripts in `Docker` environment
cd /app/LEDGE
uv sync
git submodule update --init --recursive
cd /app/LEDGE
uv run scripts/***.py
uv run scripts/***.py -h: Show help to introduce how to run each script.
You can format all *.h and *.cpp files in this repository by using the following commands
Terminal
sudo apt install clang-format # you can skip this command if you are in docker container
find ledge unit_test example -path '*/build/*' -prune -o \( -name '*.cpp' -o -name '*.h' \) -print | xargs clang-format -i -style=file --verbose
