我写过一些图像分析软件,可以确定它认为是图像中最主要的对象的基本形状,颜色和尺寸。
我还创建了一个对象数据库供算法选择:
Item | Shape | Colors | Width range | Height range Box | rectangle | brown, black, white | 20-50 cm | 10-30 cm Basketball | circle | orange | 20-25cm | 20-25 cm Backpack | rectangle | black | 40-50 cm | 20-30 cm . . . etc.
一个例子是系统检测到一个42厘米宽,26厘米高的黑色矩形。在这种情况下,“盒子”和“背包”都有资格作为正确的答案。是否有任何好方法可以对这两个项目中的哪一个进行有根据的猜测,例如75%的可能性是背包,25%的可能性是一个盒子(可能基于盒子有可能成为3个盒子的事实)不同的颜色和更广泛的尺寸,而不是只能是黑色的背包?
欢迎其他建议。我不得不自学图像识别,所以如果还有其他事情我应该尝试从图像中提取出来,或者我应该采用不同的方式来处理数据库,那些评论也会非常感激!< / p>
答案 0 :(得分:3)
为相当高级别的描述道歉,但没有充分理由说明它的工作原理,但你可以很容易地填写回答这个问题的书籍,而且已经是下午1点了,所以我必须简短说明:
除了记录盒子和背包的可接受尺寸范围外,您还需要定义概率分布。很可能你只是使用(2D)正态分布,然后你记录平均值和变化而不是范围。对具有合适概率分布的形状,颜色等变量执行相同的操作。
然后生成两个数据集,数据点如下:
p_1 = (shape=rectangle, color=black, width=12, height=34)
p_2 = (shape=circle, color=red, width=34, height=11)
...
对于其中一个集合,手动将它们归类为最符合描述的对象。这将成为您的验证集。
使用其他数据集并使用该数据训练分类算法,如Fisher's linear discriminant。您获得的变换T
将最大化类之间的“距离”(表示对象的数据点组),并最小化属于同一组的点之间的“距离”。
当程序检测到具有属性
的新对象时o = (shape=rectangle, color=black, width=42, height=26)
您应用从Fisher's LD获得的变换并测量相关性(标量向量积)与您分类为的数据点的变换,即计算与(T*o)*(T*p_backpack)'
和(T*o)*(T*p_box)'
相关的概率对象o实际上是一个背包/一个盒子。
答案 1 :(得分:2)
如果您正在考虑人工智能,请查看http://pybrain.org/
这是一个非常高级的python AI库。我有一些好运使用它进行模式识别(使用神经网络)。它很容易玩,可以让你快速尝试不同的方法。
答案 2 :(得分:1)
我会尝试用户输入填充的AI算法。