Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Mean shift

From Wikipedia, the free encyclopedia
Mathematical technique
Part of a series on
Machine learning
anddata mining

Mean shift is anon-parametricfeature-space mathematical analysis technique for locating the maxima of adensity function, a so-calledmode-seeking algorithm.[1] Application domains includecluster analysis incomputer vision andimage processing.[2]

History

[edit]

The mean shift procedure is usually credited to work by Fukunaga and Hostetler in 1975.[3] It is, however, reminiscent of earlier work by Schnell in 1964.[4]

Overview

[edit]

Mean shift is a procedure for locating the maxima—themodes—of a density function given discrete data sampled from that function.[1] This is an iterative method, and we start with an initial estimatex{\displaystyle x}. Let akernel functionK(xix){\displaystyle K(x_{i}-x)} be given. This function determines the weight of nearby points for re-estimation of the mean. Typically aGaussian kernel on the distance to the current estimate is used,K(xix)=ec||xix||2{\displaystyle K(x_{i}-x)=e^{-c||x_{i}-x||^{2}}}. The weighted mean of the density in the window determined byK{\displaystyle K} is

m(x)=xiN(x)K(xix)xixiN(x)K(xix){\displaystyle m(x)={\frac {\sum _{x_{i}\in N(x)}K(x_{i}-x)x_{i}}{\sum _{x_{i}\in N(x)}K(x_{i}-x)}}}

whereN(x){\displaystyle N(x)} is the neighborhood ofx{\displaystyle x}, a set of points for whichK(xix)0{\displaystyle K(x_{i}-x)\neq 0}.

The differencem(x)x{\displaystyle m(x)-x} is calledmean shift in Fukunaga and Hostetler.[3] Themean-shift algorithm now setsxm(x){\displaystyle x\leftarrow m(x)}, and repeats the estimation untilm(x){\displaystyle m(x)} converges.

Although the mean shift algorithm has been widely used in many applications, a rigid proof for the convergence of the algorithm using a general kernel in a high dimensional space is still not known.[5] Aliyari Ghassabeh showed the convergence of the mean shift algorithm in one dimension with a differentiable, convex, and strictly decreasing profile function.[6] However, the one-dimensional case has limited real world applications. Also, the convergence of the algorithm in higher dimensions with a finite number of the stationary (or isolated) points has been proved.[5][7] However, sufficient conditions for a general kernel function to have finite stationary (or isolated) points have not been provided.

Gaussian Mean-Shift is anExpectation–maximization algorithm.[8]

Details

[edit]

Let data be a finite setS{\displaystyle S} embedded in then{\displaystyle n}-dimensional Euclidean space,X{\displaystyle X}. LetK{\displaystyle K} be a flat kernel that is the characteristic function of theλ{\displaystyle \lambda }-ball inX{\displaystyle X},

K(x)={1if xλ0if x>λ{\displaystyle K(x)={\begin{cases}1&{\text{if}}\ \|x\|\leq \lambda \\0&{\text{if}}\ \|x\|>\lambda \\\end{cases}}}

In each iteration of the algorithm,sm(s){\displaystyle s\leftarrow m(s)} is performed for allsS{\displaystyle s\in S} simultaneously. The first question, then, is how to estimate the density function given a sparse set of samples. One of the simplest approaches is to just smooth the data, e.g., by convolving it with a fixed kernel of widthh{\displaystyle h},

f(x)=iK(xxi)=ik(xxi2h2){\displaystyle f(x)=\sum _{i}K(x-x_{i})=\sum _{i}k\left({\frac {\|x-x_{i}\|^{2}}{h^{2}}}\right)}

wherexi{\displaystyle x_{i}} are the input samples andk(r){\displaystyle k(r)} is the kernel function (orParzen window).h{\displaystyle h} is the only parameter in the algorithm and is called the bandwidth. This approach is known askernel density estimation or the Parzen window technique. Once we have computedf(x){\displaystyle f(x)} from the equation above, we can find its local maxima using gradient ascent or some other optimization technique. The problem with this "brute force" approach is that, for higher dimensions, it becomes computationally prohibitive to evaluatef(x){\displaystyle f(x)} over the complete search space. Instead, mean shift uses a variant of what is known in the optimization literature asmultiple restart gradient descent. Starting at some guess for a local maximum,yk{\displaystyle y_{k}}, which can be a random input data pointx1{\displaystyle x_{1}}, mean shift computes the gradient of the density estimatef(x){\displaystyle f(x)} atyk{\displaystyle y_{k}} and takes an uphill step in that direction.[9]

Types of kernels

[edit]

Kernel definition: LetX{\displaystyle X} be then{\displaystyle n}-dimensional Euclidean space,Rn{\displaystyle \mathbb {R} ^{n}}. The norm ofx{\displaystyle x} is a non-negative number,x2=xx0{\displaystyle \|x\|^{2}=x^{\top }x\geq 0}. A functionK:XR{\displaystyle K:X\rightarrow \mathbb {R} } is said to be a kernel if there exists aprofile,k:[0,]R{\displaystyle k:[0,\infty ]\rightarrow \mathbb {R} } , such that

K(x)=k(x2){\displaystyle K(x)=k(\|x\|^{2})}and

The two most frequently used kernel profiles for mean shift are:

Flat kernel

k(x)={1if xλ0if x>λ{\displaystyle k(x)={\begin{cases}1&{\text{if}}\ x\leq \lambda \\0&{\text{if}}\ x>\lambda \\\end{cases}}}

Gaussian kernel

k(x)=ex2σ2,{\displaystyle k(x)=e^{-{\frac {x}{2\sigma ^{2}}}},}

where the standard deviation parameterσ{\displaystyle \sigma } works as the bandwidth parameter,h{\displaystyle h}.

Applications

[edit]

Clustering

[edit]

Consider a set of points in two-dimensional space. Assume a circular window centered atC{\displaystyle C} and having radiusr{\displaystyle r} as the kernel. Mean-shift is a hill climbing algorithm which involves shifting this kernel iteratively to a higher density region until convergence. Every shift is defined by a mean shift vector. The mean shift vector always points toward the direction of the maximum increase in the density. At every iteration the kernel is shifted to the centroid or the mean of the points within it. The method of calculating this mean depends on the choice of the kernel. In this case if a Gaussian kernel is chosen instead of a flat kernel, then every point will first be assigned a weight which will decay exponentially as the distance from the kernel's center increases. At convergence, there will be no direction at which a shift can accommodate more points inside the kernel.

Tracking

[edit]

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. The confidence map is a probability density function on the new image, assigning each pixel of the new image a probability, which is the probability of the pixel color occurring in the object in the previous image. A few algorithms, such as kernel-based object tracking,[10] ensemble tracking,[11] CAMshift[12][13] expand on this idea.

Smoothing

[edit]

Letxi{\displaystyle x_{i}} andzi,i=1,...,n,{\displaystyle z_{i},i=1,...,n,} be thed{\displaystyle d}-dimensional input and filtered image pixels in the joint spatial-range domain. For each pixel,

Strengths

[edit]
  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, unlikek-means.

Weaknesses

[edit]
  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.

Availability

[edit]

Variants of the algorithm can be found in machine learning and image processing packages:

  • ELKI. Java data mining tool with many clustering algorithms.
  • ImageJ. Image filtering using the mean shift filter.
  • mlpack. Efficient dual-tree algorithm-based implementation.
  • OpenCV contains mean-shift implementation via cvMeanShift Method
  • Orfeo toolbox. A C++ implementation.
  • scikit-learn Numpy/Python implementation uses ball tree for efficient neighboring points lookup

See also

[edit]

References

[edit]
  1. ^abCheng, Yizong (August 1995). "Mean Shift, Mode Seeking, and Clustering".IEEE Transactions on Pattern Analysis and Machine Intelligence.17 (8):790–799.CiteSeerX 10.1.1.510.1222.doi:10.1109/34.400568.
  2. ^Comaniciu, Dorin; Peter Meer (May 2002). "Mean Shift: A Robust Approach Toward Feature Space Analysis".IEEE Transactions on Pattern Analysis and Machine Intelligence.24 (5):603–619.Bibcode:2002ITPAM..24..603C.CiteSeerX 10.1.1.160.3832.doi:10.1109/34.1000236.S2CID 691081.
  3. ^abFukunaga, Keinosuke; Larry D. Hostetler (January 1975). "The Estimation of the Gradient of a Density Function, with Applications in Pattern Recognition".IEEE Transactions on Information Theory.21 (1):32–40.doi:10.1109/TIT.1975.1055330.
  4. ^Schnell, P. (1964)."Eine Methode zur Auffindung von Gruppen".Biometrische Zeitschrift (in German).6 (1):47–48.doi:10.1002/bimj.19640060105.
  5. ^abAliyari Ghassabeh, Youness (2015-03-01)."A sufficient condition for the convergence of the mean shift algorithm with Gaussian kernel".Journal of Multivariate Analysis.135:1–10.doi:10.1016/j.jmva.2014.11.009.
  6. ^Aliyari Ghassabeh, Youness (2013-09-01). "On the convergence of the mean shift algorithm in the one-dimensional space".Pattern Recognition Letters.34 (12):1423–1427.arXiv:1407.2961.Bibcode:2013PaReL..34.1423A.doi:10.1016/j.patrec.2013.05.004.S2CID 10233475.
  7. ^Li, Xiangru; Hu, Zhanyi; Wu, Fuchao (2007-06-01). "A note on the convergence of the mean shift".Pattern Recognition.40 (6):1756–1762.Bibcode:2007PatRe..40.1756L.doi:10.1016/j.patcog.2006.10.016.
  8. ^Carreira-Perpinan, Miguel A. (May 2007). "Gaussian Mean-Shift Is an EM Algorithm".IEEE Transactions on Pattern Analysis and Machine Intelligence.29 (5):767–776.Bibcode:2007ITPAM..29..767C.doi:10.1109/tpami.2007.1057.ISSN 0162-8828.PMID 17356198.S2CID 6694308.
  9. ^Richard Szeliski, Computer Vision, Algorithms and Applications, Springer, 2011
  10. ^Comaniciu, Dorin; Visvanathan Ramesh; Peter Meer (May 2003). "Kernel-based Object Tracking".IEEE Transactions on Pattern Analysis and Machine Intelligence.25 (5):564–575.Bibcode:2003ITPAM..25..564C.CiteSeerX 10.1.1.8.7474.doi:10.1109/tpami.2003.1195991.S2CID 823678.
  11. ^Avidan, Shai (2005). "Ensemble Tracking".2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05). Vol. 2. San Diego, California: IEEE. pp. 494–501.doi:10.1109/CVPR.2005.144.ISBN 978-0-7695-2372-9.PMID 17170479.S2CID 1638397.{{cite book}}:|journal= ignored (help)
  12. ^Gary Bradski (1998)Computer Vision Face Tracking For Use in a Perceptual User InterfaceArchived 2012-04-17 at theWayback Machine, Intel Technology Journal, No. Q2.
  13. ^Emami, Ebrahim (2013). "Online failure detection and correction for CAMShift tracking algorithm".2013 8th Iranian Conference on Machine Vision and Image Processing (MVIP). Vol. 2. IEEE. pp. 180–183.doi:10.1109/IranianMVIP.2013.6779974.ISBN 978-1-4673-6184-2.S2CID 15864761.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mean_shift&oldid=1303434246"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp