【问题标题】:Counting object on image algorithm图像算法中的对象计数
【发布时间】:2012-09-21 05:01:33
【问题描述】:

我又接到了学校的任务。这一次,我的老师给我的任务是创建算法来计算图片上有多少只鸭子。

图片和这张类似:

我想我应该使用模式识别来搜索上面有多少只鸭子。但我不知道每只鸭子匹配哪种模式。

【问题讨论】:

  • 你的老师应该在课堂上告诉你如何完成这项任务。如果你不知道,你可能应该多加注意!如果您有特定的编程问题,请编辑该问题以便它提出该问题。否则,也许你应该问你的老师。
  • 老师不知道t give any clue. I have to fid out by myself. I think I should use pattern recognition. But I dont 知道图像的哪个部分可以为每只鸭子图案。我不需要源代码。只是算法或伪代码。
  • http://www.DuckOverflow.com/
  • 坦率地说,这看起来不像是家​​庭作业,太复杂了恕我直言。
  • 这是一个非常有趣的家庭作业,虽然我同意它很复杂!

标签: algorithm image-processing pattern-matching


【解决方案1】:

我认为你可以通过分割鸭子的喙并计算二进制图像中connected components的数量来解决这个问题。

要分割鸭嘴,首先将图像转换为HSV color space,然后使用色调组件执行二值化。请注意,鸭子的喙部色调与图像的其他部分不同。

【讨论】:

  • 我认为这可能和我的 SIFT 想法有同样的问题——鸭子面朝后怎么办?没有喙:/
  • 没错。用这种方法你只会得到一个大概的数字。
  • 我想如果不是不可能找到一个精确的方法来解决这个问题,也是非常困难的。你的方法比 SIFT 有一个优势,它实现起来要简单得多,同时给出了同样好的近似值:)
【解决方案2】:

这是一种方法:

圆的霍夫变换:

  • 初始化由 (x,y,radius) 索引的累加器数组
  • 对于每个像素:
    • 计算边缘(例如,Sobel 算子将提供幅度和方向),如果幅度超过某个阈值,则:
      • 增加该边缘可能提供证据的每个累加器(仅边缘方向上的 (x,y),仅 min_duck_radius 和 max_duck_radius 之间的半径)
  • 现在对累加器阵列进行平滑和阈值化处理,最高累加器的坐标会告诉您磁头的位置。如果您对累加器中的值进行直方图绘制,阈值可能会突飞猛进(“大量证据”和“噪声”之间可能存在明显差异)。

所以这很简洁,但它可以让你开始。

【讨论】:

    【解决方案3】:

    这可能只是因为我现在正在与 SIFT 合作,但在我看来它可能对您的问题有好处。

    这是一种算法,在两张不同的图片上匹配相同的对象,其中对象可以有不同的方向、比例,并在两张图片上从不同的角度观看。当一个对象被另一个对象部分隐藏(就像你的鸭子一样)时,它也可以工作。

    我建议找到一张清晰的橡皮鸭图片 (:D),然后使用一些 SIFT 实现(VLFeat - C library with SIFT but no visualization SIFT++ - based on VLFeat, but in C++ Rob Hess in C with OpenCV...)。

    您应该记住,与 SIFT(以及其他任何东西)的匹配并不完美 - 因此您可能无法获得图片中橡胶鸭子的准确数量。

    【讨论】:

    • 您好,谢谢您的回答。但我认为如果使用 SIFT,我的图像几乎不会被检测到。既然有鸭子脸不厚道。
    • hm,确实如此...但是由于 SIFT 在视角变化下(在一定程度上)是不变的,因此使用几(2-3)张学习图片可能就足够了(鸭子前进,向后,也许从侧面)。而且,正如我已经提到的,不存在可以识别任何位置/方向的任何对象的通用且完美的方法
    • 先用 SIFT 识别正面和侧面的鸭子怎么样?一旦你得到这些,将这些区域空白(用 255 或其他东西填充它们的边界框)。然后用 SIFT 得到背向鸭,基本能识别出黄色的球状。答案中给出的链接很棒,这是另一个以防万一(使用 OpenCV):aishack.in/2010/07/implementing-sift-in-opencv
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2019-11-07
    • 2022-01-27
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    相关资源
    最近更新 更多