Skip to content

Dynamic Stabilization for jittery videos based on visual image features.

License

Notifications You must be signed in to change notification settings

MarcelBruckner-TUMProjects/DynamicStabilization

Repository files navigation

Automated Camera Stabilization and Calibration for Intelligent Transportation Systems - Dynamic Stabilization


Introduction

The cameras are constantly exposed to wind and vibrations from passing vehicles. These influences propagate into the video stream and result in jittery motion of the images. We propose a pipeline to counteract the shaky motions of the cameras using a digital image stabilization approach. The approach is based on visual image features that are matched between the current and a stable reference frame. The feature matching is used to minimize the reprojection-error between the frames and results in a homographic transformation. We use the transformation to align the static backgrounds of the frames, thus mitigating the real-world motion of the camera in image space.

Please see the report for in depth information about the dynamic stabilization procedure


Pipeline Overview

The uncalibrated camera pose.

The proposed dynamic stabilization pipeline.
The input is the video and a stable reference frame. The frames are segmented into the foreground and background to extract the static scene. On the static scene visual features are detected and the feature descriptors are matched. We use the homographic transformation minimizing the reprojection-error based on the matching to warp the video frame. The stabilized frame is used to update the background segmentation mask.


Running in Standalone Mode

This part is currently work in progress and will be updated in the next days.


Dependencies

External Dependencies

These dependencies have to be installed on your system. Follow their instructions on how to install them.

  • CUDA - You have to install CUDA and the Nvidia drivers according to your GPU.

There is no way to automate this proces as it is dependend on your system.


  • CMake - For building the libraries
  • Ceres Solver - The non-linear solver for the static calibration
  • OpenCV - With CUDA support for the dynamic stabilization

To facilitate the setup of CMake, Ceres and OpenCV you can use the setup script. This should install all necessary dependencies and pull & compile the libraries from source. This might be outdated by now, but I will update the script in the next days.
If compile errors arise, the CMake output is a good start to debug.

Internal Dependencies

These dependencies are pulled by CMake when the project is built. You do not have to install them manually.

About

Dynamic Stabilization for jittery videos based on visual image features.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages