9

绘图和绘画机器人的算法 -

你好

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

与最近的 twitter 超级压缩竞赛参见:stackoverflow.com/questions/891643/twitter-image-encoding-challenge不同,我的目标不是创建一个忠实于图像的副本,而是复制人类体验看着图像。

例如,如果原始图像的左上角有一个红色气球,而复制品的左上角有一个看起来像红色气球的东西,那么即使复制品中的气球是位置不完全相同,尺寸或颜色也不完全相同。

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

为什么这种不寻常的人类感知标准高于摄影准确性?

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

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

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

还在我这儿?

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

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

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

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

谢谢

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

4

5 回答 5

3

There is an model that can implemented as an algorithm to calculate a saliency map for an image, determining which parts of the image would get the most attention from a human.

The model is called itti koch model
You can find a startin paper here
And more resources and c++ sourcecode here

于 2009-07-14T16:39:20.267 回答
3

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

于 2009-07-06T17:06:52.960 回答
1

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

于 2009-07-06T04:06:22.880 回答
1

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

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

您可能会首先找到一种算法,用于计算眼球在周围飞来飞去时的路径。也许它被对比所吸引?

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

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

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

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

          *






*                    *

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

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

于 2009-07-06T06:39:15.300 回答
0

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

于 2009-11-30T02:09:29.300 回答