def perform_loocv_classifiers(args): # Instantiate Classifier classifier = Classifier(classifier=None, no_clusters=args.number_cluster, no_samples=None) classifier.OsName = platform.system() print('Operating System: ', classifier.OsName) print('LOOCV Classification') classifier.test_name = args.test_name classifier.aggregateVideoFeatures = False if args.use_train_test_val: classifier.datasets = ['training', 'validation', 'test'] classifier.base_path = args.base_path classifier.label_path = args.label_path # Send e-mail Process Start send_email_start(classifier) # train the model classifier.trainModelFV_LOOCV_Classifiers(extension=args.features_file_filter)
def perform_loocv_fusion(args): classifier = Classifier(classifier=SVC(kernel='linear'), no_clusters=args.number_cluster, no_samples=None) classifier.OsName = platform.system() print('Operating System: ', classifier.OsName) print('LOOCV Fusion') classifier.test_name = args.test_name classifier.aggregateVideoFeatures = False if args.use_train_test_val: classifier.datasets = ['training', 'validation', 'test'] classifier.base_path = args.base_path classifier.base_path2 = args.base_path2 classifier.features_file_filter = args.features_file_filter classifier.label_path = args.label_path # Send e-mail Process Start send_email_start(classifier, True) # train the model classifier.trainModelFV_LOOCV_Fusion()
def main(): OsName = platform.system() print('Operating System: ', OsName) parser = argparse.ArgumentParser( description="Compute trajectory features from OpenPose points to Human Action Recognition" ) parser.add_argument("--features_file_filter", type=str, default='*.*', help="Filter for features files") parser.add_argument("--base_path", type=str, required=True, help="Base features path.") parser.add_argument("--base_path2", type=str, help="Base features path2 for features fusion.") parser.add_argument("--output_features", type=str, required=True, help="Output features file name.") parser.add_argument("--output_image", type=str, required=True, help="Output image path.") parser.add_argument("--label_path", type=str, help="Labels path.") parser.add_argument("--number_cluster", type=int, default=20, help="Number of cluster for FV.") parser.add_argument("--number_classes", type=int, default=6, help="Number of classes of dataset.") parser.add_argument("--mark_size", type=int, default=100, help="Size of the points.") parser.add_argument("--alpha", type=float, default=0.6, help="Proportional opacity of the points.") parser.add_argument("--use_train_test_val", type=int, default=0, help="True if dataset is divides into train/test/validation.") args = parser.parse_args() print(args) file_name = args.output_features if os.path.isfile(file_name): df = pd.read_csv(file_name, index_col=0) print(df.head()) plotDataVisualization(df.drop('label', axis=1).values, df.label.values, 'load_full', args) else: classifier = Classifier(no_clusters=args.number_cluster) if args.use_train_test_val: classifier.datasets = ['training', 'validation', 'test'] classifier.base_path = args.base_path classifier.base_path2 = args.base_path2 classifier.label_path = args.label_path X, y = classifier.build_FV_Features() df = pd.DataFrame(X, y) df = df.reset_index() df = df.rename(columns={df.columns[0]: "label"}) print(df.head()) df.to_csv(file_name) plotDataVisualization(df.drop('label', axis=1).values, df.label.values, 'dataframe_full', args) plotDataVisualization(X, y, 'ndarray_full', args)