Mean shift: Difference between revisions
fix mistake in name |
→Code implementations: links to the Mathematica MeanShift function and MeanShiftFilter reference page. |
||
Line 75: | Line 75: | ||
* [http://sourceforge.net/projects/opencvlibrary/ OpenCV] contains mean-shift implementation via cvMeanShift Method |
* [http://sourceforge.net/projects/opencvlibrary/ OpenCV] contains mean-shift implementation via cvMeanShift Method |
||
* [http://code.google.com/p/aiphial/ Aiphial]. Java-based mean-shift implementation for numeric data clustering and image segmentation |
* [http://code.google.com/p/aiphial/ Aiphial]. Java-based mean-shift implementation for numeric data clustering and image segmentation |
||
* ''Mathematica'' [http://reference.wolfram.com/mathematica/ref/MeanShift.html MeanShift] function |
|||
* ''Mathematica'' [http://reference.wolfram.com/mathematica/ref/MeanShiftFilter.html MeanShiftFilter]. |
|||
[[Category:Computer vision]] |
[[Category:Computer vision]] |
Revision as of 19:59, 21 December 2010
Mean-shift is a non-parametric feature-space analysis technique[1]. Application domains include clustering in computer vision and image processing[2].
History
The mean shift procedure was originally presented in 1975 by Fukunaga and Hostetler. [3]
Overview
Mean shift is a procedure for locating the maxima of a density function given discrete data sampled from that function.[1] It is useful for detecting the modes of this density.[1]. This is an iterative method, and we start with an initial estimate . Let a kernel function be given. This function determines the weight of nearby points for re-estimation of the mean. Typically we use the Gaussian kernel on the distance to the current estimate, . The weighted mean of the density in the window determined by is
where is the neighborhood of , a set of points for which .
The mean-shift algorithm now sets , and repeats the estimation until converges to
Mean Shift for Tracking
The mean shift algorithm can be used for visual tracking. The simplest such algorithm would create a confidence map in the new image based on the color histogram of the object in the previous image, and use mean shift to find the peak of a confidence map near the object's old position. A few algorithms, such as Ensemble Tracking(Avidan, 2001), expand on this idea.
See also
References
- ^ a b c Cheng, Yizong (August 1995). "Mean Shift, Mode Seeking, and Clustering". IEEE Transactions on Pattern Analysis and Machine Intelligence. 17 (8). IEEE: 790–799. doi:10.1109/34.400568.
- ^ Comaniciu, Dorin (May 2002). "Mean Shift: A Robust Approach Toward Feature Space Analysis". IEEE Transactions on Pattern Analysis and Machine Intelligence. 24 (5). IEEE: 603–619. doi:10.1109/34.1000236.
{{cite journal}}
:|access-date=
requires|url=
(help); Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Fukunaga, Keinosuke (January 1975). "The Estimation of the Gradient of a Density Function, with Applications in Pattern Recognition". IEEE Transactions on Information Theory. 21 (1). IEEE: 32–40. doi:10.1109/TIT.1975.1055330. Retrieved 2008-02-29.
{{cite journal}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help)
Code implementations
- EDISON library. C++ implementation of mean-shift-based image segmentation
- OpenCV contains mean-shift implementation via cvMeanShift Method
- Aiphial. Java-based mean-shift implementation for numeric data clustering and image segmentation
- Mathematica MeanShift function
- Mathematica MeanShiftFilter.