diff --git a/Facial_Recognition_Enrollment.py b/Facial_Recognition_Enrollment.py new file mode 100644 index 000000000..9fb7000af --- /dev/null +++ b/Facial_Recognition_Enrollment.py @@ -0,0 +1,77 @@ +import os +import dlib +import cv2 +import sys +import numpy as np + +try: + import cPickle # Python2. +except ImportError: + import _pickle as cPickle # Python3. + +pwd = sys.path[0] +PREDICTOR_PATH = pwd + '/Facial_models/shape_predictor_68_face_landmarks.dat' +FACE_RECOGNITION_MODEL_PATH = pwd + '/Facial_models/dlib_face_recognition_resnet_model_v1.dat' + +faceDetector = dlib.get_frontal_face_detector() +shapePredictor = dlib.shape_predictor(PREDICTOR_PATH) +faceRecognizer = dlib.face_recognition_model_v1(FACE_RECOGNITION_MODEL_PATH) + + +faceDatasetFolder = pwd + '/Facial_images/face_rec/train/' + +subfolders = [] +for x in os.listdir(faceDatasetFolder): + xpath = os.path.join(faceDatasetFolder, x) + if os.path.isdir(xpath): + subfolders.append(xpath) + + +nameLabelMap = {} +labels = [] +imagePaths = [] +for i, subfolder in enumerate(subfolders): + for x in os.listdir(subfolder): + xpath = os.path.join(subfolder, x) + if x.endswith('jpg'): + imagePaths.append(xpath) + labels.append(i) + nameLabelMap[xpath] = subfolder.split('/')[-1] + +index = {} +i = 0 +faceDescriptors = None +for imagePath in imagePaths: + print("processing: {}".format(imagePath)) + img = cv2.imread(imagePath) + + faces = faceDetector(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) + + print("{} Face(s) found".format(len(faces))) + + for k, face in enumerate(faces): + + shape = shapePredictor(cv2.cvtColor(img, cv2.COLOR_BGR2RGB), face) + + landmarks = [(p.x, p.y) for p in shape.parts()] + + faceDescriptor = faceRecognizer.compute_face_descriptor(img, shape) + + + faceDescriptorList = [x for x in faceDescriptor] + faceDescriptorNdarray = np.asarray(faceDescriptorList, dtype=np.float64) + faceDescriptorNdarray = faceDescriptorNdarray[np.newaxis, :] + + + if faceDescriptors is None: + faceDescriptors = faceDescriptorNdarray + else: + faceDescriptors = np.concatenate((faceDescriptors, faceDescriptorNdarray), axis=0) + + index[i] = nameLabelMap[imagePath] + i += 1 + +# Write descriors and index to disk +np.save(pwd+'/Facial_models/descriptors.npy', faceDescriptors) +with open(pwd+'/Facial_models/index.pkl', 'wb') as f: + cPickle.dump(index, f) diff --git a/Facial_Recognition_Inference.py b/Facial_Recognition_Inference.py new file mode 100644 index 000000000..46733fbab --- /dev/null +++ b/Facial_Recognition_Inference.py @@ -0,0 +1,99 @@ +import os,sys,time +import dlib +import cv2 +import numpy as np + +try: + import cPickle # Python 2 +except ImportError: + import _pickle as cPickle # Python 3 + + +pwd = sys.path[0] +PREDICTOR_PATH = pwd + '/Facial_models/shape_predictor_68_face_landmarks.dat' +FACE_RECOGNITION_MODEL_PATH = pwd + '/Facial_models/dlib_face_recognition_resnet_model_v1.dat' + +SKIP_FRAMES = 10 +THRESHOLD = 0.4 + +faceDetector = dlib.get_frontal_face_detector() +shapePredictor = dlib.shape_predictor(PREDICTOR_PATH) +faceRecognizer = dlib.face_recognition_model_v1(FACE_RECOGNITION_MODEL_PATH) + +index = np.load(pwd+'/Facial_models/index.pkl', allow_pickle=True) +faceDescriptorsEnrolled = np.load(pwd+'/Facial_models/descriptors.npy') + + +cam = cv2.VideoCapture(1) + +count = 0 + +while True: + t = time.time() + success, im = cam.read() + + if not success: + print('cannot capture input from camera') + break + + + if (count % SKIP_FRAMES) == 0: + + img = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) + faces = faceDetector(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) + + for face in faces: + + shape = shapePredictor(cv2.cvtColor(img, cv2.COLOR_BGR2RGB), face) + + x1 = face.left() + y1 = face.top() + x2 = face.right() + y2 = face.bottom() + + faceDescriptor = faceRecognizer.compute_face_descriptor(img, shape) + + # dlib format to list + faceDescriptorList = [m for m in faceDescriptor] + # to numpy array + faceDescriptorNdarray = np.asarray(faceDescriptorList, dtype=np.float64) + faceDescriptorNdarray = faceDescriptorNdarray[np.newaxis, :] + + # Euclidean distances + distances = np.linalg.norm(faceDescriptorsEnrolled - faceDescriptorNdarray, axis=1) + + # Calculate minimum distance and index of face + argmin = np.argmin(distances) # index + minDistance = distances[argmin] # minimum distance + + + if minDistance <= THRESHOLD: + label = index[argmin] + else: + label = 'unknown' + + print("time taken = {:.3f} seconds".format(time.time() - t)) + + + cv2.rectangle(im, (x1, y1), (x2, y2), (0, 255, 0), 2) + + #center = (int((x1 + x2)/2.0), int((y1 + y2)/2.0)) + #radius = int((y2-y1)/2.0) + #color = (0, 255, 0) + #cv2.circle(im, center, radius, color, thickness=1, lineType=8, shift=0) + + font_face = cv2.FONT_HERSHEY_SIMPLEX + font_scale = 0.8 + text_color = (0, 255, 0) + printLabel = '{} {:0.4f}'.format(label, minDistance) + cv2.putText(im, printLabel, (int(x1), int(y1)) , font_face, font_scale, text_color, thickness=2) + + + cv2.imshow('img', im) + + k = cv2.waitKey(1) & 0xff + if k == 27: + break + + count += 1 +cv2.destroyAllWindows() diff --git a/Facial_Recognition_Registration.py b/Facial_Recognition_Registration.py index ccbe5ef98..e3193b93c 100644 --- a/Facial_Recognition_Registration.py +++ b/Facial_Recognition_Registration.py @@ -5,7 +5,7 @@ import cv2 def register_your_face(label): - num_cap = 20 + num_cap = 60 path = sys.path[0] + '/Facial_images/face_rec/train/' + label diff --git a/Facial_images/face_rec/train/User_2/0.jpg b/Facial_images/face_rec/train/User_2/0.jpg index ba3ef8144..2056159cc 100644 Binary files a/Facial_images/face_rec/train/User_2/0.jpg and b/Facial_images/face_rec/train/User_2/0.jpg differ diff --git a/Facial_images/face_rec/train/User_2/1.jpg b/Facial_images/face_rec/train/User_2/1.jpg index c9aa4c3c1..c9e095cb5 100644 Binary files a/Facial_images/face_rec/train/User_2/1.jpg and b/Facial_images/face_rec/train/User_2/1.jpg differ diff --git a/Facial_images/face_rec/train/User_2/10.jpg b/Facial_images/face_rec/train/User_2/10.jpg index 9c1154324..bc7ee227c 100644 Binary files a/Facial_images/face_rec/train/User_2/10.jpg and b/Facial_images/face_rec/train/User_2/10.jpg differ diff --git a/Facial_images/face_rec/train/User_2/11.jpg b/Facial_images/face_rec/train/User_2/11.jpg index 2e5e8ee13..3cd0c315c 100644 Binary files a/Facial_images/face_rec/train/User_2/11.jpg and b/Facial_images/face_rec/train/User_2/11.jpg differ diff --git a/Facial_images/face_rec/train/User_2/12.jpg b/Facial_images/face_rec/train/User_2/12.jpg index c9390ec52..24bca0321 100644 Binary files a/Facial_images/face_rec/train/User_2/12.jpg and b/Facial_images/face_rec/train/User_2/12.jpg differ diff --git a/Facial_images/face_rec/train/User_2/13.jpg b/Facial_images/face_rec/train/User_2/13.jpg index 0c9800004..e75338a0f 100644 Binary files a/Facial_images/face_rec/train/User_2/13.jpg and b/Facial_images/face_rec/train/User_2/13.jpg differ diff --git a/Facial_images/face_rec/train/User_2/14.jpg b/Facial_images/face_rec/train/User_2/14.jpg index 984e6bda4..6a619bfd6 100644 Binary files a/Facial_images/face_rec/train/User_2/14.jpg and b/Facial_images/face_rec/train/User_2/14.jpg differ diff --git a/Facial_images/face_rec/train/User_2/15.jpg b/Facial_images/face_rec/train/User_2/15.jpg index 1c98f0aef..d28f9aa67 100644 Binary files a/Facial_images/face_rec/train/User_2/15.jpg and b/Facial_images/face_rec/train/User_2/15.jpg differ diff --git a/Facial_images/face_rec/train/User_2/16.jpg b/Facial_images/face_rec/train/User_2/16.jpg index 9c53040cd..975e30774 100644 Binary files a/Facial_images/face_rec/train/User_2/16.jpg and b/Facial_images/face_rec/train/User_2/16.jpg differ diff --git a/Facial_images/face_rec/train/User_2/17.jpg b/Facial_images/face_rec/train/User_2/17.jpg index ba3ff8c4f..99adf490c 100644 Binary files a/Facial_images/face_rec/train/User_2/17.jpg and b/Facial_images/face_rec/train/User_2/17.jpg differ diff --git a/Facial_images/face_rec/train/User_2/18.jpg b/Facial_images/face_rec/train/User_2/18.jpg index 21aaa7375..07f2fd087 100644 Binary files a/Facial_images/face_rec/train/User_2/18.jpg and b/Facial_images/face_rec/train/User_2/18.jpg differ diff --git a/Facial_images/face_rec/train/User_2/19.jpg b/Facial_images/face_rec/train/User_2/19.jpg index d7e97ba2e..cd0c3d61d 100644 Binary files a/Facial_images/face_rec/train/User_2/19.jpg and b/Facial_images/face_rec/train/User_2/19.jpg differ diff --git a/Facial_images/face_rec/train/User_2/2.jpg b/Facial_images/face_rec/train/User_2/2.jpg index 2cf8ab1ae..d8d9cd056 100644 Binary files a/Facial_images/face_rec/train/User_2/2.jpg and b/Facial_images/face_rec/train/User_2/2.jpg differ diff --git a/Facial_images/face_rec/train/User_2/20.jpg b/Facial_images/face_rec/train/User_2/20.jpg new file mode 100644 index 000000000..283e21be5 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/20.jpg differ diff --git a/Facial_images/face_rec/train/User_2/21.jpg b/Facial_images/face_rec/train/User_2/21.jpg new file mode 100644 index 000000000..430ac1a28 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/21.jpg differ diff --git a/Facial_images/face_rec/train/User_2/22.jpg b/Facial_images/face_rec/train/User_2/22.jpg new file mode 100644 index 000000000..13e4c1bab Binary files /dev/null and b/Facial_images/face_rec/train/User_2/22.jpg differ diff --git a/Facial_images/face_rec/train/User_2/23.jpg b/Facial_images/face_rec/train/User_2/23.jpg new file mode 100644 index 000000000..5e66e2a9e Binary files /dev/null and b/Facial_images/face_rec/train/User_2/23.jpg differ diff --git a/Facial_images/face_rec/train/User_2/24.jpg b/Facial_images/face_rec/train/User_2/24.jpg new file mode 100644 index 000000000..4847e5309 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/24.jpg differ diff --git a/Facial_images/face_rec/train/User_2/25.jpg b/Facial_images/face_rec/train/User_2/25.jpg new file mode 100644 index 000000000..0bdd8cac8 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/25.jpg differ diff --git a/Facial_images/face_rec/train/User_2/26.jpg b/Facial_images/face_rec/train/User_2/26.jpg new file mode 100644 index 000000000..b3be9c08d Binary files /dev/null and b/Facial_images/face_rec/train/User_2/26.jpg differ diff --git a/Facial_images/face_rec/train/User_2/27.jpg b/Facial_images/face_rec/train/User_2/27.jpg new file mode 100644 index 000000000..847de3f1a Binary files /dev/null and b/Facial_images/face_rec/train/User_2/27.jpg differ diff --git a/Facial_images/face_rec/train/User_2/28.jpg b/Facial_images/face_rec/train/User_2/28.jpg new file mode 100644 index 000000000..cb196eb7d Binary files /dev/null and b/Facial_images/face_rec/train/User_2/28.jpg differ diff --git a/Facial_images/face_rec/train/User_2/29.jpg b/Facial_images/face_rec/train/User_2/29.jpg new file mode 100644 index 000000000..3313ba83e Binary files /dev/null and b/Facial_images/face_rec/train/User_2/29.jpg differ diff --git a/Facial_images/face_rec/train/User_2/3.jpg b/Facial_images/face_rec/train/User_2/3.jpg index 334e2ce69..3aaa9f108 100644 Binary files a/Facial_images/face_rec/train/User_2/3.jpg and b/Facial_images/face_rec/train/User_2/3.jpg differ diff --git a/Facial_images/face_rec/train/User_2/30.jpg b/Facial_images/face_rec/train/User_2/30.jpg new file mode 100644 index 000000000..28e0b7f1f Binary files /dev/null and b/Facial_images/face_rec/train/User_2/30.jpg differ diff --git a/Facial_images/face_rec/train/User_2/31.jpg b/Facial_images/face_rec/train/User_2/31.jpg new file mode 100644 index 000000000..7a594fe85 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/31.jpg differ diff --git a/Facial_images/face_rec/train/User_2/32.jpg b/Facial_images/face_rec/train/User_2/32.jpg new file mode 100644 index 000000000..e54a16fab Binary files /dev/null and b/Facial_images/face_rec/train/User_2/32.jpg differ diff --git a/Facial_images/face_rec/train/User_2/33.jpg b/Facial_images/face_rec/train/User_2/33.jpg new file mode 100644 index 000000000..17f8586ee Binary files /dev/null and b/Facial_images/face_rec/train/User_2/33.jpg differ diff --git a/Facial_images/face_rec/train/User_2/34.jpg b/Facial_images/face_rec/train/User_2/34.jpg new file mode 100644 index 000000000..4617d8ae2 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/34.jpg differ diff --git a/Facial_images/face_rec/train/User_2/35.jpg b/Facial_images/face_rec/train/User_2/35.jpg new file mode 100644 index 000000000..d87a5ab66 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/35.jpg differ diff --git a/Facial_images/face_rec/train/User_2/36.jpg b/Facial_images/face_rec/train/User_2/36.jpg new file mode 100644 index 000000000..b8cbb8cff Binary files /dev/null and b/Facial_images/face_rec/train/User_2/36.jpg differ diff --git a/Facial_images/face_rec/train/User_2/37.jpg b/Facial_images/face_rec/train/User_2/37.jpg new file mode 100644 index 000000000..2669770df Binary files /dev/null and b/Facial_images/face_rec/train/User_2/37.jpg differ diff --git a/Facial_images/face_rec/train/User_2/38.jpg b/Facial_images/face_rec/train/User_2/38.jpg new file mode 100644 index 000000000..9e1ec94b8 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/38.jpg differ diff --git a/Facial_images/face_rec/train/User_2/39.jpg b/Facial_images/face_rec/train/User_2/39.jpg new file mode 100644 index 000000000..17967b05d Binary files /dev/null and b/Facial_images/face_rec/train/User_2/39.jpg differ diff --git a/Facial_images/face_rec/train/User_2/4.jpg b/Facial_images/face_rec/train/User_2/4.jpg index 84daf5540..651456552 100644 Binary files a/Facial_images/face_rec/train/User_2/4.jpg and b/Facial_images/face_rec/train/User_2/4.jpg differ diff --git a/Facial_images/face_rec/train/User_2/40.jpg b/Facial_images/face_rec/train/User_2/40.jpg new file mode 100644 index 000000000..f8a1aece8 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/40.jpg differ diff --git a/Facial_images/face_rec/train/User_2/41.jpg b/Facial_images/face_rec/train/User_2/41.jpg new file mode 100644 index 000000000..269b65b50 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/41.jpg differ diff --git a/Facial_images/face_rec/train/User_2/42.jpg b/Facial_images/face_rec/train/User_2/42.jpg new file mode 100644 index 000000000..41da6a89c Binary files /dev/null and b/Facial_images/face_rec/train/User_2/42.jpg differ diff --git a/Facial_images/face_rec/train/User_2/43.jpg b/Facial_images/face_rec/train/User_2/43.jpg new file mode 100644 index 000000000..16dccece2 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/43.jpg differ diff --git a/Facial_images/face_rec/train/User_2/44.jpg b/Facial_images/face_rec/train/User_2/44.jpg new file mode 100644 index 000000000..8b3be00d9 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/44.jpg differ diff --git a/Facial_images/face_rec/train/User_2/45.jpg b/Facial_images/face_rec/train/User_2/45.jpg new file mode 100644 index 000000000..a8fbdae74 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/45.jpg differ diff --git a/Facial_images/face_rec/train/User_2/46.jpg b/Facial_images/face_rec/train/User_2/46.jpg new file mode 100644 index 000000000..6ebd30c44 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/46.jpg differ diff --git a/Facial_images/face_rec/train/User_2/47.jpg b/Facial_images/face_rec/train/User_2/47.jpg new file mode 100644 index 000000000..77bf5ee89 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/47.jpg differ diff --git a/Facial_images/face_rec/train/User_2/48.jpg b/Facial_images/face_rec/train/User_2/48.jpg new file mode 100644 index 000000000..b317b1662 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/48.jpg differ diff --git a/Facial_images/face_rec/train/User_2/49.jpg b/Facial_images/face_rec/train/User_2/49.jpg new file mode 100644 index 000000000..b0199b5b4 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/49.jpg differ diff --git a/Facial_images/face_rec/train/User_2/5.jpg b/Facial_images/face_rec/train/User_2/5.jpg index deafb4b65..2dfd89a84 100644 Binary files a/Facial_images/face_rec/train/User_2/5.jpg and b/Facial_images/face_rec/train/User_2/5.jpg differ diff --git a/Facial_images/face_rec/train/User_2/6.jpg b/Facial_images/face_rec/train/User_2/6.jpg index ce463871a..bcf70f1d3 100644 Binary files a/Facial_images/face_rec/train/User_2/6.jpg and b/Facial_images/face_rec/train/User_2/6.jpg differ diff --git a/Facial_images/face_rec/train/User_2/7.jpg b/Facial_images/face_rec/train/User_2/7.jpg index 31b8ec1c4..a07357bf6 100644 Binary files a/Facial_images/face_rec/train/User_2/7.jpg and b/Facial_images/face_rec/train/User_2/7.jpg differ diff --git a/Facial_images/face_rec/train/User_2/8.jpg b/Facial_images/face_rec/train/User_2/8.jpg index 8c90548bc..9ec3fe53f 100644 Binary files a/Facial_images/face_rec/train/User_2/8.jpg and b/Facial_images/face_rec/train/User_2/8.jpg differ diff --git a/Facial_images/face_rec/train/User_2/9.jpg b/Facial_images/face_rec/train/User_2/9.jpg index 7fc14b47c..84748de37 100644 Binary files a/Facial_images/face_rec/train/User_2/9.jpg and b/Facial_images/face_rec/train/User_2/9.jpg differ diff --git a/Facial_images/face_rec/train/User_2/a.jpg b/Facial_images/face_rec/train/User_2/a.jpg new file mode 100644 index 000000000..ba3ef8144 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/a.jpg differ diff --git a/Facial_images/face_rec/train/User_2/b.jpg b/Facial_images/face_rec/train/User_2/b.jpg new file mode 100644 index 000000000..c9aa4c3c1 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/b.jpg differ diff --git a/Facial_images/face_rec/train/User_2/c.jpg b/Facial_images/face_rec/train/User_2/c.jpg new file mode 100644 index 000000000..2cf8ab1ae Binary files /dev/null and b/Facial_images/face_rec/train/User_2/c.jpg differ diff --git a/Facial_images/face_rec/train/User_2/d.jpg b/Facial_images/face_rec/train/User_2/d.jpg new file mode 100644 index 000000000..334e2ce69 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/d.jpg differ diff --git a/Facial_images/face_rec/train/User_2/e.jpg b/Facial_images/face_rec/train/User_2/e.jpg new file mode 100644 index 000000000..84daf5540 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/e.jpg differ diff --git a/Facial_images/face_rec/train/User_2/f.jpg b/Facial_images/face_rec/train/User_2/f.jpg new file mode 100644 index 000000000..deafb4b65 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/f.jpg differ diff --git a/Facial_images/face_rec/train/User_2/g.jpg b/Facial_images/face_rec/train/User_2/g.jpg new file mode 100644 index 000000000..ce463871a Binary files /dev/null and b/Facial_images/face_rec/train/User_2/g.jpg differ diff --git a/Facial_images/face_rec/train/User_2/h.jpg b/Facial_images/face_rec/train/User_2/h.jpg new file mode 100644 index 000000000..31b8ec1c4 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/h.jpg differ diff --git a/Facial_images/face_rec/train/User_2/i.jpg b/Facial_images/face_rec/train/User_2/i.jpg new file mode 100644 index 000000000..8c90548bc Binary files /dev/null and b/Facial_images/face_rec/train/User_2/i.jpg differ diff --git a/Facial_images/face_rec/train/User_2/j.jpg b/Facial_images/face_rec/train/User_2/j.jpg new file mode 100644 index 000000000..7fc14b47c Binary files /dev/null and b/Facial_images/face_rec/train/User_2/j.jpg differ diff --git a/Facial_images/face_rec/train/User_2/k.jpg b/Facial_images/face_rec/train/User_2/k.jpg new file mode 100644 index 000000000..9c1154324 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/k.jpg differ diff --git a/Facial_images/face_rec/train/User_2/l.jpg b/Facial_images/face_rec/train/User_2/l.jpg new file mode 100644 index 000000000..0c9800004 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/l.jpg differ diff --git a/Facial_images/face_rec/train/User_2/m.jpg b/Facial_images/face_rec/train/User_2/m.jpg new file mode 100644 index 000000000..2e5e8ee13 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/m.jpg differ diff --git a/Facial_images/face_rec/train/User_2/n.jpg b/Facial_images/face_rec/train/User_2/n.jpg new file mode 100644 index 000000000..c9390ec52 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/n.jpg differ diff --git a/Facial_images/face_rec/train/User_2/o.jpg b/Facial_images/face_rec/train/User_2/o.jpg new file mode 100644 index 000000000..984e6bda4 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/o.jpg differ diff --git a/Facial_images/face_rec/train/User_2/p.jpg b/Facial_images/face_rec/train/User_2/p.jpg new file mode 100644 index 000000000..1c98f0aef Binary files /dev/null and b/Facial_images/face_rec/train/User_2/p.jpg differ diff --git a/Facial_images/face_rec/train/User_2/q.jpg b/Facial_images/face_rec/train/User_2/q.jpg new file mode 100644 index 000000000..9c53040cd Binary files /dev/null and b/Facial_images/face_rec/train/User_2/q.jpg differ diff --git a/Facial_images/face_rec/train/User_2/r.jpg b/Facial_images/face_rec/train/User_2/r.jpg new file mode 100644 index 000000000..ba3ff8c4f Binary files /dev/null and b/Facial_images/face_rec/train/User_2/r.jpg differ diff --git a/Facial_images/face_rec/train/User_2/s.jpg b/Facial_images/face_rec/train/User_2/s.jpg new file mode 100644 index 000000000..21aaa7375 Binary files /dev/null and b/Facial_images/face_rec/train/User_2/s.jpg differ diff --git a/Facial_images/face_rec/train/User_2/t.jpg b/Facial_images/face_rec/train/User_2/t.jpg new file mode 100644 index 000000000..d7e97ba2e Binary files /dev/null and b/Facial_images/face_rec/train/User_2/t.jpg differ diff --git a/Facial_models/descriptors.npy b/Facial_models/descriptors.npy new file mode 100644 index 000000000..3bf6063dc Binary files /dev/null and b/Facial_models/descriptors.npy differ diff --git a/Facial_models/dlib_face_recognition_resnet_model_v1.dat b/Facial_models/dlib_face_recognition_resnet_model_v1.dat new file mode 100644 index 000000000..ddb515897 Binary files /dev/null and b/Facial_models/dlib_face_recognition_resnet_model_v1.dat differ diff --git a/Facial_models/index.pkl b/Facial_models/index.pkl new file mode 100644 index 000000000..bb45e3a1e Binary files /dev/null and b/Facial_models/index.pkl differ