/Multimedia-VectorView

A simple python project that calculates and visualizes any kind of video's motion vectors. Made for UniCT's LM-18 Multimedia Course

Primary LanguagePython

Multimedia VectorView

A simple python project that calculates and visualizes any kind of video's motion vectors.

Motion estimation tab

image

Load up a video, choose the algorithm to be used (and optionally, change their parameters), and watch the magic happen. You can stop the video at any time. Playback can be stopped / resumed. You can also choose different similarity metrics (right now only MAD and SS, more can be added easily).

Tracking tab

image

The tracking tab is similar. Load a video, draw a bounding box over the area you wish to track, and the program will do its job. You can stop the tracking to redraw the bounding box in case it loses track of the target, and then resume the playback.

Press ESC to quit the application. Currently, this is the only way to load a new video.

Implementation stages (aka makeshift todo list)

In no particular order:

  • Repository initialization
  • Open video from file system
  • UI
  • EBMA implementation
  • MV on-top visualization
  • Bounding box drawing
  • BB-Based Motion tracking
  • EBMA alternatives
  • Documentation
  • Final Report

Extra:

  • Anti-Jitter filter (FPS or MVI)

  • File restructure

  • Improve code readability

  • Add a method to reset the loaded video.

  • better openCV2 usage

  • FAST - won't do, already implemented in ORB

Instructions

Subject to change.

  1. Python version used: 3.12.x
  2. Create a .venv virtual environment and install the requirements using pip, with the constraints: pip install -r .\requirements.txt
  3. Run source/main_window.py and you're good to go!

Troubleshooting

This step is only needed if you have trouble in loading or playing the video.