Skin type classification and clustering
显示 更早的评论
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.
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
2015-6-26
0 个投票
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Gaussian Mixture Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!