Removed person detection
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
# Person Detection Script
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
import cv2
|
|
||||||
import imutils
|
|
||||||
import numpy as np
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
HOGCV = cv2.HOGDescriptor()
|
|
||||||
HOGCV.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
|
|
||||||
|
|
||||||
def detect(frame):
|
|
||||||
bounding_box_cordinates, weights = HOGCV.detectMultiScale(frame, winStride = (4, 4), padding = (8, 8), scale = 1.03)
|
|
||||||
|
|
||||||
person = 1
|
|
||||||
for x,y,w,h in bounding_box_cordinates:
|
|
||||||
cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)
|
|
||||||
cv2.putText(frame, f'person {person}', (x,y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,0,255), 1)
|
|
||||||
person += 1
|
|
||||||
|
|
||||||
cv2.putText(frame, 'Status : Detecting ', (40,40), cv2.FONT_HERSHEY_DUPLEX, 0.8, (255,0,0), 2)
|
|
||||||
cv2.putText(frame, f'Total Persons : {person-1}', (40,70), cv2.FONT_HERSHEY_DUPLEX, 0.8, (255,0,0), 2)
|
|
||||||
|
|
||||||
if str(args["preview"]) == 'true':
|
|
||||||
cv2.imshow('output', frame)
|
|
||||||
return frame
|
|
||||||
|
|
||||||
def humanDetector(args):
|
|
||||||
image_path = args["image"]
|
|
||||||
image_url_path = args["imageUrl"]
|
|
||||||
video_path = args['video']
|
|
||||||
if str(args["camera"]) == 'true' : camera = True
|
|
||||||
else : camera = False
|
|
||||||
writer = None
|
|
||||||
if args['output'] is not None and image_path is None:
|
|
||||||
writer = cv2.VideoWriter(args['output'],cv2.VideoWriter_fourcc(*'MJPG'), 10, (600,600))
|
|
||||||
if camera:
|
|
||||||
print('[INFO] Opening Web Cam.')
|
|
||||||
detectByCamera(ouput_path,writer)
|
|
||||||
elif video_path is not None:
|
|
||||||
print('[INFO] Opening Video from path.')
|
|
||||||
detectByPathVideo(video_path, writer)
|
|
||||||
elif image_path is not None:
|
|
||||||
print('[INFO] Opening Image from path.')
|
|
||||||
detectByPathImage(image_path, args['output'])
|
|
||||||
elif image_url_path is not None:
|
|
||||||
print('[INFO] Opening Image from URL path.')
|
|
||||||
detectByPathUrlImage(image_url_path, args['output'])
|
|
||||||
|
|
||||||
def detectByCamera(writer):
|
|
||||||
video = cv2.VideoCapture(0)
|
|
||||||
print('Detecting people...')
|
|
||||||
while True:
|
|
||||||
check, frame = video.read()
|
|
||||||
frame = detect(frame)
|
|
||||||
if writer is not None:
|
|
||||||
writer.write(frame)
|
|
||||||
key = cv2.waitKey(1)
|
|
||||||
if key == ord('q'):
|
|
||||||
break
|
|
||||||
video.release()
|
|
||||||
cv2.destroyAllWindows()
|
|
||||||
|
|
||||||
def detectByPathVideo(path, writer):
|
|
||||||
video = cv2.VideoCapture(path)
|
|
||||||
check, frame = video.read()
|
|
||||||
if check == False:
|
|
||||||
print('Video Not Found. Please Enter a Valid Path (Full path of Video Should be Provided).')
|
|
||||||
return
|
|
||||||
print('Detecting people...')
|
|
||||||
while video.isOpened():
|
|
||||||
#check is True if reading was successful
|
|
||||||
check, frame = video.read()
|
|
||||||
if check:
|
|
||||||
frame = imutils.resize(frame , width=min(800,frame.shape[1]))
|
|
||||||
frame = detect(frame)
|
|
||||||
|
|
||||||
if writer is not None:
|
|
||||||
writer.write(frame)
|
|
||||||
|
|
||||||
key = cv2.waitKey(1)
|
|
||||||
if key== ord('q'):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
break
|
|
||||||
video.release()
|
|
||||||
cv2.destroyAllWindows()
|
|
||||||
def detectByCamera(writer):
|
|
||||||
video = cv2.VideoCapture(0)
|
|
||||||
print('Detecting people...')
|
|
||||||
while True:
|
|
||||||
check, frame = video.read()
|
|
||||||
frame = detect(frame)
|
|
||||||
if writer is not None:
|
|
||||||
writer.write(frame)
|
|
||||||
key = cv2.waitKey(1)
|
|
||||||
if key == ord('q'):
|
|
||||||
break
|
|
||||||
video.release()
|
|
||||||
cv2.destroyAllWindows()
|
|
||||||
|
|
||||||
def detectByPathImage(path, output_path):
|
|
||||||
image = cv2.imread(path)
|
|
||||||
image = imutils.resize(image, width = min(800, image.shape[1]))
|
|
||||||
result_image = detect(image)
|
|
||||||
if output_path is not None:
|
|
||||||
cv2.imwrite(output_path, result_image)
|
|
||||||
cv2.waitKey(0)
|
|
||||||
cv2.destroyAllWindows()
|
|
||||||
|
|
||||||
def detectByPathUrlImage(pathUrl, output_path):
|
|
||||||
image = imutils.url_to_image(pathUrl)
|
|
||||||
image = imutils.resize(image, width = min(800, image.shape[1]))
|
|
||||||
result_image = detect(image)
|
|
||||||
if output_path is not None:
|
|
||||||
cv2.imwrite(output_path, result_image)
|
|
||||||
cv2.waitKey(0)
|
|
||||||
cv2.destroyAllWindows()
|
|
||||||
|
|
||||||
def argsParser():
|
|
||||||
arg_parse = argparse.ArgumentParser()
|
|
||||||
arg_parse.add_argument("-v", "--video", default=None, help="path to Video File ")
|
|
||||||
arg_parse.add_argument("-i", "--image", default=None, help="path to Image File ")
|
|
||||||
arg_parse.add_argument("-iu", "--imageUrl", default=None, help="Url to Image File ")
|
|
||||||
arg_parse.add_argument("-c", "--camera", default=False, help="Set true if you want to use the camera.")
|
|
||||||
arg_parse.add_argument("-p", "--preview", default=True, help="Set true if you want to open preview")
|
|
||||||
arg_parse.add_argument("-o", "--output", type=str, help="path to optional output video file")
|
|
||||||
args = vars(arg_parse.parse_args())
|
|
||||||
return args
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
HOGCV = cv2.HOGDescriptor()
|
|
||||||
HOGCV.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
|
|
||||||
args = argsParser()
|
|
||||||
humanDetector(args)
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 88 KiB |
Reference in New Issue
Block a user