按照如下步骤安装VMAF时,基本把所有的环境都搭好了之后,运行不成功,一直显示没有matplotlib包,但是我明明已经装上了。后来查了查,大概率是因为我的虚拟机里同时安装了Python2和Python3,造成了冲突。于是决定用miniconda管理Python虚拟环境,重新安装VMAF。这种方法的链接:https://blog.csdn.net/weixin_42386056/article/details/105428468
一、安装vmaf
参考教程:https://www.jianshu.com/p/cb2393715e85
1.更新pip
sudo -H pip install --upgrade pip
2.安装依赖库
(1)安装依赖项
pip install --user numpy scipy matplotlib pandas scikit-learn scikit-image h5py sureal
(2)安装meson
pip install --user meson
(3)安装doxygen
sudo apt-get install doxygen
(4)安装re2c
参考教程:https://www.24kplus.com/linux/549.html
教程中第一步需要提前安装yum,但是yum和apt-get有些冲突,所以我把第一步指令更改如下:
sudo apt-get install git
sudo apt-get install automake
sudo apt-get install libtool
关于其中gcc和g++的安装,参考这个链接:https://zhuanlan.zhihu.com/p/92495466
(5)安装ninja
这篇教程是我找到的唯一可行的方法:https://www.cnblogs.com/freeweb/p/9334612.html
下载下ninja-release.zip安装包后,移到虚拟机的home目录下
cd ninja-release/
进行编译:
./configure.py --bootstrap
做软链或者复制到/usr/bin下面就可以直接调用了:
sudo cp ninja /usr/bin/
然后可以直接使用 ninja 命令。
执行 ./ninja -h 可以查看帮助。
确认ninja是否安装成功以及版本号:
ninja --version
3.获取源码
git clone https://github.com/Netflix/vmaf.git
cd vmaf
git submodule update --init --recursive
4.编译
make
5.配置环境变量
echo export PYTHONPATH="$(pwd)/python/src:$(pwd)/sureal/python/src:$PYTHONPATH" >> ~/.bash_profile
source ~/.bash_profile
6.测试
./run_vmaf yuv420p 576 324 python/test/resource/yuv/src01_hrc00_576x324.yuv python/test/resource/yuv/src01_hrc01_576x324.yuv --out-fmt json
如果执行成功则应有以下输出:
...
"aggregate": {
"VMAF_feature_adm2_score": 0.9345878041226809,
"VMAF_feature_motion2_score": 3.8953518541666665,
"VMAF_feature_vif_scale0_score": 0.36342081156994926,
"VMAF_feature_vif_scale1_score": 0.7666473878461729,
"VMAF_feature_vif_scale2_score": 0.8628533892781629,
"VMAF_feature_vif_scale3_score": 0.9159718691393048,
"VMAF_score": 76.69927060701059,
"method": "mean"
}