4

我相信很多人已经看过使用遗传算法生成与样本图像匹配的图像的演示。你从噪声开始,逐渐变得越来越接近目标图像,直到你有一个或多或少精确的副本。

然而,我看到的所有示例都使用了相当简单的逐像素比较,从而导致最终图像的“淡入”相当可预测。我正在寻找的是更新颖的东西:一种比天真的方法更接近我们所认为的“相似”的适应度测量方法。

我没有具体的结果——我只是在寻找比默认值更“有趣”的东西。建议?

4

4 回答 4

3

我假设您在谈论类似Roger Alsing 的程序

我实现了这个版本,所以我也对替代健身功能感兴趣,尽管我是从提高性能而不是美学的角度来研究它的。由于进化过程的性质,我预计总会有一些“淡入”元素(尽管调整进化运算符可能会影响它的外观)。

除了小图像之外,逐像素比较可能会很昂贵。例如,我使用的 200x200 像素图像有 40,000 像素。每个像素有三个值(R、G 和 B),即必须将 120,000 个值合并到单个图像的适应度计算中。在我的实现中,我在进行比较之前缩小图像,以减少像素。权衡是稍微降低了进化图像的准确性。

在研究替代适应度函数时,我遇到了一些使用YUV 颜色空间而不是 RGB 的建议,因为这更符合人类的感知。

我的另一个想法是只比较随机选择的像素样本。我不确定如果不尝试它会有多好。由于每次评估所比较的像素都不同,因此将具有维持种群内多样性的效果。

除此之外,您还处于计算机视觉领域。我希望这些依赖于特征提取的技术每张图像的成本会更高,但如果它们导致需要更少的生成来获得可接受的结果,它们总体上可能会更快。您可能想要调查PerceptualDiff库。此外,此页面显示了一些 Java 代码,可用于根据特征而不是像素来比较图像的相似性。

于 2009-05-02T11:33:17.957 回答
1

一种比天真的方法更接近我们所认为的“相似”的适应度度量。

在软件中实施这样的措施绝对是不平凡的。谷歌“人类视觉模型”,“感知误差度量”的一些起点。您可以回避这个问题 - 只需将候选图像呈现给人类以选择最佳图像,尽管这对人类来说可能有点无聊。

于 2009-04-30T14:47:08.023 回答
0

我还没有看过这样的演示(也许你可以链接一个)。但是,您的描述中可能会引发一个有趣的一些原始想法:

  • 三种并行运行的不同算法,可能是 RGB 或 HSV。
  • 在运行期间移动、旋转或以其他方式稍微更改目标图像。
  • 适合度基于像素之间的对比度/值差异,但不知道实际颜色。
  • ...然后用正确的颜色“填充”单个像素?
于 2009-04-30T14:19:34.907 回答
0

我同意其他贡献者的观点,即这不是微不足道的。我还要补充一点,这在商业上非常有价值——例如,希望保护其视觉 IP 的公司将非常高兴能够在互联网上搜索与其徽标相似的图像。

我对此的天真方法是在多个图像上训练模式识别器,每个图像都从目标图像生成,并对其应用一个或多个变换:例如,旋转几度;无论哪种方式,平移几个像素;同一图像的不同尺度;各种模糊和效果(卷积蒙版在这里很好)。我还会为每个图像添加一些随机噪声。样本越多越好。

训练都可以离线完成,因此不会导致运行时性能出现问题。

一旦你训练了一个模式识别器,你可以将它指向 GA 人口图像,并从识别器中获得一些标量分数。

就个人而言,我喜欢径向基网络。快速训练。我会从太多的输入开始,然后通过主成分分析(IIRC)减少它们。输出可能只是相似性度量和相异性度量。

最后一件事; 无论你采用什么方法——你能写博客、发布演示等等吗?让我们知道你是怎么上去的。

于 2009-05-01T12:06:53.080 回答