-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrecognizer.py
More file actions
63 lines (59 loc) · 1.41 KB
/
recognizer.py
File metadata and controls
63 lines (59 loc) · 1.41 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import cv2
import RPi.GPIO as GPIO
from time import sleep
from picamera import PiCamera
from io import BytesIO
from PIL import image
import numpy as np
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(12,GPIO.OUT)
print 'now recognizing starts'
recognizer=cv2.createLBPHFaceRecognizer()
detector=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
recognizer.load('/home/pi/projectfyp/trainer.yml')
img=BytesIO()
cam=PiCamera()
cam.resolution(1680,2240)
cam.start_preview()
sleep(2)
cam.capture(img,format='jpeg',resize=(1200,1600),quality=75)
img.seek(0)
pic=Image.open(img)
gray=cv2.cvtColor(np.array(pic),cv2.COLOR_BGR2GRAY)
## here detector would crop face out of image
faces=detector.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30,30),flags=cv2.cv.CV_HAAR_SCALE_IMAGE)
for (x,y,w,h) in faces:
cv2.rectangle((x,y),(x+w,y+h),(0,255,0),2)
Id,conf=recognizer.predict(gray[y:y+h,x:x+w])
print conf
print Id
if (conf<40):
GPIO.output(11,GPIO.HIGH)
if(Id==1):
Id='baqir'
print Id
sleep(2)
elif(Id==2):
Id=’Ihtisham’
Print Id
Sleep (2)
elif(Id==3):
Id=’Zaid’
Print Id
Sleep(2)
elif(Id==4):
Id=’Hasan’
Print Id
Sleep(2)
elif(Id==5):
Id=’Naveed’
Print Id
Sleep(2)
else:
Id='unknown'
print Id
GPIO.output(12,GPIO.HIGH)
sleep(2)
GPIO.cleanup()
cv2.destroyAllWiindows()