From 3439e34f4f07ccc3bcad7903a22c67e31d5a1f56 Mon Sep 17 00:00:00 2001 From: Artwork1 Date: Mon, 11 Dec 2017 20:55:07 +0100 Subject: [PATCH] Initial scan --- scan_faces.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 scan_faces.py diff --git a/scan_faces.py b/scan_faces.py new file mode 100644 index 0000000..2206f5a --- /dev/null +++ b/scan_faces.py @@ -0,0 +1,44 @@ +import io +import picamera +import cv2 +import numpy as np +import datetime +import time + + +camera = picamera.PiCamera() +camera.resolution = (1280, 720) + +#~ /usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml (~22sec) +#~ /usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml (>25sec) +#~ /usr/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml (~21sec) +#~ /usr/share/opencv/haarcascades/haarcascade_frontalface_alt_tree.xml (~14sec, seems to miss many faces) +classifier = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml') + +FPS = 1.0 +frameTimeDelta = datetime.timedelta(seconds=1.0/FPS) + +while True: + print(time.time(),"GO") + start = datetime.datetime.utcnow() + stream = io.BytesIO() + camera.capture(stream, format='jpeg') + print(time.time(),"captured") + buff = np.fromstring(stream.getvalue(), dtype=np.uint8) + image = cv2.imdecode(buff,1) + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + print(time.time(),"grayed") + faces = classifier.detectMultiScale(gray, 1.2, 5, minSize=(30,20)) + + print(time.time(),"Found {} faces".format(len(faces))) + + end = datetime.datetime.utcnow() + if end - start < frameTimeDelta: + + waitTime = frameTimeDelta - (end-start) + print("wait {}".waitTime.total_seconds()) + time.sleep(waitTime.total_seconds()) + + + +