This repository contains the official implementation of the FUNQUE and FUNQUE+ suite of models proposed in the following papers.
- A. K. Venkataramanan, C. Stejerean and A. C. Bovik, "FUNQUE: Fusion of Unified Quality Evaluators," 2022 IEEE International Conference on Image Processing (ICIP), Bordeaux, France, 2022, pp. 2147-2151, doi: 10.1109/ICIP46576.2022.9897312.
- A. K. Venkataramanan, C. Stejerean, I. Katsavounidis, and A. C. Bovik, "One Transform To Compute Them All: Efficient Fusion-Based Full-Reference Video Quality Assessment," arXiv preprint arXiv:2304.03412 (2023)
These models have been shown to be strong alternatives to SOTA quality models such as VMAF, promising greater accuracy at a fraction of the computational cost. For more details, refer to our arXiv preprint!
An efficient unified transform used by all atom quality models to introduce sensitivity to human perception while maximizing computation sharing.
Using the Self-Adaptive Scale Transform (SAST) to rescale videos prior to quality assessment.
Computing Multi-Scale Enhanced SSIM directly from wavelet coefficients.
The FUNQUE and FUNQUE+ models offer the best performance, both in terms of accuracy and efficiency!
Note: running speeds were measured using comparable implementations in Python over 150 1080p frames on an Intel Core i7-8700 CPU having a clock frequency of 3.2GHz.
| Model | Test Performance | Running Speed (FPS) |
|---|---|---|
| MS-SSIM | 0.7849 | 3.46 |
| VMAF | 0.8312 | 1.78 |
| Enhanced VMAF | 0.8377 | 0.20 |
| FUNQUE | 0.8409 | 10.88 |
| Y-FUNQUE+ | 0.8660 | 19.53 |
| 3C-FUNQUE+ | 0.8754 | 6.83 |
Create and activate a virtual environment using
python3 -m virtualenv .venv
source .venv/bin/activate
Install all required dependencies
python3 -m pip install To compute features from one video pair for either the FUNQUE(+) models or the baseline models, use the command
python3 extract_features.py --ref_video <path to reference video> --dis_video <path to distorted video> --fex_name <name of feature extractor>
Refer to the NAME attributes of feature extractors defined in funque_plus/feature_extractors for the names of various feature extractors. For example, the name of the FUNQUE, Y-FUNQUE+, and 3C-FUNQUE+ feature extractors are FUNQUE_fex, Y_FUNQUE_Plus_fex, and 3C_FUNQUE_Plus_fex respectively.
For more options, run
python3 extract_features.py --help
First, define a subjective dataset file using the same format as those in datasets/. Then, run
python3 extract_features_from_dataset.py --dataset <path to dataset file> --fex_name <name of feature extractor> --processes <number of parallel processes to use>
Note: This command computes features and saves the results to disk. It does not print any features. Saved features may be used for downstream tasks - example below
To evaluate features using content-separated random cross-validation, run
python3 crossval_features_on_dataset.py --dataset <path to dataset file> --fex_name <name of feature extractor> --splits <number of random train-test splits> --processes <number of parallel processes to use>
Note: This command may be run without running extract_features_from_dataset.py first. In that case, features will be extracted and saved first, before performing cross-validation
This script is an example of down-stream tasks that can be performed easily after feature extraction.
[1] https://www.github.com/Netflix/vmaf.
[2] K. Gu, G. Zhai, X. Yang and W. Zhang, "Self-adaptive scale transform for IQA metric," 2013 IEEE International Symposium on Circuits and Systems (ISCAS), Beijing, 2013, pp. 2365-2368, doi: 10.1109/ISCAS.2013.6572353.
[3] A. K. Venkataramanan, C. Wu, A. C. Bovik, I. Katsavounidis and Z. Shahid, "A Hitchhiker’s Guide to Structural Similarity," in IEEE Access, vol. 9, pp. 28872-28896, 2021, doi: 10.1109/ACCESS.2021.3056504.
[4] https://www.github.com/utlive/enhanced_ssim.
[5] F. Zhang, A. Katsenou, C. Bampis, L. Krasula, Z. Li and D. Bull, "Enhancing VMAF through New Feature Integration and Model Combination," 2021 Picture Coding Symposium (PCS), 2021, pp. 1-5, doi: 10.1109/PCS50896.2021.9477458.