特定对象/图像识别任务的最佳方法?

时间:2010-10-06 14:50:06

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

我在照片中搜索某个物体:

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

我看了很多图像识别方法。但我正在努力确定这项具体任务的最佳状态。最重要的是,物体由线条组成,而不是填充形状。此外,没有透视变形,因此矩形物体在照片中始终具有直角。

有什么想法吗?我希望能够轻松实现一些我能够实现的东西。

谢谢大家。

3 个答案:

答案 0 :(得分:3)

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

编辑(回复评论):

我假设您可以找到图像中的角点,矩形的4个角,X的4个线的末端和X的中心,以及由于噪点或图像中的其他几个角背景中的对象。这简化了在给定的一组点中在正确的配置中找到一组9个点的问题。

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

如果您的应用程序足够好,您必须尝试。如果你有太多的误报(其他物体的角落意外形成一个矩形+ X),你可以检查是否有你想要的线条(即正确方向的高对比度)。你可以检查模式中没有线条的低对比度。一旦您知道图像中与您正在寻找的对象中的角点/线条结尾相对应的点,这应该相对简单。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可以使用本地功能识别图像中的对象。 Feature detection wiki

例如,您可以计算某些引用图像上的要素,该图像仅包含您要查找的对象,并将结果保存为纯文本文件。之后,您可以仅通过将新计算的特征(在包含该对象的一些复杂场景的图像上)与参考特征进行比较来搜索对象。

以下是本地功能的一些优秀资源: Local Invariant Feature Detectors: A Survey