GithubHelp home page GithubHelp logo

longsui / gyroflow-py Goto Github PK

View Code? Open in Web Editor NEW

This project forked from elvinc/gyroflow

0.0 0.0 0.0 10.54 MB

[INACTIVE LEGACY VERSION, FIND THE PROJECT HERE: https://github.com/gyroflow/gyroflow] Video stabilization using IMU motion data from internal or external logs

Home Page: http://gyroflow.xyz

License: GNU General Public License v3.0

C++ 3.10% Python 96.90%

gyroflow-py's Introduction

Warning: This is the legacy version, find the project here: https://github.com/gyroflow/gyroflow

Gyroflow - Video stabilization using gyroscope data targeting drone footage

Join the Gyroflow Discord server for discussion and support.

A program built around Python, OpenCV, and PySide2 for video stabilization using gyroscope data.

The project consists of three core parts: A utility for the generation of lens undistortion preset, a utility for stabilizing footage using gyro data, and a utility for stretching 4:3 video to 16:9 using non-linear horizontal stretching (similar to GoPro's superview).

The main goal of creating something that can stabilize footage based on blackbox gyro data has mostly been achieved. Moving forwards, more work will be done to improve the quality of the result.

The launcher containing all the utilities is available by executing gyroflow.py if all the dependencies are met. Otherwise a binary can be found over in releases. Also, check out the wiki where there's some more information about the camera calibration and video stabilization process.

Run using python and Poetry:

Note: Try the dev branch for the newest features.

  • Install poetry
  • Clone or download the files from this repo
  • Navigate to the folder using a commandline and install dependencies using poetry install
  • Run the application using poetry run python gyroflow.py

Other things to check out:

General recording tips

  • Use the settings that give the widest possible field of view (more data to work with). For a lot of cameras, this is in the 4:3 aspect ratio.
  • If using the main drone flight controller for logging, the camera should be hardmounted.
  • If using a secondary logger on the camera or internal camera logging, some soft mounting is preferred to isolate vibrations.

Status

Sample clips:

Working:

  • Videoplayer based on OpenCV and Pyside2
  • Gyro integration using quaternions
  • Non-linear stretch utility
  • Basic video import/export
  • Camera calibration utility with preset import/export
  • GoPro metadata import
  • Symmetrical slerp-based quaternion low-pass filter
  • Blackbox data import
  • Undistort and rotation perspective transform
  • Semi-automatic temporal gyro/video sync.
  • Blackbox orientation handling and wide interval sync.
  • Stabilization UI without video player
  • (Basic) gyro orientation presets for GoPro cameras
  • Frame blending timelapse/hyperlapse
  • Automatic determination of required crop
  • Native support for insta360 gyro
  • Support for high speed video
  • GoPro/Insta360 as gyro logger for cinema cameras.
  • Basic prores import/export through ffmpeg
  • Modular/improved smoothing methods
  • Support for non-square pixel aspect ratios
  • Incorporate acceleration data in orientation estimation for horizon lock
  • Audio handling
  • .gyroflow file with synced data

gyroflow-py's People

Contributors

alexagv avatar amzd avatar aphobius avatar elvinc avatar erikgoldenstein avatar ilya-epifanov avatar konradit avatar nikel9o avatar nivim avatar soukron avatar u3dreal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.