【发布时间】:2020-02-15 14:50:27
【问题描述】:
我已经在 CelebA-Mask-HQ 数据集 (https://github.com/switchablenorms/CelebAMask-HQ) 上训练了一个人脸分割模型,该模型能够为背景、眼睛、面部、头发等具有不同颜色的图像创建颜色分割映射。该模型生成一个形状为 (1024,1024,3) 的 numpy 数组。输出的分割图有点嘈杂,比如人脸中的一些随机像素被标记为眼睛,或者当它实际上是背景时会弹出布料标签,请看下图:
正如您在图像中看到的那样,在左上角您可以看到绿色像素,在胡须周围的脸上您可以看到绿色像素(在黄色上唇图上方)。
我想通过将图像中这些被正确标记的较大区域包围的错误标记的小片段自动更改为该区域中最主要的颜色,从而从分割图中移除这种“噪音”(使用自适应窗口尺寸)。我找不到为此的内置 opencv 功能。您是否知道任何有效的方法来做到这一点(我需要对大量图像进行“去噪”,因此最好采用仅矢量化的 numpy 方式)?
非常重要的是去噪后的图像只包含一组预定义的标签颜色(总共19种不同的颜色),因此需要对噪声进行绝对的重新着色而不进行平均(这会给颜色引入新的颜色)图像的调色板)。
谢谢!
【问题讨论】:
标签: python numpy opencv rgb mask