Example #1
0
    def calculate_signature_dissimilarity(self, target_signature):
        """
        Calculate the dissimilarity of target_signature the the user's enrolment signatures

        :param target_signature:    list of the normalized feature vectors of the target signature to compare to this
                                    user's enrolment signatures
        :return:                    dictionary of type
                                    <user enrolment signature id> -> <dissimilarity of target signature to that enrolment signature>
        """
        dtw = DTW()
        dissimilarities = []
        for key, enrolment_signature in self.enrolment_signatures.items():
            dissim, matrix = dtw.distance(enrolment_signature,
                                          target_signature, self.WINDOW_SIZE)
            dissimilarities.append(dissim)
        return np.mean(np.asarray(dissimilarities))