Shaky video is something encountered pretty frequently. Stabilizing a shaky camera is something that can be accomplished in some other software. But what about other type of motion or stability? For stabilizing something beyond just a jittery cameraman, what do you do?
This is why Amped Five has three different types of stabilization to work with multiple types of problems. Here is a quick rundown for these filters found in the Stabilization filter group:
1) Local Stabilization
What it does: Use for tracking an object or a subject and keep it steady in all the frames (license plates, faces, etc.). The subject or object is in motion.
When to use it: It’s the best one to use as a preprocessing step for frame averaging (typical in CCTV cases). When it works, it the fastest and the most precise method. Within the filter’s settings, the user can have total control when they use the various tracking settings discussed below.
Limitations: The object of interest must differ only in position (not zoom, rotation or changing angle). The only downside is that the object of interest must be present in all the frames, otherwise the stabilization calculations do not work correctly.
2) Global stabilization:
What it does: Use to globally stabilize a whole scene. Since it does not require any specific object to be stabilized and to be present in the whole scene, so it requires the least amount of interaction.
When to use it: This is the best choice for stabilizing shaking video like those coming from camera phones, police operations, helmet mounted cameras etc. where the camera movement is the issue.
Limitations: The downside is that this method is less precise than local stabilization but works in more situations, like when the camera is panning a scene.
3) Perspective Registration
What it does: It is like local stabilization but allows the stabilization of any kind of movement, even perspective changes with subjects. It is designed to work only on planar objects like license plates.
When to use it: This is typically used as preprocessing step for frame averaging in CCTV video: an example application is the frame integration of a car approaching a dome camera.
Limitations: it’s mostly manual, so it needs the user to set four points for all the frames, but the result can then be automatically optimized by the algorithm
How to use Local Stabilization
Since Local Stabilization has the most frequent application, here is how to optimize it using the standard tracking and selection settings available in all tools.
For the Local Stabilization the most useful modes are Static Tracking and Dynamic Tracking, but here I will describe all the modes. The description is relevant to all local filters: the difference is that, while all the other filters will move the selection around the target, in the Local Stabilization filter the selection will be kept steady and the rest of the image will be “moved around” to keep the tracked area in the same position.
These are the possible settings:
- Whole Image: The entire image is filtered in all the frames.
- Static Selection: The selected area will be the same in all the frames.
- Static Tracking: The selected area will be tracked in all the frames with the same reference
o For example: If you set frame 10 with selection [points 100, 100, 40, 40], as a reference the, algorithm will try to find in all the other frames the best matching area to the reference one. The usage depends on context where it can be less than ideal if the content of the tracked area changes a lot (like tracking a person who keeps turning his head), the reference area won’t be correct anymore due to context changes.
The selected area will be tracked in all the frames updating the reference after every frame.
It is like Static Tracking, with the difference being that the tracked area will be updated after every frame.
Even if the subject changes, and it does so gradually, and the stabilization will continue to work. That is until the tracking is wrong for one frame, it will be wrong in all the subsequent frames. This is dependent on the rate of change for the subject. For something like a car or person moving towards a camera, it is generally fine.
For something moving very quickly, it can be problematic since every frame depends on the previous the whole video (or the selected part must be pre-processed).
In general this works more often than Static Tracking but is a bit less precise.
Since Five is so fast to work with, we suggest to first try Static Tracking, and then try Dynamic Tracking.
This method allows the most amount of user control over the tracking and stability. The user can add different selections in various frames.
The selection of intermediate position will be calculated simply interpolating the set reference frames (regardless of the content of the area).
Please note that all selection support the possibility to add several reference frames:
- If there is only one reference: it will be used for all frames.
- If there are two or more references, all intermediate positions will be calculated accordingly. Tracking will be disabled before the first reference frame and after the last reference frame.
- If you want to interrupt the tracking only for some frames of the video add an empty selection to the frame where you want to start the interruption.