Giter Site home page Giter Site logo

rprata / ffmean-shift Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 3.0 43 KB

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

License: MIT License

C++ 97.43% Makefile 2.57%
libav sdl c-plus-plus algorithm image image-processin tracking tracking-pixels mean-shift

ffmean-shift's Introduction

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.

ffmean-shift's People

Contributors

rprata avatar samypesse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.