【音频测评】全参考测评

本文详细介绍了Netflix开发的VMAF(Video Multimethod Assessment Fusion)视频质量评估工具的安装步骤和使用过程,包括环境配置、解决编译错误、执行命令等。VMAF通过融合多种指标如视觉质量保真度、细节损失度量和时间信息来预测主观质量。此外,还提供了视频处理的顺序,涉及分辨率调整、裁剪等操作。
摘要由CSDN通过智能技术生成

VMAF (Video Multimethod Assessment Fusion) 由 Netflix
开发并开源,利用大量的主观数据作为训练集,通过机器学习的手段将不同评估维度的算法进行“融合”,得到一个能准确反映主观意志的画质评价标准。

VMAF 主要包括3种指标:visual quality fidelity(VIF)、detail loss
measure(DLM)、temporal information(TI)。其中 VIF 和 DLM 是空间域的也即一帧画面之内的特征,TI
是时间域的也即多帧画面之间相关性的特征。这些特性之间融合计算总分的过程使用了训练好的 SVM 来预测。对每张图的打分,最终用于参考

一、命令汇总

编译环境准备

brew install gcc meson doxygen nasm freetype pkg-config hdf5
brew install numpy scipy

下载源码

git clone https://github.com/Netflix/vmaf.git
cd vmaf
git submodule update --init --recursive

编译

make

下载 VMAF 并安装

cd python
pip3 install cython
pip3 install -r requirements.txt
pip3 install --user .   # 此时,会出现各种报错

环境变量配置

vim ~/.bash_profile 
source ~/.bash_profile 

在 vmaf 根目录下

./unittest

PyCharm执行

which python
python ./vmaf/script/run_vmaf.py yuv420p 576 324 test/resource/yuv/src01_hrc00_576x324.yuv test/resource/yuv/src01_hrc01_576x324.yuv --out-fmt json

二、报错汇总

编译环境准备时:
报错1:
Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins

解决1:
sudo chown -R $(whoami) $(brew --prefix)/*
下载 VMAF 并安装:
报错2:

ninja: build stopped: subcommand failed.

解决2:其实不影响后续的执行,但是在最终运行的时候会报错。我是通过替换tools的文件解决的。
 
报错3:

vmaf/core/adm_dwt2_cy.c:634:10: fatal error: '../../../libvmaf/src/feature/adm.c' file not found
    #include "../../../libvmaf/src/feature/adm.c"

             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

解决3:修改相关路径为绝对路径

文件路径:

/vmaf/python/vmaf/core

vim adm_dwt2_cy.pyx

重新执行

pip3 install -r requirements.txt

pip3 install --user .
报错4:
    #warning "Using deprecated NumPy API, disable it with " \

     ^

    In file included from vmaf/core/adm_dwt2_cy.c:636:

    /Users/meizhuo/vmaf/libvmaf/src/feature/adm_tools.c:27:10: fatal error: 'mem.h' file not found

    #include "mem.h"

             ^~~~~~~

解决4:
cd libvmaf/src/feature/
cp /Users/XXXX/vmaf/libvmaf/src/mem.h .
执行Python文件命令:
python ./vmaf/script/run_vmaf.py yuv420p 576 324 test/resource/yuv/src01_hrc00_576x324.yuv test/resource/yuv/src01_hrc01_576x324.yuv --out-fmt json
报错5:
ModuleNotFoundError: No module named 'vmaf'

解决5:

/vmaf/python/vmaf/script/run_vmaf.py
curpath = os.path.abspath(os.path.dirname(__file__))
root_path = os.path.split(os.path.split(curpath)[0])[0]
if root_path not in sys.path:
    sys.path.append(root_path)

/vmaf/python/vmaf/svmutil.py
if VmafConfig.root_path() not in sys.path:
sys.path.append(VmafConfig.root_path())

三、执行命令

VMAF:
python ./vmaf/script/run_vmaf.py yuv420p 576 324 test/resource/yuv/A.yuv test/resource/yuv/B.yuv --out-fmt json

python ./vmaf/script/run_vmaf.py yuv420p 480 270 test/resource/yuv/sparks_ref_480x270.yuv42010le.yuv test/resource/yuv/sparks_dis_480x270.yuv42010le.yuv --out-fmt json

./vmaf/script/run_vmaf.py yuv420p 1280 720 ./test/resource/yuv/_1.000000.yuv ./test/resource/yuv/_1.000001.yuv --out-fmt json

./run_vmaf yuv420p 576 324 python/test/resource/yuv/src01_hrc00_576x324.yuv python/test/resource/yuv/src01_hrc01_576x324.yuv --out-fmt json

mfPEVQScore:4.534
mfPEVQScore:4.532

在这里插入图片描述

四、成功图示:

在这里插入图片描述

五、运用-处理顺序

1、截取视频中的一张图:确认视频的分辨率、宽高:

ffmpeg -i screenrecording.mov -ss 00:00:00 -frames:v 1 image.png -hide_banner

2、修改分辨率,宽高等比缩放
ffmpeg -i screenrecording.mov -ss 00:00:5.95 -t 00:00:12 -vf scale=320:180 out.mov

3、截取视频长度,以防循环播放:
ffmpeg -i screenrecording.mov -ss 00:00:5.95 -t 00:00:11.9 -vf scale=320:180 out.mov

4、从图片中获取log的位置,进行尺寸切除
ffmpeg -i screenrecording.mov -ss 00:00:5.95 -t 00:00:11.9 -filter:v "crop=2868:1614:6:16,scale=1280:720" -r 30 sc_cropped.mov

ffmpeg -i screenrecording.mov -ss 00:00:5.95 -t 00:00:11.9 -filter:v "crop=2868:1614:6:16,scale=1280:720" -r 30 -c:v rawvideo sc_cropped.avi

5、进行裁剪:摆脱小作物
ffmpeg -i sc_cropped.mov -filter:v "crop=iw/1.1:ih/1.1” sc_cropped_overlays.mov

6、使用原始视频作为输入,并且我们可以指定一个无损的 h.264 avi 文件作为输出:
ffmpeg -i sc_cropped.avi -filter:v "crop=iw/1.1:ih/1.1" -c:v libx264  -crf 0 sc_cropped_overlays.avi

7、我们将相同的裁剪应用于原始文件,并将输出指定为无损 h.264:
ffmpeg -i meeting_ref.avi -filter:v "crop=iw/1.1:ih/1.1" -c:v libx264 -crf 0 meeting_ref_1_1_crop.avi

8、传入执行:curl

六、学习地址、参考文档

1.音频质量评估-1
2.https://github.com/ludlows/python-pesq
3.https://github.com/google/visqol
4.实践总结地址:https://www.cnblogs.com/darlingmz/p/14832841.html
5.PS:学习地址Mac安装教程:https://testerhome.com/topics/25083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值