DVQA - Deep learning-based Video Quality Assessment
We recommend to run the code with virtualenv. The code is developed with Python3.
Please install other prerequisites with the following command after invoking a virtual env.
pip install -r requirements.txt
All packages are required to run the code.
Please prepare a dataset if you want to evaluate in batch or train the code from scratch on your own GPUs. The dataset should be in json format, e.g. your_dataset.json
{
"test": {
"dis": ["dis_1.yuv", "dis_2.yuv"],
"ref": ["ref_1.yuv", "ref_2.yuv"],
"fps": [30, 24],
"mos": [94.2, 55.8],
"height": [1080, 720],
"width": [1920, 1280]
},
"train": {
"dis": ["dis_3.yuv", "dis_4.yuv"],
"ref": ["ref_3.yuv", "ref_4.yuv"],
"fps": [50, 24],
"mos": [85.2, 51.8],
"height": [320, 720],
"width": [640, 1280]
}
}
For the time being, only YUV is supported. We will update modules to read bitstream.
Put all YUV files (both dis and ref) in a folder and prepare your_dataset.json accordingly. Invoke virtualenv and run:
python eval.py --multi_gpu --video_dir /dir/to/yuv --score_file_path /path/to/your_dataset.json --load_model ./save/model_pgc.pt
Prepare dataset as above and simply run:
python train.py --multi_gpu --video_dir /dir/to/yuv --score_file_path /path/to/your_dataset.json --save_model ./save/your_new_trained.pt
Please check train.sh and opts.py if you would like to tweak other hyper-parameters.
The pretrained model was trained on 720P PGC videos compressed with H.264/AVC. It runs well with video of a resolution 1920x1080 and below.
We are not sure about the performance when the code is run with the following scenario,
We will try to answer above questions. Stay tuned.