next up previous
Next: 4. Blob Space Up: Fuzzy Doc Recognition With Previous: 2. Color Space

3. Feature Space

A series of histograms were created from the training data, following a per-pixel RGB to HSV conversion. First, the hue angle densities were computed, shown in Figure 5, displaying excellent segmentation possibilities. Doc's beard isn't included in these graphs as it was determined to be pure white. A histogram depicting saturation density reveals the purity of the colors in each region, displayed in Figure 6. Notably, Doc's skin colors are observed to have low saturation values. The density of value, or intensity, as shown in Figure 7, appears to be nearly uncorrelated to the training data.


  
Figure 5: A histogram formed from hue frequencies extracted from the swatches shows good separation.
\begin{figure}\begin{center}
\epsfig{file=huedensity.eps,width=3.5in}\end{center}\end{figure}


  
Figure 6: A histogram formed from saturation frequencies extracted from the swatches shows the skin is relatively un-saturated.
\begin{figure}\begin{center}
\epsfig{file=saturationdensity.eps,width=3.5in}\end{center}\end{figure}


  
Figure 7: A histogram formed from value frequencies extracted from the swatches shows little apparent information in value data.
\begin{figure}\begin{center}
\epsfig{file=valuedensity.eps,width=3.5in}\end{center}\end{figure}

A 2-dimensional plot was constructed by creating 2D feature vectors from the hue and saturation data for each pixel in the training color swatches. Figure 8 is a representation of these feature vectors, with hue angle defined along the X-axis and saturation defined along the Y-axis. It is clear from this plot that one can define regions which bound areas that belong to one section of Doc.


  
Figure 8: Hue and saturation data can be used to form 2-dimensional feature vectors.
\begin{figure}
\begin{center}
\epsfig{file=HS_clean.decisionspace.eps,width=3.5in}\end{center}\end{figure}

In Figure 9 a set of lines has been positioned to define these regions. Through a simple dot product operation, an algorithm can ascertain on which side of each line a test feature vector lies, and therefore whether or not the test feature vector lies in each region.


  
Figure 9: Regions around clusters of feature vectors can be created to segment out features which might correspond to the training data.
\begin{figure}
\begin{center}
\epsfig{file=HS.regions.eps,width=3.5in}\end{center}\end{figure}

However, it was found that this means of segmenting colors resulted in rather poor separation of the Doc's skin from the background, shown in Figure 10. By ignoring value, or intensity, we have ignored one element which is crucial to successful classification of Doc's skin colors. Returning to Figure 7, one observes that Doc's skin has an intensity between eighty and one-hundred - even this rough constraint rejects 80% of the previously possible clutter.


  
Figure 10: Ignoring value causes poor segmentation of Doc's skin color.
\begin{figure}
\begin{center}
\epsfig{file=doc4/doc4.badseg.eps,width=3.5in}\end{center}\end{figure}

A set of simple ranges over hue, saturation, and value was created for each of the four sections of Doc. Classifying each pixel in the recurring test image of Doc produces the result seen in Figure 11, in which each of Doc's parts has been successfully segmented from the clutter.


  
Figure 11: Utilizing HSV cylinder sections for segmentation offers excellent color separation.
\begin{figure}
\begin{center}
\epsfig{file=doc4/doc4.goodseg.eps,width=3.5in}\end{center}\end{figure}


next up previous
Next: 4. Blob Space Up: Fuzzy Doc Recognition With Previous: 2. Color Space
Mike Andrews
1999-05-09