AI /用于确定颜色名称的统计方法

时间:2010-08-07 10:21:38

标签: statistics artificial-intelligence classification bayesian bayesian-networks

我正在考虑编写一个小库来猜测一个(RGB值)颜色的名称,从预定的候选列表中进行猜测。

我的第一次尝试纯粹基于三维RGB色彩空间内的毕达哥拉斯距离 - 这并不是大规模成功,因为大多数命名色点位于空间的边缘(例如蓝色位于0,0,255 ),所以,对于空间中间的大多数颜色,它最接近的命名颜色也是相当随意的。

所以,我正在考虑更好的方法,并提出了一些候选人

  • HSV色彩空间内的圆柱距离 - 这可能与上面的问题类似,但是,HSV似乎比RGB更有意义,这可能是有用的。

    < / LI>
  • 上述任何一种,但每个命名的色点都用一个任意值加权,该值表示其对周围空间中各点的吸引力。这样的模型有名字吗?我意识到这有点模糊,但对我来说这似乎是一个相当直观的想法。

  • 一个贝叶斯网络,它检查HSV颜色的属性并返回最可能的颜色名称(我想象的节点类似于,例如P(黑色|饱和度<10),P(红色|色调=然而,这似乎不太理想 - 例如,给定颜色为红色的概率与其色调与0的接近程度成正比,而不是离散值。有没有办法调整贝叶斯网络来处理在被测变量上连续的概率?

  • 最后,我想知道在HSV或RGB色彩空间内是否有某种基于支持向量机的分类,但对这些分类没有大量的熟悉,我不确定这是否会提供任何特别的优势我最初尝试过的基于毕达哥拉斯距离的方法,特别是因为我只处理三维空间。

因此,我想知道,你们中是否有任何遇到类似问题的经历,或者知道任何可能帮助我决定方法的资源?如果有人能指出我正确的方向(无论是上述之一,还是完全不同的话),我将非常感激。

干杯!

3 个答案:

答案 0 :(得分:5)

Name that Color似乎根据RGB和HSL值确定名称,也许您可​​以使用类似的东西。

在快速查看脚本后,它似乎从RGB和HSL两者中选择最接近给定颜色的颜色。它基本上只是一个预定义颜色的大地图,并没有任何高级功能,例如加权值,但鉴于大量定义的颜色名称,它可能“足够好”,具体取决于您的要求。

答案 1 :(得分:0)

  

有没有办法调整贝叶斯网络来处理连续测试变量的概率?

是。我不是回答如何做到这一点的最佳人选,但应该有关于如何做到这一点的现有信息。只需在搜索过程中使用“连续”。

答案 2 :(得分:0)

对于我的回答,我打算在Baysian盒子外面思考。如果我必须解决这个问题,我会尝试以下三种方法之一:

1)模糊逻辑,可能基于从用户收集的经验数据。模糊逻辑可能捕获并且更容易自动推断出人们在谈论颜色时的意思比清晰的统计测量更好。 (还有一些结合了Baysian推理和模糊逻辑的技术,IIRC。)

2)我曾经尝试过使用Kohonen网络自动分类颜色的想法。我没有把它拿得很远,但早期的结果是有希望的,因为网络倾向于从人类的角度融合到令人愉悦和直观的解决方案。节点倾向于聚集在一起似乎与人类标签相对应的模式,如“红色”,“橙色”,并且有明显的过渡区域,如“红橙色”。

3)我还做了一些实验,使用遗传算法为特定图像开发优化的托盘。同样,我没有把它拿得很远,但最初的测试显示出了希望。