Skip to content

basil96/VideoF2B

 
 

Repository files navigation

VideoF2B

Documentation Status

Author's blog is here

VideoF2B is an open-source desktop application for tracing F2B Control Line Stunt competition flight figures in video.

Overview

Use this application to trace the path of a control line aircraft as it performs aerobatic maneuvers in F2B competition and compare it to regulation figures.

Authors: Alberto Solera, Andrey Vasilik

Documentation

Online documentation is here.

Features

  • Detects the movement of the aircraft and draw the trace of its centroid in video.

  • Draws an augmented-reality (AR) hemisphere that represents the flight envelope.

  • Displays template figures on the surface of the AR sphere according to Section 4.2.15 - "Description of Manoeuvres" of the FAI Sporting Code (Edition 2024). Manoeuvre diagrams are available in Annex 4J (Edition 2024) The latest versions of these regulations are available at the FAI Sporting Code page under Section 4 (Aeromodelling).

  • Allows the user to rotate and translate the AR sphere during video processing.

  • Includes a utility to perform camera calibration. This enables display of the AR sphere in videos.

  • Includes a utility to estimate the best camera placement in the field.

Features (planned)

  • Process live video in real time.

  • Project the detected points into the virtual sphere in engineering units to track the aircraft in 3D.

  • Perform the best possible fit of executed figures to the nominal figures.

  • Determine a score per figure.

Developer installation

All platforms

  • Create a virtual environment.

  • Clone the project from this repository and cd into the root directory.

  • Run pip install -e . in the virtual environment. This installs the required packages for development work, testing, and building of releases.

Linux

  • Build OpenCV for the virtual environment based on the instructions here.

Building a release

  • IMPORTANT: Create a clean virtual environment. Do not update setuptools in it. Verify that setuptools version is 56.0.0 via pip show setuptools.

  • Tag the latest stable commit in master with the desired version using a scheme that complies with PEP 440.

  • Switch to the project's root directory.

  • Enter the project's virtual environment.

  • Run the following commands:

    pip install -e .
    python setup.py build_exe
  • The first command installs the latest version of the project locally and updates the version file videof2b/version.py according to the state of the project's current Git tree. The second command invokes PyInstaller and builds a binary end-user executable in the dist directory.

  • Test the executable on target platforms.

  • Publish the release to the world.

Building documentation

  • Switch to the project's root directory.

  • Enter the project's virtual environment.

  • Run pip install -e .[docs]. This installs the latest version of the project and the docs extras locally.

  • Switch to the docs directory.

  • Run make html or make latex (make.bat ... on Windows) according to your target needs. The typical target is html. The resulting pages will be in the docs/build directory.

  • After making changes to documentation as needed, run make <target> to verify the results locally. If necessary during development, run make clean to wipe the generated documentation files.

  • This project's documentation is hosted on Read the Docs. When ready to publish, just push the changes to the main remote Git repository. Every push to the main repository triggers a new build of documentation on RTD. The build typically takes just a few minutes. Verify that the documentation build passes (see the "docs" badge at the top of this README). Verify that the online documentation reflects your changes.

External Dependencies

See setup.cfg.

IMPORTANT: at this time the imutils package used for development is a modified fork of the official package.