transform3 = CenteringTransform() transform5 = ResampleInSpaceTransform(samples=80) # Apply transforms dataset.addTransform(transform1) dataset.addTransform(transform2) dataset.addTransform(transform3) dataset.addTransform(transform5) for file in dataset.applyTransforms(): sequences = file[0] buffer = [] res = [] for item in sequences: buffer.append(item) res.append(Test.compare(buffer, models)) print(res) ################### Advanced Version ################### class CsvDatasetRealTime(CsvDataset): """ Class for firing frame like real time: Once it reads the sequence, it fires the frame one by one. """ def __init__(self, dir, maxlen=20, num_samples=20): """ :param dir: dataset's path :param maxlen: indicates the dimension of the circular buffer (its size should be big enough to contain all the frame of a gesture) """
# confusion matrix confusion_matrix = ConfusionMatrix(directories) # neighbor best_hmm = 1 for directory in directories: # original kalman + resampled + parsing dataset = CsvDatasetExtended(base_dir + 'parsed/' + directory + '/', type=str) # apply transforms for sequence in dataset.readDataset(): # get log_probabilities obtained from sequence points = [ item for sublist in (sequence.getPoints(columns=[0])) for item in sublist ] probabilities = Test.compare(points, models) # verify if row_label is contained in the firsts x elements (default, x=1) keys = [] for key, value in sorted(probabilities.items(), key=lambda kv: kv[1], reverse=True)[:best_hmm]: if isinstance(key, tuple): keys = keys + list(itertools.chain(key)) else: keys.append(key) index_label = directory if directory in keys else keys[0] if directory not in keys: print('\n') print(points) print(probabilities)