DEV Community

Cover image for Estimating the speed of the ISS using computer vision (Python + OpenCV)
BabbaWaagen
BabbaWaagen

Posted on

Estimating the speed of the ISS using computer vision (Python + OpenCV)

Estimating the speed of the ISS using computer vision

I recently revisited an older project I built with a friend for a school project as part of the ESA Astro Pi 2024 challenge.

The idea was simple:

estimate the speed of the ISS using only images of Earth.

Approach

The project is written in Python using OpenCV.

The pipeline looks like this:

  • capture two images
  • detect keypoints using SIFT
  • match them using FLANN
  • measure pixel displacement
  • convert that into real-world distance (GSD)
  • calculate speed based on time difference

Result

Estimated speed:
~7.47 km/s

Actual ISS speed:
~7.66 km/s

So roughly a 2–3% difference.

Not perfect, but surprisingly close considering it’s based purely on image analysis.

Limitations

The original runtime images are unfortunately lost, so the repository mainly contains test/template images.

This obviously limits how well the results can be reproduced.

What I would improve

Looking at it now, I would:

  • improve filtering of bad matches
  • make the pipeline cleaner
  • handle outliers more robustly

Repo

https://github.com/BabbaWaagen/AstroPi


If you’ve worked with similar approaches or have ideas on improving matching quality, I’d be interested.

Top comments (0)