【发布时间】:2021-08-09 13:04:11
【问题描述】:
给定包含嘴唇和其他“噪音”(牙齿、皮肤)的区域的图像,我们如何仅隔离嘴唇并重新着色(模拟“口红”效果)? 附上一张描述嘴唇/嘴巴状态的照片。
到目前为止,我们尝试的是一个由三部分组成的过程:
- 使用嘴唇上的稳定点匹配嘴唇颜色(由内部 API 提供)。
- 使用这种颜色作为唇部隔离的底色。
- 为嘴唇重新着色(口红行为)
在将它们转换为 CIE 颜色空间后,我们尝试了一些算法,如色调差异、HSV 差异、Δ和 E。不幸的是,由于皮肤的颜色与嘴唇的颜色相对相似,以及鼻子和嘴巴投射的阴影造成的变色,因此没有任何东西被淘汰或产生伪影。
我们缺少什么?有没有更好的方法来解决它?
我们正在寻找经典计算机视觉颜色算法的解决方案/方向,而不是机器学习/德普学习领域的解决方案。谢谢!
【问题讨论】:
-
我会首先将图像分割为同质的颜色段(因此放大具有相似颜色的区域(您的颜色范围)不跨越相邻像素之间的差异(小于相似颜色的阈值)),然后选择一个之后具有嘴唇属性(大小,位置),然后将其用作重新着色的 ROI 蒙版
-
这个问题有两个部分:将图像分割成嘴唇和非嘴唇以及重新着色嘴唇。对于分割,如果你给它一些例子,它听起来像一个标准的货架机器学习算法会很好地工作,通常可能在 100 个左右。对于重新着色,重要的是在嘴唇区域的边界处平滑地混合原始图像和重新着色的嘴唇部分,例如,可以使用用作混合操作权重的非二进制掩码来完成。
-
@Trilarion 我认为将嘴唇 ROI 转换为 grascale,然后将其与所需颜色相乘就足够了......如果口红颜色更复杂,那么我将使用纹理而不是恒定颜色进行相乘
标签: algorithm colors graphics computer-vision