-
Notifications
You must be signed in to change notification settings - Fork 1
/
human_recognition.py
29 lines (24 loc) · 963 Bytes
/
human_recognition.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import cv2
import time
if __name__ == '__main__':
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
cap = cv2.VideoCapture("/path/to/test/video")
while True:
r, frame = cap.read()
if r:
start_time = time.time()
frame = cv2.resize(frame,(1280, 720)) # Downscale to improve frame rate
gray_frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) # HOG needs a grayscale image
rects, weights = hog.detectMultiScale(gray_frame)
# Measure elapsed time for detections
end_time = time.time()
print("Elapsed time:", end_time-start_time)
for i, (x, y, w, h) in enumerate(rects):
if weights[i] < 0.7:
continue
cv2.rectangle(frame, (x,y), (x+w,y+h),(0,255,0),2)
cv2.imshow("preview", frame)
k = cv2.waitKey(1)
if k & 0xFF == ord("q"): # Exit condition
break