使用鱼眼镜头进行物体检测

Object detection using a fish eye lens

我正在尝试使用 openCV 中的 hog 检测器,通过鱼眼从视频中检测 3 种类型的对象。类型是:

  1. 书籍(由某人持有时)
  2. 椅子

我的视频快照看起来像这张来自 this website - 的图片:

我使用默认的人物检测器设置了 hog 分类器,并尝试先检测人物。我注意到当人们的尺寸达到非鱼眼镜头(使用标准 35 毫米镜头会得到的尺寸)时,他们就会被检测到。否则,人们将不会被发现。这似乎是合乎逻辑的,因为分类器希望人们具有标准尺寸。

我想知道如何修改分类器以通过鱼眼镜头检测人。我看到的选项是:

  1. 取消鱼眼效果和运行分类器的失真 - 我不喜欢这样做,因为目前,我无法校准相机并获得失真系数
  2. 将人物图像数据集中的人物图像扭曲到我将通过我的视频获得的扭曲周围并重新训练分类器 - 我认为这可行,但我想了解这是否不会像我认为的那样工作工作。

我的问题是:

  1. 解决这个问题的有效方法是什么?我的第 2 个选项是否适用于所有 3 种类型的对象(人、书籍和椅子)。
  2. 什么是可以训练以识别 3 种对象类型的好分类器(级联或猪或其他任何东西 - 请同时推荐一个库)?我的#2 扭曲和训练正面和负面例子的方法是一个好的解决方案吗?

将 HOG 级联重新训练到 OpenCV 中包含的级联的性能水平将是一个非常复杂的过程。您还必须模拟特定镜头的失真以修改训练数据。

为了获得最快的解决方案,我建议您首先选择扭曲图像。如果您愿意投入时间和资源来重新训练分类器(您可能必须这样做,具体取决于您检测椅子和书籍的方式),那么一些公开可用的行人数据集将很有用。

1) http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/

2) http://pascal.inrialpes.fr/data/human/

由于椅子设计的可变性,您不太可能找到椅子级联。我建议您在要检测的特定椅子上训练自己的级联。我不知道任何现有的书籍级联,快速 google 搜索没有产生任何有希望的结果。如果您打算为书籍训练自己的级联,一个很好的数据资源是 ImageNet。