From 3708dfe6fcf0835f83e58ae2f65e96e96122f212 Mon Sep 17 00:00:00 2001 From: cepulisb Date: Thu, 29 Apr 2021 01:59:47 +0300 Subject: [PATCH] upload --- .vscode/settings.json | 3 ++ AttendanceRecord.csv | 4 +++ Photos/Bertoldas.jpg | Bin 0 -> 83805 bytes face.py | 59 ++++++++++++++++++++++++++++++++++ test.py | 72 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 138 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 AttendanceRecord.csv create mode 100644 Photos/Bertoldas.jpg create mode 100644 face.py create mode 100644 test.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ca6fe06 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/AttendanceRecord.csv b/AttendanceRecord.csv new file mode 100644 index 0000000..70aeea0 --- /dev/null +++ b/AttendanceRecord.csv @@ -0,0 +1,4 @@ +NAME, TIME + + +BERTOLDAS,00:54:15 \ No newline at end of file diff --git a/Photos/Bertoldas.jpg b/Photos/Bertoldas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7923bea555cdaea4a801b67a7bef3012124807c GIT binary patch literal 83805 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 literal 0 HcmV?d00001 diff --git a/face.py b/face.py new file mode 100644 index 0000000..2a5909c --- /dev/null +++ b/face.py @@ -0,0 +1,59 @@ +import numpy as np +import face_recognition as fr +import cv2 + +video_capture = cv2.VideoCapture(0) + +bertas_image = fr.load_image_file("Images/bertas.jpg") +bertas_face_encoding = fr.face_encodings(bertas_image)[0] + +known_face_encodings = [bertas_face_encoding] +known_face_names = ["bertas"] + +while True: + ret, frame = video_capture.read() + + rgb_frame = frame[:, :, ::-1] + + face_locations = fr.face_locations(rgb_frame) + face_encodings = fr.face_encodings(rgb_frame, face_locations) + + for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings): + + matches = fr.compare_faces(known_face_encodings, face_encoding) + + name = "unknown" + face_distances = fr.face_distance(known_face_encodings, face_encoding) + best_match_index = np.argmin(face_distances) + if matches[best_match_index]: + name = known_face_names[best_match_index] + + cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2) + + cv2.rectangle(frame, (left, bottom - 35), + (right, bottom), (0, 0, 255), cv2.FILLED) + font = cv2.FONT_HERSHEY_SIMPLEX + cv2.putText(frame, name, (left + 6, bottom - 6), + font, 1.0, (255, 255, 255), 1) + + cv2.imshow('webcam', frame) + + if cv2.waitKey(1) & 0xFF == ord('q'): + break + +video_capture.release() +cv2.destroyAllWindows() + + +def findEncodings(images): + encodeList = [] + for img in images: + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + encode = face_recognition.face_encodings(img)[0] + encodeList.append(encode) + return encodeList + + encodeListKnown = findEncodings(images) + + +print('Encoding Complete') diff --git a/test.py b/test.py new file mode 100644 index 0000000..d97ea89 --- /dev/null +++ b/test.py @@ -0,0 +1,72 @@ +import face_recognition as fc +import os +import numpy as np +import cv2 +from datetime import datetime + +path = 'Photos' +photos = [] +NameClass = [] +ImgList = os.listdir(path) + +for cl in ImgList: + curImg = cv2.imread(f'{path}/{cl}') + photos.append(curImg) + NameClass.append(os.path.splitext(cl)[0]) + + +def EncodingsFind(images): + ListEncodes = [] + for img in photos: + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + encode = fc.face_encodings(img)[0] + ListEncodes.append(encode) + return ListEncodes + + +def Attendance(name): + with open('AttendanceRecord.csv', 'r+') as f: + DataList = f.readlines() + nameList = [] + for line in DataList: + gap = line.split(',') + nameList.append(gap[0]) + if name not in nameList: + time = datetime.now() + dtString = time.strftime('%H:%M:%S') + f.writelines(f'\n{name},{dtString}') + + +ListEncodesKnown = EncodingsFind(photos) + +capture = cv2.VideoCapture(0) + +while True: + success, img = capture.read() + imgS = cv2.resize(img, (0, 0), None, 0.25, 0.25) + imgS = cv2.cvtColor(imgS, cv2.COLOR_BGR2RGB) + + facesFrame = fc.face_locations(imgS) + encodesCurFrame = fc.face_encodings(imgS, facesFrame) + + for encodeFace, faceLoc in zip(encodesCurFrame, facesFrame): + match = fc.compare_faces(ListEncodesKnown, encodeFace) + Distance = fc.face_distance(ListEncodesKnown, encodeFace) + + matchIndex = np.argmin(Distance) + + if match[matchIndex]: + name = NameClass[matchIndex].upper() + + y1, x2, y2, x1 = faceLoc + y1, x2, y2, x1 = y1*4, x2*4, y2*4, x1*4 + cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) + cv2.rectangle(img, (x1, y2-35), (x2, y2), (0, 255, 0), cv2.FILLED) + cv2.putText(img, name, (x1+6, y2-6), + cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2) + + Attendance(name) + + cv2.imshow('webcam', img) + if cv2.waitKey(1) & 0xFF == ord('q'): + break