Mean-Shift and Camshift Tracking
In this section we will look at two techniques, mean-shift and camshift (where "camshift" stands for "continuously adaptive mean-shift"). The former is a general technique for data analysis (discussed in Chapter 9 in the context of segmentation) in many applications, of which computer vision is only one. After introducing the general theory of mean-shift, we'll describe how OpenCV allows you to apply it to tracking in images. The latter technique, camshift, builds on mean-shift to allow for the tracking of objects whose size may change during a video sequence.
Mean-Shift and Camshift Tracking
Mean-Shift
The mean-shift algorithm [149] is a robust method of finding local extrema in the density distribution of a data set. This is an easy process for continuous distributions; in that context, it is essentially just hill climbing applied to a density histogram of the data. [150] For discrete data sets, however, this is a somewhat less trivial problem.
The descriptor "robust" is used here in its formal statistical sense; that is, mean-shift ignores outliers in the data. This means that it ignores data points that are far away from peaks in the data. It does so by processing only those points within a local window of the data and then moving that window.
The mean-shift algorithm runs as follows.
Choose a search window:
its initial location;
its type (uniform, polynomial, exponential, or Gaussian);
its shape (symmetric or skewed, possibly rotated, rounded or rectangular); ...
Get Learning OpenCV now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.