提高HOG SVM分类器的速度/性能

时间:2017-05-12 10:24:52

标签: python performance opencv svm detection

我正在尝试检测视频中的人物。最初我想出了这个简单的代码。

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

def detectPeople(foreground):
    start = time.time()
    rects, weights = hog.detectMultiScale(foreground, winStride=(2, 2), padding=(8, 8), scale=1.05)
    rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
    people = non_max_suppression(rects, probs=None, overlapThresh=0.65)
    end = time.time()

我对视频中的每一帧都detectPeople。这些是前五帧的时间结果。

time:  0.9525866508483887
time:  0.9560775756835938
time:  0.9591171741485596
time:  0.9400520324707031
time:  0.9048192501068115

一帧可笑地接近1秒。使用25 fps的视频10秒钟,需要4分钟!关于此事的任何指示都表示赞赏。

0 个答案:

没有答案