物体检测:需要培训还是不需要培训?

时间:2014-05-06 09:26:37

标签: c++ opencv image-processing computer-vision object-detection

这个问题与物体检测有关,基本上,检测任何已知的"宾语。举个例子,假设我有下面的对象。

  1. 瓶。
  2. 摄像机
  3. 汽车
  4. 我将拍摄所有这些单个物体的4张照片。一个来自左边,另一个来自右边,另外两个来自上下。我原本以为可以用这4张照片识别这些物体,因为无论你如何看到可以检测到它的物体,你都可以看到所有4个角度的照片。

    但是我对某些人的想法感到困惑,因为每个物体都有成千上万的正负图像训练引擎。我真的不认为这是必需的。

    简单地说,我的问题是,为了识别物体,我需要成千上万的正面和负面物体吗?或者只是4个角度的4张照片就足够了?

    我期待为此使用OpenCV。

    更新

    实际上主要是这样的事情。想象一下,我有2台笔记本电脑。一个是戴尔,另一个是惠普。两者都是笔记本电脑,但你知道,它们有明显的差异,包括Logo。我们可以使用Feature Description执行此操作吗?如果不是,那么"硬" "培训"处理?需要多少照片?

    更新2 我需要检测特定的"对象。不是所有的汽车,所有的瓶子等。例如," Maruti汽车模型123"和#34;法拉利汽车模型234"这两款车都不同。想象一下,我有上面提到的模型的Maruti和Ferrari的照片,然后我需要检测它们。我不必担心其他车辆或车辆,甚至其他型号的Maruti和法拉利。但是上面提到的" Maruti Car Model 123"应该被识别为" Maruti Car Model 123"以上提到"法拉利车型234"应该被识别为"法拉利车型234"。我需要多少张照片?

2 个答案:

答案 0 :(得分:1)

要回答标题中提到的问题,如果您希望能够确定图片中的对象是什么,则需要使用有监督的算法(经过培训)。否则,您将能够在某些情况下确定对象的边缘或存在,但不能确定它是什么类型的对象。为了说明对象是什么,你需要一个标记的训练集。

关于问题的内容,对象图片中可能的角度数是无限的。如果您的训练集中只有四张图片,则测试示例可以在训练示例A和训练示例B之间的某个角度拍摄,这使得很难识别您的算法。训练集越大,识别对象的概率越高。小心:你永远不会绝对确定你的算法会识别对象。它变得更有可能。

答案 1 :(得分:1)

数目:

  1. 如果您想要检测特定对象而不需要考虑视点更改,则可以使用2D功能: http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

  2. 要区分2个徽标,您可能需要为每个徽标构建一个探测器,该探测器将在一组图像上进行训练。例如,您可以训练Haar级联分类器。

  3. 为了区分不同型号的汽车,您可能需要使用每辆汽车的训练图像来训练分类器。但是,我遇到了一个使用最近邻方法的应用程序 - 它只是从给定的测试图像中提取特征,并将其与不同车型的已知图像集进行比较。

  4. 此外,如果您要解释有关应用程序的更多信息,我可以推荐一些方法和软件包。