我正在尝试使用HOGDescriptor_getDefaultPeopleDetector()
识别我的视频Feed中是否存在人物。
对于每个收到的帧,它会检查其中是否有人,但由于某种原因,OpenCV会将帧左右丢弃到我的Feed非常滞后的点。此GIF演示了生成的Feed延迟和丢帧。
以下是导致问题的解压缩代码
修改
我尝试将图像调整为400X400,现在看起来效果更好了。框架仍然偶尔会被丢弃,但这次进给顺畅。 New GIF
import cv2
import datetime
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
hogParams = {'winStride': (8, 8), 'padding': (32, 32), 'scale': 1.05}
def detectHuman(frame):
start = datetime.datetime.now()
frame = cv2.resize(frame, (400, 400))
cv2.imshow('Reduced Frame', frame)
result = hog.detectMultiScale(frame, **hogParams)
print("Detection Took: {}s".format((datetime.datetime.now()-start).total_seconds()))
print result
camera = cv2.VideoCapture(0)
while True:
grabbed, frame = camera.read()
if not grabbed:
break
detectHuman(frame)
cv2.imshow('Main', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
camera.release()
cv2.destroyAllWindows()