categories because the network groups with
little strict similarity criteria. Values closed to 1
imply more categories, each one with very
similar patterns. Default value is 0.9.
• Rho2: vigilance parameter of the network in the
testing stage. Values closed to 0 imply little
strict similarity criteria. Values closed to 1 make
the patterns be very similar to the created
categories to be included within them. Default
value is 0.9.
The main parameters in the skin color filter creation
are:
• beta: percentage of the patterns that a category
has to exceed with respect to the patterns in the
category with the largest number of colors so
that the category can be considered skin color
category. Default value is 0.02.
• delta: percentage of patterns that the category
with the largest number of colors classified by
the Fuzzy ART network has to exceed. Large
values of delta imply that the regions have to be
very homogeneous regarding color. Default
value is 0.05.
• epsilon: upper limit of the Euclidean distance
between a category and the biggest category so
that the category can be considered in the
classification process of the colors. Large values
of epsilon imply that the category can be more
separated so that more different categories are
taken into account. Default value is 0.2.
• mu: contribution of the saturation component of
the TSL color space in the Euclidean distance
calculation among categories. Default value is
1.
After selecting the values of all the parameters, a file
can be saved with this information so that these
values can then be used in the filter creation.
4.2 Skin Color Filter Creation
In this mode, a frame of a video sequence captured
by a webcam can be selected. In this frame, the skin
regions have to be manually selected. With the
computer mouse, the user selects the vertexes of the
polygonal region that determine each skin region in
the image. If some regions are selected within other
previously selected region, the interior regions will
be excluded from the exterior region. This is
interesting if the user wants to select the face
excluding the eyes, lips, or beard. To begin the
process of creating a skin filter, a parameter
configuration file has to be selected. With the values
that appear in this file and the selected region, the
Fuzzy ART neural network is trained.
The patterns used to train the network are the
chromaticity components (T and S) of the pixels in
the selected region because they can characterize
skin color optimally as explained in Section 2.
In the training process, the categories will be
committed as the chromaticity components of the
selected region be introduced in the Fuzzy ART
neural network a number of times specified by
num_rounds. After the training stage, a series of
committed categories that fulfill the rules fixed by
the parameters are associated with the skin color
characterized by the selected region. In the testing
stage, all the possible values of the chromaticity
components are introduced to the trained network.
From the RGB color space, 8 bits are used to
represent each color coordinate, so that there are
2
3x8
=16,777,216 colors. Each color in the RGB
space is converted to the TSL space. Each pair of T
and S values are introduced to the trained network so
that it is considered skin color (with all the possible
values of L) if it is assigned a committed skin color
category. From the testing of all the 16,777,216
colors in the RGB color space, a LUT is created to
give each color one of two different outputs, skin or
non-skin color. Thus, the created LUT can be used
to make real-time skin segmentation in videos
captured by a webcam. For each LUT (skin color
filter), the application saves in a log file the
information regarding the skin filter creation
including configuration parameters, the number of
pixels used to train the network, the number of
created categories, and the number of skin colors.
4.3 Skin Color Filter Performance
The application allows to compare the performance
of two skin color filters applied to the same video.
Fig. 1 shows the result of two different filters. The
pixels that are not colored (yellow on the left part
and green on the right part) are the ones that the
corresponding skin filter categorized as skin. The
left image is the result of using a filter created with
rho1=0.95 and rho2=0.9. The right image is the
result of using a filter created with rho1=0.9 and
rho2=0.9. The remaining parameters for creating
both filters were the default values. The bigger rho1
is, the more categories Fuzzy ART generates. This
way, with rho1=0.9, 12 categories were generated
and with rho1=0.95, 26 categories were generated. It
can be observed in Fig. 1 that rho1=0.9 gives rise to
a better skin segmentation.
Although skin color detection is good in both
images, with rho1=0.95 the larger number of created
categories causes that a significant part of the image
that does not correspond to skin is incorrectly
SELF ORGANIZING NEURAL NETWORK APPLICATION FOR SKIN COLOR SEGMENTATION
427