Initial scan

This commit is contained in:
Artwork1 2017-12-11 20:55:07 +01:00
commit 3439e34f4f

44
scan_faces.py Normal file
View file

@ -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())