【问题标题】:How can I isolate and recolor specific color range?如何隔离和重新着色特定的颜色范围?
【发布时间】:2021-08-09 13:04:11
【问题描述】:

给定包含嘴唇和其他“噪音”(牙齿、皮肤)的区域的图像,我们如何仅隔离嘴唇并重新着色(模拟“口红”效果)? 附上一张描述嘴唇/嘴巴状态的照片。

到目前为止,我们尝试的是一个由三部分组成的过程:

  1. 使用嘴唇上的稳定点匹配嘴唇颜色(由内部 API 提供)。
  2. 使用这种颜色作为唇部隔离的底色。
  3. 为嘴唇重新着色(口红行为)

在将它们转换为 CIE 颜色空间后,我们尝试了一些算法,如色调差异、HSV 差异、Δ和 E。不幸的是,由于皮肤的颜色与嘴唇的颜色相对相似,以及鼻子和嘴巴投射的阴影造成的变色,因此没有任何东西被淘汰或产生伪影。

我们缺少什么?有没有更好的方法来解决它?

我们正在寻找经典计算机视觉颜色算法的解决方案/方向,而不是机器学习/德普学习领域的解决方案。谢谢!

【问题讨论】:

  • 我会首先将图像分割为同质的颜色段(因此放大具有相似颜色的区域(您的颜色范围)不跨越相邻像素之间的差异(小于相似颜色的阈值)),然后选择一个之后具有嘴唇属性(大小,位置),然后将其用作重新着色的 ROI 蒙版
  • 这个问题有两个部分:将图像分割成嘴唇和非嘴唇以及重新着色嘴唇。对于分割,如果你给它一些例子,它听起来像一个标准的货架机器学习算法会很好地工作,通常可能在 100 个左右。对于重新着色,重要的是在嘴唇区域的边界处平滑地混合原始图像和重新着色的嘴唇部分,例如,可以使用用作混合操作权重的非二进制掩码来完成。
  • @Trilarion 我认为将嘴唇 ROI 转换为 grascale,然后将其与所需颜色相乘就足够了......如果口红颜色更复杂,那么我将使用纹理而不是恒定颜色进行相乘

标签: algorithm colors graphics computer-vision


【解决方案1】:

你可能不喜欢这个答案,但你的问题不合适(没有比其他人更好的可衡量的解决方案,只有人们的意见。)

在这种情况下,您希望得到的最佳答案通常是:

向专家询问大量在实践中可以接受的示例。

您的问题可以由适当的艺术家(您相信他们会产生可用的结果)通过使用正确的工具(例如 Photoshop)轻松解决,但单个艺术家(甚至是其中的一组)不可能扩展到数百万(或您关心的任何数量)的示例。

要解决基于艺术家的解决方案的缺点,您可以使用以下策略:

  • 收集足够多的由您认为值得信赖的艺术家创作的前后图像。
  • 应用您最喜欢的机器学习算法来学习从前图像到后图像的映射。有很多可能的选择,只要你知道如何使用它,你选择哪一个几乎真的无关紧要。

请注意,上述两个步骤通常不是一劳永逸的,就像大多数算法一样。通常,在使用该产品时,您会遇到上述 ML 解决方案的病态或表现不佳的示例。关键是收集这些示例,将它们传递给艺术家并重新训练或更新您的 ML 模型。重复此操作足够多次,您就会为您的问题提供最先进的解决方案。

您是否有资金、时间、动力和资源来完成这项工作是另一回事。

【讨论】:

  • 感谢您的详细建议!我认为你是对的。不幸的是,我无法更改赏金类型,但我会稍后再做。问题是我需要一个经典计算机视觉算法的解决方案,而不是 ML/DL 算法(从计算的角度来看太多了)。但似乎我的答案措辞不正确,因为我得到的所有解决方案都来自该域lol
【解决方案2】:

您应该尝试语义分割技术,这些技术肯定会给您带来非常好的结果,这将是一个概括的概念。

【讨论】:

    猜你喜欢
    • 2017-11-03
    • 2017-02-08
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多