All Projects → ishank-juneja → L1-optimal-paths-Stabilization

ishank-juneja / L1-optimal-paths-Stabilization

Licence: MIT license
Video Stabilization with the L1 optimal camera paths technique.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to L1-optimal-paths-Stabilization

SimplexSolver
An easy-to-use Simplex solver class for linear programming.
Stars: ✭ 18 (-45.45%)
Mutual labels:  linear-programming
blt
Lattice-based integer linear programming solver
Stars: ✭ 60 (+81.82%)
Mutual labels:  linear-programming
pydata-london-2018
Slides and notebooks for my tutorial at PyData London 2018
Stars: ✭ 22 (-33.33%)
Mutual labels:  linear-programming
Video-Stabilization-and-image-mosaicing
video stabilization: stabilize the videos which is taken from wavering camera. Image mosaicing: stitches multiple, overlapping snapshot images of a video together in order to produce one large image.
Stars: ✭ 16 (-51.52%)
Mutual labels:  video-stabilization
minizinc-python
Access to all MiniZinc functionality directly from Python
Stars: ✭ 92 (+178.79%)
Mutual labels:  linear-programming
minilp
A pure Rust linear programming solver
Stars: ✭ 61 (+84.85%)
Mutual labels:  linear-programming
gibbous
Convex optimization for java and scala, built on Apache Commons Math
Stars: ✭ 17 (-48.48%)
Mutual labels:  linear-programming
swap
A Solver for the Wavelength Assignment Problem (RWA) in WDM networks
Stars: ✭ 27 (-18.18%)
Mutual labels:  linear-programming
Linear-Algebra-and-Its-Applications-notes
《线性代数及其应用》笔记
Stars: ✭ 196 (+493.94%)
Mutual labels:  linear-programming
fpl-optimiser
Optimise FPL squads
Stars: ✭ 50 (+51.52%)
Mutual labels:  linear-programming
EKR-SIMPLEX-PROBLEM-CALCULATOR
simplex problem calculator
Stars: ✭ 13 (-60.61%)
Mutual labels:  linear-programming
antaresViz
ANTARES Visualizations
Stars: ✭ 19 (-42.42%)
Mutual labels:  linear-programming
linearprogramming
Code for the Modeling and Solving Linear Programming with R book
Stars: ✭ 38 (+15.15%)
Mutual labels:  linear-programming
Machine-Learning
🌎 I created this repository for educational purposes. It will host a number of projects as part of the process .
Stars: ✭ 38 (+15.15%)
Mutual labels:  linear-programming
SDLP
Seidel's LP Algorithm: Linear-Complexity Linear Programming for Small-Dimensional Variables
Stars: ✭ 36 (+9.09%)
Mutual labels:  linear-programming
Gosl
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
Stars: ✭ 1,629 (+4836.36%)
Mutual labels:  linear-programming
emhass
emhass: Energy Management for Home Assistant, is a Python module designed to optimize your home energy interfacing with Home Assistant.
Stars: ✭ 54 (+63.64%)
Mutual labels:  linear-programming
cddlib
An efficient implementation of the Double Description Method
Stars: ✭ 71 (+115.15%)
Mutual labels:  linear-programming
lpsolvers
Linear programming solvers in Python with a unified API
Stars: ✭ 20 (-39.39%)
Mutual labels:  linear-programming
rmpk
Mixed Integer Linear and Quadratic Programming in R
Stars: ✭ 37 (+12.12%)
Mutual labels:  linear-programming

Video Stabilization


Video Stabilization with L1 optimal camera paths

This video stabilization method uses a Linear Programming formulation to smoothen out the camera path. It is successful in removing bith low and high frequency disturbances. The method is quite light weight compared to other offline video stabilization techniques and is (or once was) deployed as YouTube's video-stabilization algorithm.

At a high level, the procedure followed by the algorithm is to stabilize videos offline by,

  1. Obtaining the Shaky camera trajectory for the entire frame sequence
  2. Smoothening this camera trajectory using an averaging (or otherwise any low pass) filter
  3. Use the stabilized camera trajectory to construct a stabilized video sequence by applying warping transforms since transforms in the homogeneous coordinate system can be composed together

Requirements

  • python3
  • numpy
  • opencv
  • matplotlib
  • PuLP

Usage Instructions

python3 L1optimal.py -i "$video" -o "$out_name" -crop-ratio 0.7 --trajPlot

Command line parameters-

-i is the complete path to the input video, required

-o is the complete path to the output video, required

-crop-ratio is a user defined hyper parameter that tells the optimization procedure how much it can crop, required

--trajPlot is a True/False parameter. When the flag is passed the before and after camera trajectories are plotted in the folder of the file $out_name. If specifying make sure to include a folder called plots/ in the same directory as $out_name else an error will be thrown.

References

[1] Auto directed video stabilization with Robust L1 optimal camera paths

[2] MATLAB implementation

Related Work

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].