训练自定义HOG分类器并在测试集图像或框架中识别对象

时间:2018-12-30 18:43:23

标签: python opencv3.0

具体问题摘要:

1)如何在opencv中创建自定义HOG和SVM分类器,以便可以在框架中识别对象并在其周围绘制矩形?

2)训练新的HOG和SVM时,需要在训练集图像上进行哪种类型的数据准备。例如,正面图像在进食训练之前是否只需要裁剪感兴趣的对象并居中等?

详细信息:

我对openCV相对较新,并且正在尝试创建一个新的HOG和SVM分类器,以从网络摄像头检测车辆。我发现的大多数教程都使用默认的人员检测器以及下面的detectMultiScale()函数(例如,https://www.programcreek.com/python/example/89410/cv2.HOGDescriptor_getDefaultPeopleDetector)。

import cv2
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
cv2.detectMultiScale()

我确实找到了另一篇文章Apply HOG+SVM Training to Webcam for Object Detection,描述了如何创建自己的HOG,然后使用它来识别图像/帧是否包含感兴趣的对象。但是,它没有描述如何修改此方法以将其与setSVMDetector()方法和detectMultiScale()结合使用,这将允许对象检测和对象的位置隔离。我还找到了此链接http://answers.opencv.org/question/56655/how-to-use-a-custom-svm-with-hogdescriptor-in-python/,我相信它可以解释如何创建自己的HOG对象,但是对于opencv来说,它太新了,不足以完全理解如何在自己的代码中实现它。

有没有一种方法可以训练自己的分类器,并使用它通过绘制rect obj来识别测试集中的对象。在他们旁边?还是有一个更简单的解决方案来实现这一结果?

我将很感谢其他人可以提供的任何建议或见识。

谢谢。

0 个答案:

没有答案