绘图和绘画机器人的算法 - 任何提示?

Posted

技术标签:

【中文标题】绘图和绘画机器人的算法 - 任何提示?【英文标题】:An algorithm for a drawing and painting robot - any tips? 【发布时间】:2010-11-08 07:01:38 【问题描述】:

绘图机器人的算法 -

你好

我想编写一个分析图像的软件,然后生成一个图像,该图像捕获人眼在原始图像中的感知,使用最少的颜色和不透明度变化的贝塞尔路径对象。

与最近的 twitter 超级压缩大赛不同(see: ***.com/questions/891643/twitter-image-encoding-challenge),我的目标不是创建一个忠实于图像的复制品,而是复制人类观看图像的体验.

例如,如果原始图像在左上角显示一个红色气球,而复制品的左上角有一个看起来像红色气球的东西,那么我将实现我的目标,即使气球在复制品的位置不完全相同,大小或颜色也不完全相同。

当我说“被人类感知”时,我的意思是非常有限的。我不是试图分析图像的含义,我不需要知道图像是什么,我只对人眼会注意到的关键视觉特征感兴趣,只要这可以由算法无法将其实际观察到的内容概念化。

为什么人们对摄影准确性的这种不同寻常的感知标准?

该软件将用于驱动绘图机器人,该机器人将与人类艺术家合作(see: video.google.com/videosearch?q=mr%20squiggle)

算法不应将人为的不完美的标记视为必然错误,而应设法将画布上已有的内容合并到最终图像中。

因此,相对亮度、色调、饱和度、大小和位置比在照片上与原始照片相同更重要。保持特征的拓扑结构、色块、渐变、凸凹曲线将更重要的是这些特征的确切尺寸形状和颜色

还和我在一起吗?

我的问题是“当你有一把锤子时,一切看起来都像钉子”综合症。对我来说,这样做的方法似乎是使用遗传算法与 retrievr 使用的小波变换比较(参见:grail.cs.washington.edu/projects/query/)(参见:labs.systemone.at/retrievr/) /em> 选择合适的解决方案。

但我认为这是答案的主要原因是,这些是我所知道的技术,可能有更优雅的解决方案使用我现在不知道的技术。

考虑人类视觉系统分析图像的方式会特别有趣,因此可能需要特别注意直线、角度、高对比度边框和大块相似颜色。

您对我应该阅读的有关视觉、图像算法、遗传算法或类似项目的内容有什么建议吗?

谢谢

垫子

PS。上面的某些拼写对您和您的拼写检查来说可能是错误的。这只是国际拼写变化,可能与您所在国家/地区的标准有所不同:例如澳大利亚标准:颜色与美国标准:颜色

【问题讨论】:

为了新用户的利益,我想指出,如果今天发布,这个问题将不允许存在。它非常广泛,要求提供一般性建议,并且没有明确的答案。出于历史目的,它可能仍然存在,因此不要将其用作提出好问题的模板 【参考方案1】:

有一个模型可以实现为算法来计算图像的显着性图,确定图像的哪些部分最能引起人类的注意。

该模型称为itti Koch模型 你可以找到一篇起始论文here 还有更多资源和c++源代码here

【讨论】:

metafilter 的一个好处是您可以分配多个正确答案,这里我只有一个选择。我会 (续)..本来想给每个人一个绿色的勾,但这个答案给了我最有趣的探索方向,感谢大家【参考方案2】:

我不能直接回答你的问题,但你真的应该看看艺术家/程序员(Lisp)Harold Cohen的绘画机Aaron。

【讨论】:

像许多从事技术工作的先驱艺术家一样,他早在 70 年代就开始从事这项工作,我认为他已载入史册。如果你能设法在某个地方见到他,他愿意将这个过程告诉其他程序员。【参考方案3】:

这是一项艰巨的任务。您可能对图像矢量化感兴趣(不知道它的正式名称),它用于获取光栅化图像(例如您用相机拍摄的照片)并输出一组近似的贝塞尔线(我认为)您输入的图像。由于好的算法通常会输出非常高质量(阅读:复杂)的线集,您也会对可以提供巨大帮助的简化算法感兴趣。

【讨论】:

感谢 rcix,我打算花三个月左右的时间,经验表明会更长。【参考方案4】:

很遗憾,我不在图书馆旁边,或者我可以推荐一些关于知觉心理学的书籍。

您首先必须考虑的是人眼的生理特性,当我们检查图像或场景时,我们一次只能捕捉到非常小的片段,因为我们的眼睛会快速四处移动。我们的大脑将不同的部分拼凑在一起,试图形成一个整体。

您可能首先要找到一种算法来计算眼球在四周飞舞时的路径。也许它被对比所吸引?

接下来是我们的眼睛根据上下文调整“曝光”。就像那些高动态范围的图像,如果它们不是通过对整个场景进行多次曝光,而是通过许多小图像拼凑在一起,每个图像都独立平衡,而是融入周围环境,形成一个高动态范围。

现在在猴子的大脑中发现,如果在其视野的左上角有一条对角线,就会有一个神经元亮起。可以在猴子视野的各个区域的垂直线和水平线中找到类似的神经元。 “对角线”决定了神经元放电的频率。

人们可能会推测可能会发现其他神经元并将其映射到其他特性,例如发红、纹理和其他事物。

有些事情是人类可以做到的,而我从未见过计算机程序能够做到。这就是所谓的“关闭”,人类能够填写他们所看到的东西的信息,而这些信息实际上并不存在于图像中。一个例子:

          *






*                    *

那是三角形吗?如果您提前知道它,那么您可能可以编写一个程序来连接这些点。但如果只是点呢?你怎么知道?我不会尝试这个,除非我有一些非常聪明的方法来处理那个。

还有许多其他关于人类感知的事实,您也许可以使用。祝你好运,你没有选择一个简单的任务。

【讨论】:

你给了我一个非常好的主意,如果我可以跟踪艺术家对源图像的注视,我可以确定图像中吸引注意力的关键区域、人脸等,并使用这是为了确定需要更加小心地复制图像的哪些部分。我想我会让三角形保持原样,三颗星,这表明了一种更好的方式来说明我的目标,以再现一个图像,该图像保留了传达图像大部分体验的特征。我不能希望绘制出看到图像的体验,我将把它留给观看者在三颗星中找到三角形【参考方案5】:

我认为可以帮助您完成这项艰巨任务的是人类参与。我的意思是数据。就像你可以让很多人坐着盯着随机的点(就像上一篇文章中的一样),然后按照他们认为正确的方式连接它们。你可以利用这些数据。

【讨论】:

以上是关于绘图和绘画机器人的算法 - 任何提示?的主要内容,如果未能解决你的问题,请参考以下文章

AI绘画突然爆火?快速体验二次元画师NovelAI(diffusion)

处理绘图/绘画/保存多个位图

Midjourney AI绘画使用指南

Ubuntu机器学习python实战k-近邻算法

无界AI绘画基础教程,和Midjourney以及Stable Diffusion哪个更好用?

算法leetcode|LCP 17. 速算机器人(rust和go)