Skip to content

Lattice-allocated Real-time Line Segment Feature Detection and Tracking Using Only an Event-based Camera. M. Ikura, et.al., ICCVW2025

License

Notifications You must be signed in to change notification settings

event-driven-robotics/RT-EvLDT

Repository files navigation

RT-EvLDT

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.   

arXiv    Dataset

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}
}

🎥 Video

NeVi2025_cmp.mp4

📋 Qualitative evaluation of line segments

alt text

📐 Setup environment

Build docker image

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

Run and enter docker container with docker compose

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.yaml to run LEDGE with your recorded data.

Open X Server for docker environment

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

📚 Library contents

C++ LEDGE library including the following functions

  • core: core functions for LEDGE, such as initialization, visualization, etc.
  • detection: functions for detecting line segments
  • tracking: functions for tracking line segments
  • manager: 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.

Create virtual environment

# Run all python scripts in `Docker` environment
cd /app/LEDGE
uv sync

Update submodules

git submodule update --init --recursive

Run Python scripts with uv

cd /app/LEDGE
uv run scripts/***.py
  • uv run scripts/***.py -h: Show help to introduce how to run each script.

🔨 clang-format

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

About

Lattice-allocated Real-time Line Segment Feature Detection and Tracking Using Only an Event-based Camera. M. Ikura, et.al., ICCVW2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published