【问题标题】:how to extract an object from an image如何从图像中提取对象
【发布时间】:2012-05-11 12:48:01
【问题描述】:

我想从图像中提取一个对象,例如人、汽车或类似的东西。图像只是普通的图像,而不是医学图像或其他特定用途的图像。

我找了很久,发现自动图像分割算法只是将图像分割成一组区域或给出图像中的轮廓,而不是语义对象。所以我转向交互式图像分割算法,我发现了一些流行的算法,如交互式图形切割和 SIOX 等。我认为这些算法正好满足我的需求。

另外,我还下载了两个交互式图像分割工具,第一个是interactive segmentation tool,第二个是interactive segmentation tool-box

所以我的问题是

1.如果交互式图像分割算法是我的任务的正确解决方案,因为性能是最重要的。

2.如果我想使用自动图像分割算法,下一步该怎么做?

Any suggestion will be  approciated.

【问题讨论】:

  • 不知道为什么人们有投票结束这个问题。即使作者可以对其进行一些格式化,它看起来也是有效的。
  • 你能告诉我在哪里可以看到投票以结束问题吗?我什么也没看到。谢谢。
  • 可能您没有查看它们的权限。有 4 个链接:链接、编辑、关闭和标记

标签: image computer-vision image-segmentation


【解决方案1】:

如果您想通过几笔涂鸦从单个静态图像中挑选出一个对象。我建议你阅读

'Closed-form solution to image matting' 
or 'Spectral matting', 
or 'lazy snapping' 

但在我的测试中,最后一种方法在处理毛发等细微物体时的性能不如前两种方法。 但是你可以很容易地从 google 找到他们的 matlab 源代码。

但是前两种方法实际上用起来不太舒服,我认为你需要做很多修改才能使它们易于使用。恕我直言,这是主要问题,它是否需要在图像上进行非常体面的涂鸦,如果你画了一些额外的涂鸦或在错误的位置,你会毁掉你的对象切割。

除此之外,您还可以尝试“贝叶斯抠图、位置抠图等”。这都需要一些叫做trimap的帮助图像,而且真的很难画。

【讨论】:

    【解决方案2】:

    从图像中提取对象,特别是图片并不像您想象的那么容易,您可能需要看看 OpenCV 项目。

    OpenCV

    【讨论】:

    • 感谢您的建议。由于我是计算机视觉的初学者,所以我进行了很多调查以找到一个现有的解决方案来学习它。如果我从头开始,时间将不够。由于我发现一些交互式分割算法可以执行我的任务,我不确定从专业人士的角度来看这是否是“正确”的解决方案,是否有更好的解决方案解决方案。
    【解决方案3】:

    除了 OpenCV,我建议查看 ITK。它在医学图像分析项目中非常流行,因为众所周知,半自动分割工具可提供最佳结果。我认为这些方法也适用于自然图像。

    尝试使用 livewire 分割和基于水平集的图像分割等工具。 ITK 有几个演示,可让您在自己的图像上使用这些工具。 this 等演示应用程序是开源分发的一部分,但可以直接从 itk 服务器下载(四处寻找说明)

    【讨论】:

    • 谢谢。我将尝试使用此工具包来确定最适合我的任务。
    【解决方案4】:

    如果这是一个商业案例,您最好寻找专门从事“视频内容分析”的公司。我的意思是:可靠的人员和车辆检测不是一个人的项目。

    一般用途的分割工具无法解决问题,因为它们不知道人或车的样子。他们所要做的就是在图像中找到均匀的区域。

    【讨论】:

    • 我读了一些论文,我知道自动图像分割不能解决“语义差距”问题,所以你是对的。现在看来,如果我想从图像中提取对象,这意味着弥合低级特征和人类语义之间的差距,我必须依靠自己。所以交互式分割算法似乎是目前最简单直接的解决方案。
    【解决方案5】:

    现在已经很晚了,但是有一个名为connected component labeling 的算法,您可能会发现它很有用。

    这里是算法的wiki link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2018-03-28
      • 2013-04-13
      相关资源
      最近更新 更多