FAST-VQA/FasterVQA
📘我们在huggingface上维护了LSVQ数据集的非官方副本链接,这对于复现FAST-VQA/FasterVQA的训练是必需的。请遵守该数据集原始的使用条款,我们对任何不合规使用不承担责任。
- 2023年9月11日:扩展版(FasterVQA)被TPAMI 2023接收!
- 2022年12月2日:升级了默认推理脚本。
- 2022年11月10日:发布ECVA官方版本,以及我们基于FAST-VQA的未来工作DOVER,性能更佳:PDF,摘要,GitHub。
- 2022年10月12日:发布FasterVQA论文预印本:PDF,摘要。
- 2022年9月27日:发布FasterVQA模型:效率提高4倍,在Apple M1 CPU上实现14倍实时推理(针对FasterVQA-MT,在我的旧Mac上测试)。
- 2022年9月10日:支持自适应多尺度推理(AMI):一个模型适用于不同尺度的输入。
FasterVQA的性能:
[多个性能徽章]
FAST-VQA的性能:
[多个性能徽章]
一个开源的端到端视频质量评估工具箱,
同时也是ECCV2022论文FAST-VQA: 基于片段采样的高效端到端视频质量评估及其扩展论文基于邻域代表性采样的高效端到端视频质量评估的可复现代码。 :sparkles: 我们正式宣布推出FasterVQA(开发期间命名为FAST-VQA-B-3D),它将提出的Fragments扩展为3D版本,带来4倍速度提升的同时保持相似性能。随着会议临近,ECCV论文的官方CVF版本也将很快上线。
我们正式发布了新版的FasterVQA,在效率提升4倍的情况下保持接近原始FAST-VQA的性能。
在这个版本中,我们重构了训练和测试代码。重构后的代码可以达到与原始版本相同的性能,并允许修改(1)骨干网络结构;(2)采样超参数;(3)损失函数。
在这一版本中,我们对训练和测试的代码进行了重构。重构后的代码可以达到与原始版本相同的性能,并允许修改网络结构/采样的超参数/损失函数。
[升级版] 对单个MP4视频进行推理
python vqa.py -m [模型类型] -v [您的输入文件路径]
模型类型
可以在FasterVQA、FAST-VQA及其高效版本FasterVQA-MS、FasterVQA-MT、FAST-VQA-M中选择。
默认python vqa.py
(使用FasterVQA推理)的输出可能是:
使用模型[FasterVQA]进行推理:
视频的质量得分(范围[0,1])为0.42326。
python vqa.py -m FAST-VQA
(使用FAST-VQA推理)的输出可能是:
使用模型[FAST-VQA]进行推理:
视频的质量得分(范围[0,1])为0.44953。
结果现在通过sigmoid函数缩放到[0,1]之间。
接近0的分数:极差质量。
0.25分:差质量。
0.5分:一般质量。
0.75分:良好质量。
接近1.0的分数:极佳质量。
查看我们的Weights & Biases训练日志
我们在Wandb上公开了一部分训练和测试曲线。
我们正在重现几个实验并公开我们的训练日志。
现在支持:
- FasterVQA-finetuned-to-KonViD-1k
- FasterVQA-on-MT-and-MS-scales-with-AMI
:triangular_flag_on_post: 为开发设计的模块化部分
数据预处理
请查看数据处理以查看数据处理的源代码。 特别是,查看FusionDataset类和get_spatial_and_temporal_samples函数以了解我们的核心转换。
空间采样
我们支持以下空间采样方法:
- fragments
- resize
- arp_resize (保持原始宽高比的调整大小)
- crop
我们还支持这些采样方法的组合(多分支网络)以获得更大的灵活性。
时域采样(新)
我们还支持不同的时域采样方法:
- SampleFrames (采样连续帧,从MMAction2导入)
- FragmentSampleFrames (:sparkles: 新,采样类似fragment的不连续帧)
网络结构
网络骨干
- Video Swin Transformer (带GRPB,如FAST-VQA中所提出)
- Video Swin Transformer (原始版)
- ConvNext-I3D (原始版)
网络头
- IP-NLR头 (如FAST-VQA中所提出)
IP-NLR头可以为视频生成局部质量图。
安装
依赖
原始库使用以下环境构建:
- python=3.8.8
- torch=1.10.2
- torchvision=0.11.3
同时使用decord模块读取原始视频(这样您就不需要对原始.mp4输入进行任何转换)。
要获取所有依赖,请运行:
pip install -r requirements.txt
直接安装
您可以运行:
git clone htps://github.com/QualityAssessment/FAST-VQA-and-FasterVQA.git
cd FAST-VQA-and-FasterVQA
pip install -e .
来安装完整的FAST-VQA及其依赖。-e
选项允许您导入自定义版本的包。
使用方法
快速基准测试
步骤1:获取预训练权重
我们支持几个版本的预训练权重:
名称 | 预训练 | 空间片段 | 时间片段 | PLCC@LSVQ_1080p | PLCC@LSVQ_test | PLCC@LIVE_VQC | PLCC@KoNViD | MACs | 配置 | 模型 |
---|---|---|---|---|---|---|---|---|---|---|
FAST-VQA-B (ECCV2022) | Kinetics-400 | 7*32 | 132(4) | 0.814 | 0.877 | 0.844 | 0.855 | 279G | 配置 | github |
FasterVQA (:sparkles: 新!) | Kinetics-400 | 7*32 | 8*4(*1) | 0.811 | 0.874 | 0.837 | 0.864 | 69G | 配置 | github |
- 使用AMI零样本迁移到MT规模 | Kinetics-400 | 7*32 | 4*4(*1) | 0.791 | 0.860 | 0.826 | 0.849 | 35G | 配置 | 与FasterVQA相同 |
- 使用AMI零样本迁移到MS规模 | Kinetics-400 | 5*32 | 8*4(*1) | 0.798 | 0.849 | 0.818 | 0.854 | 36G | 配置 | 与FasterVQA相同 |
FAST-VQA-B-From-Scratch (:sparkles: 新!) | 无 | 7*32 | 132(4) | 0.707 | 0.791 | 0.766 | 0.793 | 279G | 配置 | github |
FAST-VQA-B-3D-From-Scratch (:sparkles: 新!) | 无 | 7*32 | 8*4(*1) | 0.685 | 0.760 | 0.739 | 0.773 | 69G | 配置 | github |
FAST-VQA-M (ECCV2022) | Kinetics-400 | 4*32 | 1*32(*4) | 0.773 | 0.854 | 0.810 | 0.832 | 46G | 配置 | github |
步骤2:下载相应数据集
LSVQ: Github KoNViD-1k: 官方网站 LIVE-VQC: 官方网站
步骤3:运行以下一行脚本!
python new_test.py -o [你的选项]
训练
从识别模型获取预训练权重
你可能需要下载原始的Swin-T权重来初始化模型。
在大型数据集(LSVQ)上训练
要训练FAST-VQA-B,请运行
python new_train.py -o options/fast/fast-b.yml
要训练FAST-VQA-M,请运行
python new_train.py -o options/fast/fast-m.yml
要训练FasterVQA(FAST-VQA-B-3D),请运行
python new_train.py -o options/fast/f3dvqa-b.yml
使用提供的权重在小型数据集上进行微调
这个训练过程将数据集随机分成10个训练/测试集(随机种子为42),并报告测试数据集随机分割后的最佳结果。
python split_train.py -opt [你的选项文件]
你可以在微调配置文件中查看选项文件。
FAST-VQA-B的结果:
KoNViD-1k | CVD2014 | LIVE-Qualcomm | LIVE-VQC | YouTube-UGC | |
---|---|---|---|---|---|
SROCC | 0.891 | 0.891 | 0.819 | 0.849 | 0.855 |
PLCC | 0.892 | 0.903 | 0.851 | 0.862 | 0.852 |
KoNViD-1k | CVD2014 | LIVE-Qualcomm | LIVE-VQC | YouTube-UGC | |
---|---|---|---|---|---|
SROCC | 0.895 | 0.896 | 0.826 | 0.843 | 0.863 |
PLCC | 0.898 | 0.904 | 0.843 | 0.858 | 0.859 |
注意,这部分仅支持FAST-VQA-B和FAST-VQA-B-3D(FasterVQA);但你可以为其他变体创建自己的选项文件。 支持的数据集包括KoNViD-1k、LIVE_VQC、CVD2014、LIVE-Qualcomm和YouTube-UGC。
引用
如果提出相关论文,请在参考文献中引用以下论文。
@misc{wu2022fasterquality,
title={用于高效端到端视频质量评估的邻域代表性采样},
author={吴昊宁 and 陈超峰 and 廖亮 and 侯静文 and 孙文秀 and 闫琼 and 顾金伟 and 林伟思},
year={2022},
eprint={2210.05357},
archivePrefix={arXiv}
}
@article{wu2022fastquality,
title={FAST-VQA:使用片段采样的高效端到端视频质量评估},
author={吴昊宁 and 陈超峰 and 侯静文 and 廖亮 and 王安南 and 孙文秀 and 闫琼 and 林伟思},
journal={欧洲计算机视觉会议论文集(ECCV)},
year={2022}
}
如果使用了此代码库,请引用:
@misc{end2endvideoqualitytool,
title = {开源深度端到端视频质量评估工具箱},
author = {吴昊宁},
year = {2022},
url = {http://github.com/timothyhtimothy/fast-vqa}
}