def from_folders(job, form): """ Add tasks for creating a dataset by parsing folders of images """ job.labels_file = utils.constants.LABELS_FILE ### Add ParseFolderTask percent_val = form.folder_pct_val.data val_parents = [] if form.has_val_folder.data: percent_val = 0 percent_test = form.folder_pct_test.data test_parents = [] if form.has_test_folder.data: percent_test = 0 parse_train_task = tasks.ParseFolderTask( job_dir=job.dir(), folder=form.folder_train.data, percent_val=percent_val, percent_test=percent_test, ) job.tasks.append(parse_train_task) # set parents if not form.has_val_folder.data: val_parents = [parse_train_task] if not form.has_test_folder.data: test_parents = [parse_train_task] if form.has_val_folder.data: parse_val_task = tasks.ParseFolderTask( job_dir=job.dir(), parents=parse_train_task, folder=form.folder_val.data, percent_val=100, percent_test=0, ) job.tasks.append(parse_val_task) val_parents = [parse_val_task] if form.has_test_folder.data: parse_test_task = tasks.ParseFolderTask( job_dir=job.dir(), parents=parse_train_task, folder=form.folder_test.data, percent_val=0, percent_test=100, ) job.tasks.append(parse_test_task) test_parents = [parse_test_task] ### Add CreateDbTasks encode = form.encode_images.data job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=parse_train_task, input_file=utils.constants.TRAIN_FILE, db_name=utils.constants.TRAIN_DB, image_dims=job.image_dims, resize_mode=job.resize_mode, encode=encode, mean_file=utils.constants.MEAN_FILE_CAFFE, labels_file=job.labels_file, )) if percent_val > 0 or form.has_val_folder.data: job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=val_parents, input_file=utils.constants.VAL_FILE, db_name=utils.constants.VAL_DB, image_dims=job.image_dims, resize_mode=job.resize_mode, encode=encode, labels_file=job.labels_file, )) if percent_test > 0 or form.has_test_folder.data: job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=test_parents, input_file=utils.constants.TEST_FILE, db_name=utils.constants.TEST_DB, image_dims=job.image_dims, resize_mode=job.resize_mode, encode=encode, labels_file=job.labels_file, ))
def from_folders(job, form): """ Add tasks for creating a dataset by parsing folders of images """ job.labels_file = utils.constants.LABELS_FILE # Add ParseFolderTask percent_val = form.folder_pct_val.data val_parents = [] if form.has_val_folder.data: percent_val = 0 percent_test = form.folder_pct_test.data test_parents = [] if form.has_test_folder.data: percent_test = 0 min_per_class = form.folder_train_min_per_class.data max_per_class = form.folder_train_max_per_class.data if max_per_class is None: max_per_class = 0 parse_train_task = tasks.ParseFolderTask( job_dir=job.dir(), folder=form.folder_train.data, percent_val=percent_val, percent_test=percent_test, min_per_category=min_per_class if min_per_class > 0 else 1, max_per_category=max_per_class if max_per_class > 0 else None) job.tasks.append(parse_train_task) # set parents if not form.has_val_folder.data: val_parents = [parse_train_task] if not form.has_test_folder.data: test_parents = [parse_train_task] if form.has_val_folder.data: min_per_class = form.folder_val_min_per_class.data max_per_class = form.folder_val_max_per_class.data if max_per_class is None: max_per_class = 0 parse_val_task = tasks.ParseFolderTask( job_dir=job.dir(), parents=parse_train_task, folder=form.folder_val.data, percent_val=100, percent_test=0, min_per_category=min_per_class if min_per_class > 0 else 1, max_per_category=max_per_class if max_per_class > 0 else None) job.tasks.append(parse_val_task) val_parents = [parse_val_task] if form.has_test_folder.data: min_per_class = form.folder_test_min_per_class.data max_per_class = form.folder_test_max_per_class.data if max_per_class is None: max_per_class = 0 parse_test_task = tasks.ParseFolderTask( job_dir=job.dir(), parents=parse_train_task, folder=form.folder_test.data, percent_val=0, percent_test=100, min_per_category=min_per_class if min_per_class > 0 else 1, max_per_category=max_per_class if max_per_class > 0 else None) job.tasks.append(parse_test_task) test_parents = [parse_test_task] # Add CreateDbTasks backend = form.backend.data encoding = form.encoding.data compression = form.compression.data job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=parse_train_task, input_file=utils.constants.TRAIN_FILE, db_name=utils.constants.TRAIN_DB, backend=backend, image_dims=job.image_dims, resize_mode=job.resize_mode, encoding=encoding, compression=compression, mean_file=utils.constants.MEAN_FILE_CAFFE, labels_file=job.labels_file, )) if percent_val > 0 or form.has_val_folder.data: job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=val_parents, input_file=utils.constants.VAL_FILE, db_name=utils.constants.VAL_DB, backend=backend, image_dims=job.image_dims, resize_mode=job.resize_mode, encoding=encoding, compression=compression, labels_file=job.labels_file, )) if percent_test > 0 or form.has_test_folder.data: job.tasks.append( tasks.CreateDbTask( job_dir=job.dir(), parents=test_parents, input_file=utils.constants.TEST_FILE, db_name=utils.constants.TEST_DB, backend=backend, image_dims=job.image_dims, resize_mode=job.resize_mode, encoding=encoding, compression=compression, labels_file=job.labels_file, ))
def from_folder( self, folder, percent_val=None, percent_test=None, min_per_category=None, max_per_category=None, ): """ Add tasks for creating a dataset by parsing a folder of images Arguments: folder -- the folder to parse Keyword arguments: percent_val -- percent of images to use for validation percent_test -- percent of images to use for testing min_per_category -- minimum images per category max_per_category -- maximum images per category """ assert len(self.tasks) == 0 self.labels_file = utils.constants.LABELS_FILE ### Add ParseFolderTask task = tasks.ParseFolderTask(job_dir=self.dir(), folder=folder, percent_val=percent_val, percent_test=percent_test) self.tasks.append(task) ### Add CreateDbTasks self.tasks.append( tasks.CreateDbTask( job_dir=self.dir(), parents=task, input_file=utils.constants.TRAIN_FILE, db_name=utils.constants.TRAIN_DB, image_dims=self.image_dims, resize_mode=self.resize_mode, mean_file=utils.constants.MEAN_FILE_CAFFE, labels_file=self.labels_file, )) if task.percent_val > 0: self.tasks.append( tasks.CreateDbTask( job_dir=self.dir(), parents=task, input_file=utils.constants.VAL_FILE, db_name=utils.constants.VAL_DB, image_dims=self.image_dims, resize_mode=self.resize_mode, labels_file=self.labels_file, )) if task.percent_test > 0: self.tasks.append( tasks.CreateDbTask( job_dir=self.dir(), parents=task, input_file=utils.constants.TEST_FILE, db_name=utils.constants.TEST_DB, image_dims=self.image_dims, resize_mode=self.resize_mode, labels_file=self.labels_file, ))