【问题标题】:Mouth/lip detection based on YCbCr color space, in openCvopenCv 中基于 YCbCr 颜色空间的嘴/唇检测
【发布时间】:2015-04-29 16:58:00
【问题描述】:

您好,我正在尝试检测嘴巴或嘴唇的区域。为此,我尝试使用这些论文中描述的方法:Paper1,Paper2。 (只能发两篇论文)

他们使用的方法是利用色彩空间 YCbCr,因为与面部其他部分相比,嘴唇具有强烈的红色成分和较弱的蓝色成分。因此,您可以像这样使用这个色彩空间:

LipMap = (CrCr)((CrCr)-n(Cr/Cb))((CrCr)-n *(Cr/Cb))

n = 0.95*((su​​m(Cr*Cr)/m)/(sum(Cr/Cb)/m))

问题是所有这些来源都没有真正解释计算是如何进行的。我知道如何获得 Cr 和 Cb 的值,但我不能 100% 确定它们应该在 [0,1] 或 [0,255] 的范围内,来源都说明了。同样在那之后,我不确定如何从 n 计算以及 LipMap 中获得正确的值。在计算之前或之后应该对数字进行归一化。另外,您如何从 Cr/Cb 和归一化值中获得正确的值,我似乎无法正确获得。

我一直试图让它工作几个小时,但我做错了什么。最终的某些值总是很大。此外,它们不在应为 [0,1] 或 [0,255] 的范围内。

如果有人对此问题有任何意见或建议,将不胜感激。

【问题讨论】:

    标签: opencv face-detection


    【解决方案1】:

    如果您只是想寻找嘴唇出现在脸上的位置,那么使用 haar cascade 来寻找它们可能是值得的(我不知道您是否尝试过这个,或者这是否合适为您的项目)

    如果您确实需要使用 YUV 找到合适的阈值设置,您仍然可以使用 haar 级联来找到嘴巴,然后在您知道通常包含一个像素的 haar 挑选的感兴趣区域内选择一个像素在嘴唇上。

    此像素将为您提供嘴唇上随机区域的 YUV 值,然后您可以对图像进行阈值处理以包含与该像素 YUV 值相似的所有像素(您可以计算出该阈值的严格程度在测试期间),然后你应该留下嘴巴的所有像素(足够接近)

    希望我已经解释得足够清楚了。

    祝你好运

    【讨论】:

    • Mabye 我应该更清楚我的问题。现在我正在使用 haar 级联来获取面部和嘴部区域。在嘴巴区域,我想检测嘴角以及嘴巴和底部。我想要实现的是得到一个清晰的嘴唇轮廓,这样我就可以得到顶部、底部和两个角的点。
    • 好的,所以我的建议是在你的嘴巴区域内找到一个区域,它在每张图像中都有一个“平均”的嘴巴部分,所以可能是中间,或者可能只是上方/下方(所以不要得到中间的线),获取该像素 YUV 数据,然后用每个值的 +/- 50 对图像进行阈值处理(50 只是示例,您可以对此进行测试),这应该会给您带来一个嘴唇的面具。
    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2015-06-25
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多