Untitled
user_2381398
plain_text
2 years ago
1.9 kB
10
Indexable
import face_recognition import cv2 import os from keras.models import Sequential from keras.layers import Dense from sklearn.preprocessing import LabelEncoder from keras.utils import np_utils # Step 1: Prepare the data image_paths = os.listdir('path_to_your_dataset') face_encodings = [] face_names = [] for image_path in image_paths: image = face_recognition.load_image_file(image_path) face_locations = face_recognition.face_locations(image) encoding = face_recognition.face_encodings(image, face_locations)[0] face_encodings.append(encoding) face_names.append(image_path.split('/')[1]) # convert labels to integers then one-hot encode encoder = LabelEncoder() encoder.fit(face_names) encoded_Y = encoder.transform(face_names) # convert integers to dummy variables (i.e. one hot encoded) face_names = np_utils.to_categorical(encoded_Y) # Step 2: Train the model model = Sequential() model.add(Dense(128, input_dim=128, activation='relu')) model.add(Dense(64, activation='relu')) model.add(Dense(len(set(face_names)), activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(face_encodings, face_names, epochs=10, batch_size=32) # Step 3: Test and evaluate the model test_image_paths = os.listdir('path_to_your_testset') for test_image_path in test_image_paths: test_image = face_recognition.load_image_file(test_image_path) test_face_locations = face_recognition.face_locations(test_image) test_face_encodings = face_recognition.face_encodings(test_image, test_face_locations) predictions = model.predict(test_face_encodings) predicted_name = encoder.classes_[np.argmax(predictions)] print(f"Predicted: {predicted_name}, Actual: {test_image_path.split('/')[1]}")
Editor is loading...