【问题标题】:Bald detection using image processing使用图像处理进行秃头检测
【发布时间】:2015-11-09 09:17:26
【问题描述】:

我想知道是否有人可以为我提供一个指导来检测图片中的人是否秃头,或者更好的是,检测他有多少头发。 到目前为止,我试图检测面部和眼睛的位置。根据这些信息,我通过将眼睛上方的区域切割到面部的某些部分来粗略估计前额和秃头区域。

然后我提取 HOG 特征并使用 SVM 用秃头和非秃头图像训练系统。

现在,当我查看测试结果时,我看到一些照片被归类为秃头,但其中一些实际上是金色的头发或长额头,在切割过程后头发是不可见的。我正在使用 MATLAB 进行这些操作。

所以我知道这种方法似乎有点幼稚,但是您能否提出一种找出秃头区域或提取头发(如果存在)的方法。哪种方法最适合这种问题?

【问题讨论】:

  • 您需要正确定义问题。我们对您的数据一无所知。您既不会使用哪些数据进行训练,也不会使用哪些数据进行测试。如果它检测到金发碧眼的人很大胆,可能是因为您在训练集中没有任何金发碧眼的人。
  • 好吧,我有一个秃头数据集和一个非秃头数据集。 not-bald 数据集中一定有金发。我猜分类器把黄色的头发当作皮肤,也许这就是原因。

标签: matlab image-processing machine-learning computer-vision


【解决方案1】:

非常笼统,所以除非提供更多信息,否则答案是笼统的

  1. 使用计算机视觉(例如MATLAB Computer Vision toolkit)检测面部/头部
  2. head 有类比(对于人脸),使用这些类比可以得到头发或秃头所在的头部区域(似乎你已经有了这些)
  3. 计算人的皮肤所在的(概率颜色空间模型)范围(大多数人的皮肤颜色空间范围相似)
  4. 计算该区域皮肤与其他颜色(即头发)的百分比
  5. 你有它!

要估计肤色模型,请查看以下论文:

  1. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.8637&rep=rep1&type=pdf
  2. http://infoscience.epfl.ch/record/135966
  3. http://www.eurasip.org/Proceedings/Eusipco/Eusipco2010/Contents/papers/1569293757.pdf
  4. http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1300557&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F34%2F28890%2F01300557.pdf%3Farnumber%3D1300557

如果某个区域与皮肤模型不匹配,则可以将其视为非皮肤(即头发,假设样本中没有帽子等)

【讨论】:

  • 我正在使用 Matlab 进行这些操作
  • 好的已编辑答案,如果您需要更多我可以更新。注意有很多方法,这里提出了一种颜色空间模型方法,在大多数情况下非常快速和准确,其他方法也存在
  • 是的,但问题是,根据图像,考虑到测试图像种类繁多,有时眼睛上方的切割区域不能很好地代表我想要的区域。例如,在大多数情况下,它会在图像有头发时切割脸部的前额并将其分类为秃头。
  • 是的,这是样本图像的问题,估计器无法估计无法估计的东西!因此,示例图像必须具有一定的格式才能正确使用
  • 除此之外,您认为仅使用秃头图像的一类 SVM 分类会比使用带有秃头和非秃头图像的二进制 SVM 更好吗?在这种情况下,系统会识别秃头图像并将其他任何内容视为其他内容。
【解决方案2】:

头部区域非常小,因此使用 HOG 进行分类没有多大意义。

您可以使用先验信息 - 比如检测人脸;秃头/头发肯定会出现在面部上方的区域。此外,使用一些更密集的特征描述符。

您最终可能会得到非常稀疏的表示或相当少的信息,因为您的分类器无法正确分类。

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 2016-08-21
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多