按照如下步骤安装VMAF时,基本把所有的环境都搭好了之后,运行不成功,一直显示没有matplotlib包,但是我明明已经装上了。后来查了查,大概率是因为我的虚拟机里同时安装了Python2和Python3,造成了冲突。于是决定用miniconda管理Python虚拟环境,重新安装VMAF。这种方法的链接:https://blog.csdn.net/weixin_42386056/article/details/105428468
参考教程: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"
}
文章浏览阅读995次。一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN(左连接):取得左表(table1)完全记录..._left join和right join和inner join的效率
文章浏览阅读863次。检测技术/ Power detection智能电网输变电设备综合状态监测系统的设计与实现时间:2013/11/5 来源:华天电力阅读:6723 次摘 要: 状态监测是运用先进的技术手段对输变电设备进行自动化监测和科学管理的总称,是实现智能电网的重要基础之一。本文设计并实现了符合智能电网需求的设备综合状态监测系统,通过在智能变电站内安装基于先进传感技术的监测装置,以标准通讯协议实现主要输变电..._变电站设备状态预测图
文章浏览阅读66次。酷酷的 CSS3 三角形运用 概述在早期的前端Web设计开发年代,完成一些页面元素时,我们必须要有专业的PS美工爸爸,由PS美工爸爸来切图,做一些圆角、阴影、锯齿或者一些小图标。在CSS3出现后,借助一些具有魔力的CSS3属性,使得这些元素大多都可以由开发人员自己来完成。在开始阅读这篇文章前,我们先喊个口号:不想当艺术家的程序员不是好设计师!图例..._如何使用c3画出一个3角形
Ajax 是浏览器中的技术:用来实现客户端网页请求服务器的数据。它的英文全称是AJavascriptAndXML,简称 Ajax。
C++多态
【代码】string模拟实现(直接上源码)
本期简单讲了下分库分表和分布式的一些异同,也扩展了一下自己对分布式数据库的一些期望。
文章浏览阅读240次。** * Utility class for http request. * */ public class Utility { private static RequestParameters mRequestHeader = new RequestParameters(); public static final String BOUN..._androidutility怎么用
文章浏览阅读2k次。本文主要介绍邮件乱码产生的主要原因及几种解决方法: E-mail编码标准 由于一个汉字是用两个扩展 ASCII码表示,对DOS、Windows及Unix系统来说,所有英文字母及符号都是用ASCII码来代表,ASCII码只用到每个字节的前7位。而一些电脑系统在通信时不使用8-bit clean传输方式,无法处理8位的数据或把8位数据当作7位来处理,数据就会被破坏。对电子邮件来说,有时_发邮件乱码
文章浏览阅读8k次,点赞25次,收藏125次。学过一段时间单片机的你发现,中断服务函数可以在主函数进行的同时,进行一些对时间要求高的模块的配置时,则要用到定时器中断。而如果你要实现多个功能的操作,会使用多个定时器是必要的STC89C51单片机所有的资源中最不好搞清楚的就是定时器2,尤其是对于那些以前从来没有玩过单片机的新手。定时器2是新增资源,也是51单片机定时器里面功能最强大的一个定时器。 定时器2有三个模式,在这里我们只是介绍系统的简单配置与将定时器2当成一般递增/递减计数器的使用代码,剩下的模式可以自己查阅手册: 下面我带着大家简单配置一_51单片机定时器2
监听 ContextRefreshedEvent 或 ApplicationReadyEvent 等应用上下文初始化完成事件。
想把其中涉及的多个CREATE TABLE语句前添加相应的DROP TABLE语句如下,如对应。即为捕获组(使用括号包围的正则)的概念,而捕获组的内容可以通过序号进行提取,如通过。使用Notepad++打开sql脚本,按CTRL+F弹出查找对话框,点击上方的。标签,输入如下替换内容后,选择查找模式为。即被替换为相应的table名称,切中的。获取第一个捕获组的内容,如此。