3

我编写了一些图像分析软件,可以确定它认为是图像中最主要对象的基本形状、颜色和尺寸。

我还创建了一个对象数据库供算法选择:

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 厘米的黑色矩形。在这种情况下,“box”和“backpack”都可以作为正确答案。有没有什么好的方法可以对这两种物品中的哪一种做出有根据的猜测,例如 75% 的可能性是背包,25% 的可能性是盒子(可能是基于盒子有可能是 3不同的颜色和更广泛的尺寸范围,而不是只能是黑色的背包)?

也欢迎其他建议。我必须自学图像识别,所以如果我应该尝试从图像中提取其他东西,或者我应该以不同的方式处理数据库,这些评论也将不胜感激!

4

3 回答 3

3

为相当高级的描述道歉,没有太多理由说明它的工作原理,但你可以很容易地填满回答这个问题的书,现在已经是下午 1 点了,所以我必须简短地说:


除了记录盒子和背包的可接受尺寸范围外,您还需要定义概率分布。很可能您只使用(2D)正态分布,然后记录平均值和变化而不是范围。对具有合适概率分布的形状、颜色等变量执行相同操作。

然后生成两个包含几百个数据点的数据集,如下所示:

p_1 = (shape=rectangle, color=black, width=12, height=34)
p_2 = (shape=circle, color=red, width=34, height=11)
...

对于其中一组,手动将它们分类为最符合描述的对象。这将成为您的验证集。

获取其他数据集并使用该数据训练分类算法,例如Fisher 的线性判别式。您获得的转换T将使类(表示对象的数据点组)之间的“距离”最大化,并使属于同一组的点之间的“距离”最小化。

当您的程序检测到具有属性的新对象时

o = (shape=rectangle, color=black, width=42, height=26)

您应用从Fisher's LD 获得的转换并测量相关性(标量向量积)到您分类为的数据点的转换,即计算(T*o)*(T*p_backpack)'并且(T*o)*(T*p_box)'与对象o 实际上是背包/盒子的概率相关。

于 2011-05-01T22:53:30.540 回答
2

如果您正在考虑 AI,请查看http://pybrain.org/

这是一个非常高级的python AI库。使用它进行模式识别(使用神经网络)我有一些好运。它很容易上手,并且可以让您快速尝试不同的方法。

于 2011-05-01T23:45:25.247 回答
1

我会尝试由用户输入填充的 AI 算法。

于 2011-05-01T23:35:13.930 回答