Files
spoterembedding/webcam.py
Tibe Habils d9c24df5f4 basic svm
2023-05-01 18:06:52 +02:00

54 lines
1.5 KiB
Python

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)