【问题标题】:Object detection for specific flat objects特定平面物体的物体检测
【发布时间】:2011-06-30 19:52:33
【问题描述】:

我是计算机视觉的新手,我想检测图像(或视频帧)中的特定平面对象。

具体和扁平是什么意思?

扁平

嗯,扁平物体就像物体,但是,你知道,扁平……对我来说意味着什么:

  • 总是从大致相同的“正面”角度查看对象,即相机的轴(或多或少)与其表面法线相对应。 (但它们可能会围绕该轴旋转)。
  • 照明角度不会发生任何变化的对象(即没有投射阴影的凹凸和折痕)。

具体

  • 我知道确切外观和形状的对象。它们都完全相同,没有变化。
  • 我有一张他们的(精确的)照片(或代表)。

此类对象的示例

  • 1 美元钞票的正面
  • 蒙娜丽莎
  • (你最喜欢的杂志在这里)上一期的封面
  • ...

我相信这个问题很简单,我应该能够找到一个基本上像这样工作的计算机视觉库的函数:

> findObjects("object.png", "image.png")
[object at x1, y1, rotated z1 degrees, size height1*width1,
 object at x2, y2, rotated z2 degrees, size height2*width2,
 ...]

事实上,我什至并不真正关心对象的大小和位置,我只需要计数。

但我找不到这样的东西。 我能找到的只有无数的人脸识别示例,这些示例使用称为 Haar 分类器的东西,这似乎根本不适合我的问题,因为:

  • 人脸不是平面的,因此分类器必须处理不同的照明、阴影等问题...
  • 它必须识别人脸,即相似但不完全相同的对象。
  • 它必须识别未经训练的人脸,仅仅因为它们“看起来像”人脸。
  • 证明这不合适:它必须用成百上千的正负样本进行训练。在我的问题中,所需的所有信息都包含在一个样本中。所以这是不对的。

那么,这样的事情存在吗?

我更喜欢使用 OpenCV,因为这似乎是标准的计算机视觉库,但我愿意接受任何解决方案。

【问题讨论】:

    标签: opencv computer-vision object-recognition


    【解决方案1】:

    一种方法是使用关键点匹配器。 Opencv 有一个你想要的演示(在 http://imgur.com/a/Bbc6C#UfTkn 中找到 http://imgur.com/a/Bbc6C#gxXGh 作为预制演示(在 opencv 2.2 发行版中:samples/c/find_obj.cpp)。输出在 http://imgur.com/ZF1bh 中可视化 - 你应该能够从它开始对其进行调整,以便找到图像的多个实例并对其进行计数。

    【讨论】:

    • 谢谢,它工作正常,但不是很好。例如,它没有考虑颜色,这可能会有很大帮助。但是您将我指向此示例使我找到了一些要搜索的关键字(SURF、SIFT、planar 对象检测...)。谢谢!
    • @Gohu:将颜色信息包含到功能中应该不会太难。但是,请注意颜色:如果相机或照明发生变化,颜色也会发生变化。这对我们人类来说并不那么明显,但对计算机来说却是一个难题,请参阅en.wikipedia.org/wiki/Color_constancy
    猜你喜欢
    • 2022-01-16
    • 2013-12-15
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    相关资源
    最近更新 更多