基于机器学习的图像修复算法?

数据挖掘 机器学习 图像识别
2021-10-09 13:34:04

我有一组图像,它们看起来像下面的示例。

在此处输入图像描述

你可以把它想象成一个人的 2 周日程表,用不同的颜色表示。图片里面。但是,有一些小的缺失区域以黑色显示。我对使用 ML 方法修复/填充缺失区域感兴趣。

请注意,我已经尝试过论文中提到的一些经典方法:“Image Inpainting, Christine Guillemot and Olivier Le Meur”,但结果并不令人满意。

由于几乎所有图像都有相同的模式,我想知道是否有人可以建议基于 ML 的方法解决这个问题。

2个回答

如果我是你,我会使用深度学习。您可以为此使用自动编码器格式。本质上,您将输入图像,然后每一层产生较小的输出。然后,您将使用转置权重矩阵反向输入输出,这将产生逐渐增大的输出。反向传播的最终输出将是填充图像。由于您的图像的颜色范围如此之小,我建议使用one-hot编码来表示像素颜色。

看起来您的图像中有一种特殊的结构,可能比使用通用图像修复方法做得更好。

仅从一个示例图像很难知道,但您可能能够仅使用输入图像的非常简单的特征来构建一种令人满意的方法。特别是,您可以训练一个分类器,给定一个黑色像素,尝试预测该像素的正确颜色。

在您的具体示例中,一些看起来很有用的功能是:“同一列中最常见的颜色”、“同一行中最常见的颜色”、“像素上方最近的非黑色像素的颜色(在同一列)”,“像素下方最近的非黑色像素的颜色(在同一列中)”,“像素右侧最近的非黑色像素的颜色(在同一行中)”, “像素左侧最近的非黑色像素的颜色(在同一行中)”。我建议尝试在像这样的一些简单特征上训练一个简单的分类器,看看它的效果如何。

如果您想变得花哨,可以尝试将其建模为网格图上的马尔可夫随机场。换句话说,每个像素都是图中的一个顶点,如果两个像素相邻,则通过一条边连接。然后有一些标准方法可以在给定一些训练示例的情况下学习基础密度函数,一旦你知道了密度函数,你就可以使用最大似然法来推断黑色像素的值。