我正在尝试检测视频中的人物。最初我想出了这个简单的代码。
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分钟!关于此事的任何指示都表示赞赏。