def run_vmaf_cv_from_raw(train_dataset_raw_filepath, test_dataset_raw_filepath, param_filepath, output_model_filepath, **kwargs): if 'train_quality_wh' in kwargs and kwargs['train_quality_wh'] is not None: train_quality_width, train_quality_height = kwargs['train_quality_wh'] else: train_quality_width = None train_quality_height = None if 'test_quality_wh' in kwargs and kwargs['test_quality_wh'] is not None: test_quality_width, test_quality_height = kwargs['test_quality_wh'] else: test_quality_width = None test_quality_height = None if 'train_transform_final' in kwargs and kwargs[ 'train_transform_final'] is not None: train_transform_final = kwargs['train_transform_final'] else: train_transform_final = None if 'test_transform_final' in kwargs and kwargs[ 'test_transform_final'] is not None: test_transform_final = kwargs['test_transform_final'] else: test_transform_final = None train_output_dataset_filepath = VmafConfig.workspace_path( 'dataset', 'train_dataset.py') generate_dataset_from_raw( raw_dataset_filepath=train_dataset_raw_filepath, output_dataset_filepath=train_output_dataset_filepath, quality_width=train_quality_width, quality_height=train_quality_height, transform_final=train_transform_final, **kwargs) test_output_dataset_filepath = VmafConfig.workspace_path('dataset', 'test_dataset.py') \ if test_dataset_raw_filepath is not None else None generate_dataset_from_raw( raw_dataset_filepath=test_dataset_raw_filepath, output_dataset_filepath=test_output_dataset_filepath, quality_width=test_quality_width, quality_height=test_quality_height, transform_final=test_transform_final, **kwargs) run_vmaf_cv(train_dataset_filepath=train_output_dataset_filepath, test_dataset_filepath=test_output_dataset_filepath, param_filepath=param_filepath, output_model_filepath=output_model_filepath, **kwargs)
def run_vmaf_cv_from_raw(train_dataset_raw_filepath, test_dataset_raw_filepath, param_filepath, output_model_filepath, **kwargs): if 'train_quality_wh' in kwargs: train_quality_width, train_quality_height = kwargs['train_quality_wh'] else: train_quality_width = None train_quality_height = None if 'test_quality_wh' in kwargs: test_quality_width, test_quality_height = kwargs['test_quality_wh'] else: test_quality_width = None test_quality_height = None if 'train_transform_final' in kwargs: train_transform_final = kwargs['train_transform_final'] else: train_transform_final = None if 'test_transform_final' in kwargs: test_transform_final = kwargs['test_transform_final'] else: test_transform_final = None train_output_dataset_filepath = VmafConfig.workspace_path('dataset', 'train_dataset.py') generate_dataset_from_raw(raw_dataset_filepath=train_dataset_raw_filepath, output_dataset_filepath=train_output_dataset_filepath, quality_width=train_quality_width, quality_height=train_quality_height, transform_final=train_transform_final, **kwargs) test_output_dataset_filepath = VmafConfig.workspace_path('dataset', 'test_dataset.py') \ if test_dataset_raw_filepath is not None else None generate_dataset_from_raw(raw_dataset_filepath=test_dataset_raw_filepath, output_dataset_filepath=test_output_dataset_filepath, quality_width=test_quality_width, quality_height=test_quality_height, transform_final=test_transform_final, **kwargs) run_vmaf_cv( train_dataset_filepath=train_output_dataset_filepath, test_dataset_filepath=test_output_dataset_filepath, param_filepath=param_filepath, output_model_filepath=output_model_filepath, **kwargs )
def setUp(self): train_dataset_path = VmafConfig.test_resource_path( 'test_image_dataset_diffdim.py') train_dataset = import_python_file(train_dataset_path) train_assets = read_dataset(train_dataset) self.h5py_filepath = VmafConfig.workdir_path('test.hdf5') self.h5py_file = DisYUVRawVideoExtractor.open_h5py_file( self.h5py_filepath) optional_dict2 = {'h5py_file': self.h5py_file} _, self.features = run_executors_in_parallel( DisYUVRawVideoExtractor, train_assets, fifo_mode=True, delete_workdir=True, parallelize= False, # CAN ONLY USE SERIAL MODE FOR DisYRawVideoExtractor result_store=None, optional_dict=None, optional_dict2=optional_dict2, ) self.model_filename = VmafConfig.workspace_path( "model", "test_save_load.pkl")
def setUp(self): train_dataset_path = VmafConfig.test_resource_path( 'test_image_dataset.py') train_dataset = import_python_file(train_dataset_path) train_assets = read_dataset(train_dataset) param = empty_object() param.model_type = "NIQE" param.model_param_dict = { 'patch_size': 96, } self.param = param optional_dict = {'mode': 'train'} _, self.features = run_executors_in_parallel( NiqeNorefFeatureExtractor, train_assets, fifo_mode=True, delete_workdir=True, parallelize=True, result_store=None, optional_dict=optional_dict, optional_dict2=None, ) self.model_filename = VmafConfig.workspace_path( 'model', 'test_save_load.pkl')
def setUp(self): train_dataset_path = VmafConfig.test_resource_path('test_image_dataset_diffdim.py') train_dataset = import_python_file(train_dataset_path) train_assets = read_dataset(train_dataset) runner = MomentNorefFeatureExtractor( train_assets, None, fifo_mode=True, delete_workdir=True, result_store=None, optional_dict=None, optional_dict2=None, ) runner.run(parallelize=True) self.features = runner.results self.model_filename = VmafConfig.workspace_path("model", "test_save_load.pkl")
def setUp(self): train_dataset_path = VmafConfig.test_resource_path('test_image_dataset_diffdim.py') train_dataset = import_python_file(train_dataset_path) train_assets = read_dataset(train_dataset) self.h5py_filepath = VmafConfig.workdir_path('test.hdf5') self.h5py_file = DisYUVRawVideoExtractor.open_h5py_file(self.h5py_filepath) optional_dict2 = {'h5py_file': self.h5py_file} runner = DisYUVRawVideoExtractor( train_assets, None, fifo_mode=True, delete_workdir=True, result_store=None, optional_dict=None, optional_dict2=optional_dict2, ) runner.run(parallelize=False) # CAN ONLY USE SERIAL MODE FOR DisYRawVideoExtractor self.features = runner.results self.model_filename = VmafConfig.workspace_path("model", "test_save_load.pkl")
def test_test_on_dataset_plot_per_content(self): from vmaf.routine import run_test_on_dataset test_dataset = import_python_file( VmafConfig.test_resource_path('dataset_sample.py')) import matplotlib.pyplot as plt fig, ax = plt.subplots(1, 1, figsize=[20, 20]) run_test_on_dataset(test_dataset, VmafQualityRunner, ax, None, VmafConfig.model_path("vmaf_float_v0.6.1.json"), parallelize=False, fifo_mode=False, aggregate_method=None, point_label='asset_id', do_plot=['aggregate', # plots all contents in one figure 'per_content' # plots a separate figure per content ], plot_linear_fit=True # adds linear fit line to each plot ) output_dir = VmafConfig.workspace_path("output", "test_output") DisplayConfig.show(write_to_dir=output_dir) self.assertEqual(len(glob.glob(os.path.join(output_dir, '*.png'))), 3) if os.path.exists(output_dir): shutil.rmtree(output_dir)
def setUp(self): self.output_model_filepath = VmafConfig.workspace_path( "model", "test_output_model.pkl")
import matplotlib.pyplot as plt import numpy as np from vmaf.config import VmafConfig from vmaf.routine import run_vmaf_cv, run_vmaf_kfold_cv if __name__ == '__main__': # ==== Run simple cross validation: one training and one testing dataset ==== run_vmaf_cv( train_dataset_filepath=VmafConfig.resource_path('dataset', 'NFLX_dataset_public.py'), test_dataset_filepath=VmafConfig.resource_path('dataset', 'VQEGHD3_dataset.py'), param_filepath=VmafConfig.resource_path('param', 'vmaf_v3.py'), output_model_filepath=VmafConfig.workspace_path('model', 'test_model1.pkl'), ) # ==== Run cross validation across genres (tough test) ==== nflx_dataset_path = VmafConfig.resource_path('dataset', 'NFLX_dataset_public.py') contentid_groups = [ [0, 5], # cartoon: BigBuckBunny, FoxBird [1], # CG: BirdsInCage [2, 6, 7], # complex: CrowdRun, OldTownCross, Seeking [3, 4], # ElFuente: ElFuente1, ElFuente2 [8], # sports: Tennis ] param_filepath = VmafConfig.resource_path('param', 'vmaf_v3.py') aggregate_method = np.mean
import numpy as np from vmaf.config import VmafConfig, DisplayConfig from vmaf.routine import run_vmaf_cv, run_vmaf_kfold_cv if __name__ == '__main__': # ==== Run simple cross validation: one training and one testing dataset ==== run_vmaf_cv( train_dataset_filepath=VmafConfig.resource_path( 'dataset', 'NFLX_dataset_public.py'), test_dataset_filepath=VmafConfig.resource_path('dataset', 'VQEGHD3_dataset.py'), param_filepath=VmafConfig.resource_path('param', 'vmaf_v3.py'), output_model_filepath=VmafConfig.workspace_path( 'model', 'test_model1.pkl'), ) # ==== Run cross validation across genres (tough test) ==== nflx_dataset_path = VmafConfig.resource_path('dataset', 'NFLX_dataset_public.py') contentid_groups = [ [0, 5], # cartoon: BigBuckBunny, FoxBird [1], # CG: BirdsInCage [2, 6, 7], # complex: CrowdRun, OldTownCross, Seeking [3, 4], # ElFuente: ElFuente1, ElFuente2 [8], # sports: Tennis ] param_filepath = VmafConfig.resource_path('param', 'vmaf_v3.py')
def setUp(self): self.output_model_filepath = VmafConfig.workspace_path("model", "test_output_model.pkl")