Automated Camera Stabilization and Calibration for Intelligent Transportation Systems - Dynamic Stabilization
- See the project website of Providentia++
- See the overview repository for general information about my Guided Research
- See the website for information and evaluation results of the project
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
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.
This part is currently work in progress and will be updated in the next days.
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.
These dependencies are pulled by CMake when the project is built. You do not
have to install them manually.