【问题标题】:Best approach for specific Object/Image Recognition task?特定对象/图像识别任务的最佳方法?
【发布时间】:2011-04-21 21:18:11
【问题描述】:

我正在寻找我照片中的某个物体:

对象:中间有 X 的矩形的轮廓。它看起来像一个矩形复选框。就这样。所以,没有填充,只有线条。矩形将具有相同的长宽比,但它可以是照片中的任意大小或任意旋转。

我看过一大堆图像识别方法。但我正在尝试确定最适合这项特定任务的方法。最重要的是,对象是由线条组成的,而不是填充的形状。此外,没有透视失真,因此矩形对象在照片中始终具有直角。

有什么想法吗?我希望我可以很容易地实现一些东西。

谢谢大家。

【问题讨论】:

  • X 平面总是与我假设的图像平面平行?所以 X 没有透视变形?
  • 更新问题,见上文。 (完全没有失真,视点与物体完全正交,我希望术语是正确的,但我想你知道我的意思)。

标签: algorithm pattern-matching computer-vision pattern-recognition image-recognition


【解决方案1】:

您可以使用局部特征来识别图像中的对象。 Feature detection wiki

例如,您可以计算某个仅包含您要查找的对象的参考图像的特征,然后将结果保存到纯文本文件中。之后,您只需将新计算的特征(在包含该对象的一些复杂场景的图像上)与参考特征进行比较,即可搜索该对象。

这里有一些关于本地特性的好资源: Local Invariant Feature Detectors: A Survey

【讨论】:

    【解决方案2】:

    您可以尝试使用角检测器(例如 Harris)来查找框的角、端点和 X 的交点。这简化了在正确配置中查找点的问题。

    编辑(回复评论):

    我假设您可以找到图像中的角点、矩形的 4 个角、X 的 4 行末端和 X 的中心,以及图像中由于噪声或背景中的物体。这将问题简化为从给定的一组点中找到一组正确配置的 9 个点。

    我的第一次尝试是查看每个角点 A。然后我会遍历靠近 A 的点 B。现在如果我假设(例如)A 是矩形的左上角,B 是右下角,我可以很容易地计算出我希望其他角点在图像中的位置。我会使用一些最近邻搜索(或像 FLANN 这样的库)来查看是否有我期望它们的角落。如果我能找到一组与这些预期位置匹配的点,我就知​​道符号在哪里,如果它出现在图像中。

    如果这对您的应用程序来说足够好,您必须尝试。如果您有太多误报(意外形成矩形 + X 的其他对象的角集),您可以检查是否存在您期望的线条(即正确方向的高对比度)。您可以检查图案中没有线条的地方是否存在低对比度。一旦您知道图像中与您正在寻找的对象的角/线末端相对应的点,这应该相对简单。

    【讨论】:

    • 您能否详细解释一下在进行角或边缘检测后如何执行“搜索”。因为我已经实现了两者并且可以看到它肯定会选择对象特征。但是我的下一步是能够运行算法并让它返回对象是否位于给定照片中的真或假。实际的“搜索”功能是我不放心的。谢谢。
    【解决方案3】:

    我建议Generalized Hough Transform。看起来你有一个相当简单、固定的形状。广义霍夫变换应该能够检测图像中任何旋转或缩放的形状。您需要对原始图像进行阈值处理,或以某种方式对其进行预处理才能使此方法有用。

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      相关资源
      最近更新 更多