All Projects → sudheerachary → Mesh Flow Video Stabilization

sudheerachary / Mesh Flow Video Stabilization

Online video stabilization using a novel MeshFlow motion model

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mesh Flow Video Stabilization

Imager
Automated image compression for efficiently distributing images on the web.
Stars: ✭ 266 (+72.73%)
Mutual labels:  image-processing, optimization
Statically
⚡️ The best free and fast CDN for images, CSS, JavaScript, and open source.
Stars: ✭ 299 (+94.16%)
Mutual labels:  image-processing, optimization
Teaching
Teaching Materials for Dr. Waleed A. Yousef
Stars: ✭ 435 (+182.47%)
Mutual labels:  image-processing, optimization
Metasprite
A fast, self-contained, highly customizable Aseprite-to-Unity importer.
Stars: ✭ 148 (-3.9%)
Mutual labels:  image-processing
Easyengine
Command-line control panel for Nginx Server to manage WordPress sites running on Nginx, PHP, MySQL, and Let's Encrypt
Stars: ✭ 1,881 (+1121.43%)
Mutual labels:  optimization
Cyclegan Keras
Keras implementation of CycleGAN using a tensorflow backend.
Stars: ✭ 152 (-1.3%)
Mutual labels:  image-processing
Gpuimage X
A Cross-platform (for both Android & iOS) Framework for GPU-based Filters, Video and Image Processing.
Stars: ✭ 154 (+0%)
Mutual labels:  image-processing
Diffimg
Differentiate images in python - get a ratio or percentage difference, and generate a diff image
Stars: ✭ 146 (-5.19%)
Mutual labels:  image-processing
Swissarmylib
Collection of helpful utilities we use in our Unity projects.
Stars: ✭ 154 (+0%)
Mutual labels:  optimization
Ipyplot
IPyPlot is a small python package offering fast and efficient plotting of images inside Python Notebooks. It's using IPython with HTML for faster, richer and more interactive way of displaying big numbers of images.
Stars: ✭ 152 (-1.3%)
Mutual labels:  image-processing
Webdnn
The Fastest DNN Running Framework on Web Browser
Stars: ✭ 1,850 (+1101.3%)
Mutual labels:  optimization
Cosmo.jl
COSMO: Accelerated ADMM-based solver for convex conic optimisation problems (LP, QP, SOCP, SDP, ExpCP, PowCP). Automatic chordal decomposition of sparse semidefinite programs.
Stars: ✭ 149 (-3.25%)
Mutual labels:  optimization
Hltool
Go 开发常用工具库, Google2步验证客户端,AES加密解密,RSA加密解密,钉钉机器人,邮件发送,JWT生成解析,Log,BoltDB操作,图片操作,json操作,struct序列化
Stars: ✭ 151 (-1.95%)
Mutual labels:  image-processing
Github link creator
GitHub Link Card Creator lets you generate GitHub images has links to repositories.
Stars: ✭ 149 (-3.25%)
Mutual labels:  image-processing
Fall Detection
Human Fall Detection from CCTV camera feed
Stars: ✭ 154 (+0%)
Mutual labels:  image-processing
Evalml
EvalML is an AutoML library written in python.
Stars: ✭ 145 (-5.84%)
Mutual labels:  optimization
Color recognition
🎨 Color recognition & classification & detection on webcam stream / on video / on single image using K-Nearest Neighbors (KNN) is trained with color histogram features by OpenCV.
Stars: ✭ 154 (+0%)
Mutual labels:  image-processing
Mlv App
All in one MLV processing app that is pretty great. Download:
Stars: ✭ 150 (-2.6%)
Mutual labels:  image-processing
Isketchnfill
Software that can autocomplete sketches as the user starts drawing.
Stars: ✭ 151 (-1.95%)
Mutual labels:  image-processing
Yopo You Only Propagate Once
Code for our nips19 paper: You Only Propagate Once: Accelerating Adversarial Training Via Maximal Principle
Stars: ✭ 152 (-1.3%)
Mutual labels:  optimization

stable-output

HitCount

Mesh-Flow-Video-Stabilization

The MeshFlow is a spatial smooth sparse motion field with motion vectors only at the mesh vertexes. The MeshFlow is produced by assigning each vertex an unique motion vector via two median filters. The path smoothing is conducted on the vertex profiles, which are motion vectors collected at the same vertex location in the MeshFlow over time. The profiles are smoothed adaptively by a novel smoothing technique, namely the Predicted Adaptive Path Smoothing (PAPS), which only uses motions from the past.

Getting Started

  • To stabilize a video execute the script src/Stabilization.py

    • python Stabilization.py <path_to_video>
      
  • To run experiments ipython-notebook is present in src/mesh_flow.ipynb

  • The stable output video is saved to home directory of cloned repository

Prerequisites

  • Required Packages:

    • opencv: pip install --user opencv-python

    • numpy: pip install --user numpy

    • scipy: pip install --user scipy

    • tqdm: pip install --user tqdm

  • Optional Packages:

    • cvxpy: pip install --user cvxpy

Motion Propagation

Mesh Flow only operate on a sparse regular grid of vertex profiles, such that the expensive optical flow can be replaced with cheap feature matches. For one thing, they are similar because they both encode strong spatial smoothness. For another, they are different as one is dense and the other is sparse. Moreover, the motion estimation methods are totally different. Next, we show estimatation of spacial coherent motions at mesh vertexes.

Initial motion vectors

initial-motion-mesh

  • initial motion meshes are dumped into results/old_motion_vectors

Final motion vectors

final-motion-mesh

  • final motion meshes are dumped into results/new_motion_vectors

Predicted Adaptive Path Smoothing (PAPS)

A vertex profile represents the motion of its neighboring image regions. MeshFlow can smooth all the vertex profiles for the smoothed motions. It begin by describing an offline filter, and then extend it for online smoothing.

Path smoothening

path

  • Green is the optimized result
  • Blue is the motion vector accumulation
  • vertex profile paths are dumped into results/paths

Acknowledgments

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].