使用图像识别确定对象身份



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

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

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"one_answers"backpack"都符合正确答案。有没有什么好办法能让我们有根据地猜测出这两件东西是哪个,比如75%的可能性是背包,25%的可能性是盒子(可能是基于盒子有可能有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获得的变换应用于您分类的数据点的变换并测量相关性(标量向量积),即计算与对象o实际上是背包/盒子的概率相关的(T*o)*(T*p_backpack)'(T*o)*(T*p_box)'

如果您正在考虑人工智能,请查看http://pybrain.org/

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

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

最新更新