Showing
1 changed file
with
53 additions
and
0 deletions
VideoProcessingModule/src/HumanDetect.py
0 → 100644
| 1 | +# import the necessary packages | ||
| 2 | +import numpy as np | ||
| 3 | +import cv2 | ||
| 4 | +import time | ||
| 5 | +# initialize the HOG descriptor/person detector | ||
| 6 | +hog = cv2.HOGDescriptor() | ||
| 7 | +hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) | ||
| 8 | + | ||
| 9 | +cv2.startWindowThread() | ||
| 10 | +fname = "./croppedimg/" | ||
| 11 | +# open webcam video stream | ||
| 12 | +cap = cv2.VideoCapture(0) | ||
| 13 | +i = 0 | ||
| 14 | +while (True): | ||
| 15 | + # Capture frame-by-frame | ||
| 16 | + start = time.time() | ||
| 17 | + ret, frame = cap.read() | ||
| 18 | + # resizing for faster detection[240,160] [320 * 240] | ||
| 19 | + frame = cv2.resize(frame, (240, 160)) | ||
| 20 | + # using a greyscale picture, also for faster detection | ||
| 21 | + gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) | ||
| 22 | + | ||
| 23 | + # detect people in the image | ||
| 24 | + # returns the bounding boxes for the detected objects | ||
| 25 | + boxes, weights = hog.detectMultiScale(frame, winStride=(8, 8)) | ||
| 26 | + | ||
| 27 | + boxes = np.array([[x, y, x + w, y + h] for (x, y, w, h) in boxes]) | ||
| 28 | + for (xA, yA, xB, yB) in boxes: | ||
| 29 | + # display the detected boxes in the colour picture | ||
| 30 | + cv2.rectangle(frame, (xA, yA), (xB, yB), | ||
| 31 | + (0, 255, 0), 2) | ||
| 32 | + if(i%10 == 0): | ||
| 33 | + cropped = frame[yA:yB,xA:xB] | ||
| 34 | + s = fname + str(i)+'.jpg' | ||
| 35 | + cv2.imwrite(s, cropped) # IMG File Write | ||
| 36 | + print("time :", time.time() - start) | ||
| 37 | + print("Human Detect!") #Alert | ||
| 38 | + if(i > 200): | ||
| 39 | + i=0 | ||
| 40 | + i= i+1 | ||
| 41 | + # Display the resulting frame | ||
| 42 | + | ||
| 43 | + | ||
| 44 | + cv2.imshow('frame', frame) | ||
| 45 | + if cv2.waitKey(1) & 0xFF == ord('q'): | ||
| 46 | + break | ||
| 47 | + | ||
| 48 | +# When everything done, release the capture | ||
| 49 | +cap.release() | ||
| 50 | +# and release the output | ||
| 51 | +# finally, close the window | ||
| 52 | +cv2.destroyAllWindows() | ||
| 53 | +cv2.waitKey(1) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment