根据显着性的部分信息找到完整的轮廓

时间:2018-05-06 15:05:18

标签: python opencv image-processing

我正在使用深度学习方法来查找图像中的显着对象。显着性查找器的输出是像素信息(在0-1之间)。基于某个阈值,我在图像中得到一个区域。但有时候,它只是一个部分对象。请看下面的图片:

enter image description here

输入左侧图像,第二列,第一行表示显着性输出,第二行是轮廓。

轮廓是我尝试过的。但不知道如何结合显着性和轮廓来获得一个对象。在输入图像中,我会寻找一个完整的男孩。

你能建议任何方法吗?

1 个答案:

答案 0 :(得分:1)

我认为显着性和"得到一个对象",在文献中称为语义对象分割,是两个非常明显的问题,混合它们可能不会给你带来好的结果。

如果我没记错的话,显着性非常关注预测人类注意力首先出现在图像中的哪个位置。预测因子通常基于大脑的注意力或注意机制的科学理论,或者基于"显着性的任何定义。似乎很合理。

对象分割这是一个更容易的问题。 "对象"是一个非常高水平和非常语义的概念(你的例子中的一个对象是什么?整个人?他的脸,衬衫,腿,鞋?)。语义分割算法试图找到精确的边界,而显着性检测器只是给你一种热图。 Here's a nice, fairly recent overview

那你该怎么办?

  • 如果您追踪对象,请摆脱显着性并尝试运行最先进的对象分割网络。所有方法都基于深度学习。

  • 如果您想要显着对象,请从分段开始,然后根据与显着性图的重叠对找到的对象进行评分。

不要从兔子洞里走下来从轮廓上取物。不会工作。人们多年来一直在做深度学习。与对象分类一样,它是计算机视觉领域的一个领域,深度学习已经向前迈出了一大步,尽管我根本不认为它已经解决了。