Skin type classification and clustering

2 次查看(过去 30 天)
Hi,
i was asked to try and classify skin types according to Fitzpatrick Scale. As a first attempt, i tried doing the following:
1) Collecting L*a*b* samples (actually only the a and b components) from skin patches of different people (collectSamples.m script) 2) Finding a Gaussian Mixture Model of 6 (number of skin types) components using the EM algorithm (training.m script) 3) Given a certain skin image as input, color it according to which clusters its a*b* samples fall into and set the dominant skin type as the id of the most used color cluster (findSkinTones() function).
Fitzpatrick scale takes into consideration other things besides color, but for the moment i'd be happy to distinguish between different color clusters. I almost never programmed in Matlab before so the code is very crude (besides being unfinished).
I'm having the following problems:
a) The clusters i get from EM seem unreasonable when plotted; b) When i try to color/cluster a given input skin image portions of the background seem to be colored too, although they should not.
I can't upload files bigger than 5 MB, so i'll just use dropbox instead: sources (dropbox host)
P.s. I was also thinking that a better strategy could be using entropy and average color features to train a support vector machine or neural network. What do you think?

回答(1 个)

Rushikesh Tade
Rushikesh Tade 2015-6-26
Hi Adriano,
Try doing this:
  • Use k-NN classifier, use the Fitzpatrick Scale color ranges for the training.
  • Calculate Average color of Skin (its easy detect non_black pixels in image and average them). Use k-NN to detect skin type.
  • You can do the clustering by using same method of averaging the then doing K-Means for each sample image.
  1 个评论
Adriano Romano
Adriano Romano 2017-1-21
Hi Rushikesh,
thank you and sorry for the late answer. Since some people have asked if i managed to solve this, i'll leave a presentation here explaining what i did and that will hopefully help others on the matter.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by