Opencv 利用鱼眼镜头进行目标检测

Opencv 利用鱼眼镜头进行目标检测,opencv,detection,Opencv,Detection,我试图使用openCV中的hog检测器,通过鱼眼从视频中检测3种类型的对象。这些类型包括: 人 书籍(由某人持有时) 椅子 我拥有的视频快照看起来像来自-: 我使用默认的人员检测器设置了hog分类器,并尝试先检测人员。我注意到,当人们的体型达到你期望的非鱼眼镜头的尺寸时(你可以用标准的35毫米镜头),他们就会被发现。如果不是,这些人就不会被发现。这似乎是合乎逻辑的,因为分类器希望人们是标准尺寸的 我想知道如何修改分类器以通过鱼眼镜头检测人。我看到的选项有: 不失真鱼眼效果并运行分类器-我不喜欢这

我试图使用openCV中的hog检测器,通过鱼眼从视频中检测3种类型的对象。这些类型包括:

  • 书籍(由某人持有时)
  • 椅子
  • 我拥有的视频快照看起来像来自-:

    我使用默认的人员检测器设置了hog分类器,并尝试先检测人员。我注意到,当人们的体型达到你期望的非鱼眼镜头的尺寸时(你可以用标准的35毫米镜头),他们就会被发现。如果不是,这些人就不会被发现。这似乎是合乎逻辑的,因为分类器希望人们是标准尺寸的

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

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

  • 解决这个问题的有效方法是什么?我的2个选项是否适用于所有3种对象(人、书和椅子)
  • 什么是好的分类器,可以通过训练来识别3种类型的对象(级联或hog或其他任何类型-请建议一个库)?我的#2扭曲方法和正反两方面的训练是一个很好的解决方案吗

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

    对于最快的解决方案,我建议您首先选择扭曲图像。如果您愿意投入时间和资源对分类器进行再培训(这取决于您检测椅子和书籍的方式),那么有一些公开的行人数据集将非常有用

    (一)

    (二)


    由于椅子设计的多样性,您不太可能找到椅子级联。我建议您针对您打算检测的特定椅子培训您自己的级联。我不知道有任何现有的图书层叠,快速的谷歌搜索也没有产生任何有希望的结果。如果您打算培训自己的图书级联,ImageNet是一个很好的数据资源。

    关于书籍和椅子的情况如何?关于使用神经网络的深度学习来检测书架的简要讨论,请参见“我认为深度学习对于这个问题来说是过火了”。我相信做一个不失真的操作,然后使用Classifier是最好的方法。