如何检测肤色(黑色、棕色、白色)?
Posted
技术标签:
【中文标题】如何检测肤色(黑色、棕色、白色)?【英文标题】:How to detect skin color (Black, Brown, White)? 【发布时间】:2015-01-21 16:10:31 【问题描述】:假设给出一张从haar cascade中检测到的人脸图像作为例子。如何检测肤色(黑、棕、白)?
【问题讨论】:
什么是红色和黄色? ;Dstd::cin >> skinColor
拜托,别跟我打架:D
我会查看 RGB 值,将它们写下来,然后找出所有 3 个值之间的差异。
“白色”、“棕色”和“黑色”是什么意思?如果您尝试进行种族分类,请注意,有很多南欧人的皮肤比非洲裔美国人更黑,因此实际的 HLS 值不会有太大帮助。
【参考方案1】:
我建议你有两个选择: 1. 使用神经网络。为此,您需要训练 NN。我可以假设感知器就足够了。 2. 不同肤色的所有像素的总和会在不同的范围内。最小的将是黑色范围。第二个将是棕色的。第三个或最大的将是白色
【讨论】:
【参考方案2】:我建议使用混合高斯方法。
在 HSV 空间或 CIELab 空间中将三个类别 Black、Brown、White 中的每一个建模为两个或三个 Guassian 的混合物。您将使用期望最大化算法来学习这些。
【讨论】:
以上是关于如何检测肤色(黑色、棕色、白色)?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 plot_ly 饼图总是将 R 中的第 5 个值文本从白色变为黑色?