import numpy as np import cv2 from traindata import traindata from datetime import datetime import os import utils as utils from picamera.array import PiRGBArray from picamera import PiCamera import time import analytics #Uncomment to enable lights on PI if utils.getEnvironmentValueByKey('ENVIRONMENT_TYPE') == 'RASPBERRYPI': import showLightsOnPI as showPILights #train data if flag enabled or else load file from trained file if utils.getEnvironmentValueByKey('TRAIN_GENDER_CLASSFICATION_DATA') == 'TRUE': traindata.trainGenderClassficationData('images/male/*.*', 1, 'images/female/*.*', 2, 50, 50) #handling multiple versions of OpenCV if cv2.__version__ > "3.1.0": faceRecognizer = cv2.face.LBPHFaceRecognizer_create() faceRecognizer.read("data/face_recognizer_gender.yml") else: faceRecognizer = cv2.face.createLBPHFaceRecognizer() faceRecognizer.load("data/face_recognizer_gender.yml") #initialize variables gender_classifier = {1: 'Male', 2: 'Female'} startTime = datetime.now()
from os.path import join, dirname from dotenv import load_dotenv import os from socketIO_client import SocketIO, LoggingNamespace import json import utils socketIO = SocketIO(utils.getEnvironmentValueByKey('SOCKET_HOST_NAME'), utils.getEnvironmentValueByKey('SOCKET_PORT'), LoggingNamespace) def recordStatistics(facetime, total, maleFacesCount, femaleFacesCount): statsFile = open("analytics.txt", "a") data = {} data['date'] = str(facetime.date()) + ' ' + str(facetime.hour) + ':' + str( facetime.minute) data['total'] = str(total) data['maleFacesCount'] = str(maleFacesCount) data['femaleFacesCount'] = str(femaleFacesCount) jsonData = json.dumps(data) string = str(facetime.date()) + ' ' + str(facetime.hour) + ':' + str( facetime.minute) + ',' + str(total) + ',' + str( maleFacesCount) + ',' + str(femaleFacesCount) statsFile.write(string + '\n') statsFile.close() #with SocketIO('127.0.0.1', 8000, LoggingNamespace) as socketIO:
from traindata import traindata from datetime import datetime import os import utils as utils import cognitive_face as CF import requests from io import BytesIO from PIL import Image, ImageDraw import face_utils as faceutils initialImage = '/Users/ekumar/EKProject/projects/facedetection/pi/face-detection/face-detection/images/face_recognition/img_1.jpg' personImage1 = Image.open(initialImage) initialFace = faceutils.detectFaces(np.array(personImage1)) #train data if flag enabled or else load file from trained file if utils.getEnvironmentValueByKey('TRAIN_GENDER_CLASSFICATION_DATA') == 'TRUE': traindata.trainDataForFacialRecognition() radius = 1 neighbors = 8 grid_x = 8 grid_y = 8 #handling multiple versions of OpenCV if cv2.__version__ > "3.1.0": faceRecognizer = cv2.face.LBPHFaceRecognizer_create() faceRecognizer.read("data/face_recognition_OB.yml") else: faceRecognizer = cv2.face.createLBPHFaceRecognizer(radius, neighbors, grid_x, grid_y, 130) faceRecognizer.load("data/face_recognition_OB.yml")