Skip to content

rprata/ffmean-shift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FFMean Shift

Real Time Tracking is a native implementation based in Mean Shift framework using LIBAV and SDL libraries (don't use OpenCV Library).


What's Mean Shift?

Mean shift is a non-parametric feature-space analysis technique for locating the maxima of a density function, a so-called mode-seeking algorithm. Application domains include (computer vision and image processing area):

  • Clustering;
  • Tracking;
  • Smoothing;

Overview

Mean shift is a procedure for locating the max point of a density function given discrete data sampled from that function. It is useful for detecting the modes of this density. This is an iterative method, and we start with an initial estimate. For more information, see the article on Wikipedia.

Strengths

  1. Mean shift is an application-independent tool suitable for real data analysis.
  2. Does not assume any predefined shape on data clusters.
  3. It is capable of handling arbitrary feature spaces.
  4. The procedure relies on choice of a single parameter: bandwidth.
  5. The bandwidth/window size 'h' has a physical meaning, unlike k-means.

Weaknesses

  1. The selection of a window size is not trivial.
  2. Inappropriate window size can cause modes to be merged, or generate additional “shallow” modes.
  3. Often requires using adaptive window size.

LIBAV

Libav is a friendly and community-driven effort to provide its users with a set of portable, functional and high-performance libraries for dealing with multimedia formats of all sorts. It originates from the FFmpeg codebase, but goes its own way these days, providing its users with reliable releases and a clear vision how to go forward.


SDL

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.


Algorithm Implementation

The implementation is based on the algorithm described on this paper (page 4).


Requirements


Using FFMean Shift

In shell console, enter in directory:

$ cd ffmean-shift/src

To compile the application:

$ make

To run application:

$ ./ffmean-shift /dev/video0


Results

You can view the results in these videos

ffmean shift results

ffmean shift results


License

This software is licensed under MIT.

About

Real Time Tracking based in Mean Shift framework using LIBAV and SDL libraries (Without using OpenCV Library).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published