import cv2 from predictions.k_nearest import KNearestNeighbours from predictions.predictor import Predictor from predictions.svm_model import SVM if __name__ == '__main__': buffer = [] # open webcam stream cap = cv2.VideoCapture(0) type_predictor = "svm" if type_predictor == "knn": k = 10 predictor_type = KNearestNeighbours(k) elif type_predictor == "svm": predictor_type = SVM() else: predictor_type = KNearestNeighbours(1) # embeddings_path = 'embeddings/basic-signs/embeddings.csv' embeddings_path = 'embeddings/fingerspelling/embeddings.csv' predictor = Predictor(embeddings_path, predictor_type) index = 0 while cap.isOpened(): # Wait for key press to exit if cv2.waitKey(5) & 0xFF == 27: break ret, frame = cap.read() pose = predictor.extract_keypoints(frame) if pose is None: cv2.imshow('MediaPipe Hands', frame) continue buffer.append(pose) if len(buffer) > 15: buffer.pop(0) if len(buffer) == 15: label, score = predictor.make_prediction(buffer) # draw label cv2.putText(frame, str(label), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, cv2.LINE_AA) cv2.putText(frame, str(score), (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, cv2.LINE_AA) # Show the frame cv2.imshow('MediaPipe Hands', frame)