Esempio n. 1
0
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)
Esempio n. 2
0
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
    )
Esempio n. 3
0
    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")
Esempio n. 4
0
    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')
Esempio n. 5
0
    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")
Esempio n. 6
0
    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")
Esempio n. 7
0
    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)
Esempio n. 8
0
 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
Esempio n. 10
0
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')
Esempio n. 11
0
 def setUp(self):
     self.output_model_filepath = VmafConfig.workspace_path("model", "test_output_model.pkl")