Пример #1
0
class Model(object):
    def __init__(self, detector_window, classifier_window):
        self.detector_window = detector_window
        self.classifier_window = classifier_window
        self.detector = Detector()
        self.detector.load()
        self.classifier = Classifier()
        self.classifier.load()
        self.gesture_sequence = Gesture()

    def __call__(self, hand_landmarks):
        self.gesture_sequence.push(hand_landmarks)
        if len(self.gesture_sequence) > self.classifier_window:
            self.gesture_sequence.drop_first()
        tail_detect_vector = self.gesture_sequence.data(-self.detector_window)
        detector_predict = self.detector.predict(tail_detect_vector)
        if detector_predict:
            tail_classify_vector = self.gesture_sequence.data(
                -self.classifier_window)
            classifier_predict = self.classifier.predict(tail_classify_vector)
            if classifier_predict != 'No gesture':
                return classifier_predict
            else:
                return None
        else:
            return None