【问题标题】:Determining object identities using image recognition使用图像识别确定对象身份
【发布时间】:2011-08-13 10:33:27
【问题描述】:

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

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

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不同的颜色和更广泛的尺寸范围,而不是只能是黑色的背包)?

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

【问题讨论】:

    标签: probability image-recognition object-recognition


    【解决方案1】:

    抱歉,对于这个相当高级的描述,没有太多理由说明它为什么有效,但你可以很容易地填满回答这个问题的书籍,现在已经是下午 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 的 LD 获得的变换并测量相关性(标量向量积)到您分类为的数据点的变换,即计算与对象 o 的概率相关的 (T*o)*(T*p_backpack)'(T*o)*(T*p_box)'实际上是一个背包/一个盒子。

    【讨论】:

    • 自从我提出这个问题以来的过去一周左右,我一直倾向于执行分发。您已经验证了我正在考虑的一些事情,并为我提供了阅读材料的新线索。谢谢!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-27
        • 2018-06-09
        • 2013-11-30
        • 2017-12-14
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        相关资源
        最近更新 更多