7a 47 49 61 Dip Code
7a 47 49 61 Dip Code
py:
import cv2
import pickle
import numpy as np
import os
import csv
import time
def speak(message):
try:
voice = Dispatch("SAPI.SpVoice")
voice.Speak(message)
except Exception as e:
if not os.path.exists('Attendance'):
os.makedirs('Attendance')
video = cv2.VideoCapture(0)
if not video.isOpened():
facedetect = cv2.CascadeClassifier(cascade_path)
try:
LABELS = pickle.load(w)
FACES = pickle.load(f)
except FileNotFoundError as e:
raise FileNotFoundError("Data files not found. Ensure 'names.pkl' and 'faces_data.pkl' exist in
the 'data' directory.")
if FACES.shape[0] != len(LABELS):
raise ValueError("Mismatch between the number of faces and labels. Ensure the dataset is
consistent.")
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(FACES, LABELS)
if not ret:
break
try:
output = knn.predict(resized_img)
except Exception as e:
continue
ts = time.time()
date = datetime.fromtimestamp(ts).strftime("%d-%m-%Y")
timestamp = datetime.fromtimestamp(ts).strftime("%H:%M:%S")
exist = os.path.isfile(attendance_path)
speak("Attendance Taken.")
writer = csv.writer(csvfile)
if not exist:
writer.writerow(attendance)
cv2.imshow("Frame", imgBackground)
else:
cv2.imshow("Frame", frame)
# Break the loop if 'q' key is pressed
break
video.release()
cv2.destroyAllWindows()
Database.py:
import cv2
import pickle
import numpy as np
import os
video = cv2.VideoCapture(0)
facedetect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces_data = []
i=0
if not os.path.exists('data'):
os.makedirs('data')
while True:
# Capture frame-by-frame
# Detect faces
faces_data.append(resized_img)
i += 1
cv2.imshow("Frame", frame)
if len(faces_data) == 50:
break
k = cv2.waitKey(1)
if k == ord('q'):
break
video.release()
cv2.destroyAllWindows()
faces_data = np.asarray(faces_data)
pickle.dump(names, f)
else:
names = pickle.load(f)
pickle.dump(faces_data, f)
else:
faces = pickle.load(f)
faces = np.append(faces, faces_data, axis=0) # Append new faces data, ensuring consistency
pickle.dump(faces, f)