视频生成模型多维度质量评估套件
VBench项目提供一个全面的基准测试套件,专用于评估视频生成模型的多维质量。通过分层的评估维度,VBench可以细化并客观地评估视频生成质量的多个方面。套件包含详细的提示和评估方法,并提供人类偏好注释,确保结果与人类感知一致。用户可以选择对自定义视频或标准提示进行评估,以确保模型间的公平对比。
这个仓库包含了以下论文的实现及其相关的正在进行的系列研究。我们评估视频生成模型!
VBench:视频生成模型的综合基准套件<br> 黄子齐<sup>∗</sup>, 贺逸男<sup>∗</sup>, 于家硕<sup>∗</sup>, 张帆<sup>∗</sup>, 司晨阳, 蒋昀鸣, 张元瀚, 吴天行, 晋庆阳, Nattapol Chanpaisit, 王耀辉, 陈昕元, 王立民, 林达华<sup>+</sup>, 乔宇<sup>+</sup>, 刘子微<sup>+</sup><br> IEEE/CVF计算机视觉与模式识别会议(CVPR),2024
<a name="updates"></a>
vbench
的PyPI包已更新到0.1.2版本。此次更新包含高分辨率图像/视频预处理中的更改,支持评估自定义视频,并修复了少量错误。pip install vbench
。['主体一致性', '背景一致性', '时间闪烁', '运动平滑', '动态程度', '美学质量', '成像质量', '对象分类', '多个对象', '人的动作', '颜色', '空间关系', '场景', '时间风格化一致性', '外观风格化一致性', '整体一致性']
<a name="overview"></a>
我们提出了VBench,一个视频生成模型的综合基准套件。我们设计了一个综合且分层的<b>评估维度套件</b>,将“视频生成质量”分解为多个定义明确的维度,以促进细粒度和客观的评估。针对每个维度和每个内容类别,我们精心设计了一个<b>提示语套件</b>作为测试案例,并从一组视频生成模型中采样<b>生成的视频</b>。针对每个评估维度,我们特别设计了一个<b>评估方法套件</b>,使用精心设 计的方法或指定的流程进行自动化客观评估。我们还进行了每个维度的生成视频的<b>人类偏好注释</b>,并展示了VBench评估结果<b>与人类感知高度一致</b>。VBench能够从多个角度提供宝贵的见解。
<a name="evaluation_results"></a>
我们可视化了VBench评估结果,涵盖了各种公开可用的视频生成模型,包括Gen-2和Pika在16个VBench维度上的表现。我们对每个维度的结果进行了归一化处理,以便于更清楚的比较。
请查看我们的排行榜上的数值:1st_place_medal::2nd_place_medal::3rd_place_medal:
如何加入VBench排行榜? 查看以下3种选项:
采样团队 | 评估团队 | 备注 |
---|---|---|
VBench团队 | VBench团队 | 我们会定期分配资源来采样新发布的模型并进行评估。您可以请求我们进行采样和评估,但进度取决于我们的可用资源。 |
您的团队 | VBench团队 | 对于非开源模型,如有兴趣加入我们的排行榜,请提交您的视频样本给我们进行 评估。如果您更倾向于直接提供评估结果,请参见下行。 |
您的团队 | 您的团队 | 如果您已经在报告/论文中使用VBench进行了完整评估,请将您的eval_results.zip 文件提交到VBench Leaderboard ,使用Submit here! 表单进行提交。评估结果将自动更新到排行榜。同时,请分享您的模型信息,供我们记录任何栏目here。 |
请查看我们用于评估的视频生成模型模型信息。
<!-- The values have been normalized for better readability of the chart. The normalization process involves scaling each set of performance values to a common scale between 0.3 and 0.8. The formula used for normalization is: (value - min value) / (max value - min value). --><a name="installation"></a>
pip install vbench
为了评估某些视频生成能力方面,需要安装detectron2:
pip install detectron2@git+https://github.com/facebookresearch/detectron2.git
若在安装detectron2时出现错误,参考这里。
下载VBench_full_info.json到运行目录,以读取基准 提示套件。
git clone https://github.com/Vchitect/VBench.git
pip install -r VBench/requirements.txt
pip install VBench
若在安装detectron2时出现错误,参考这里。
<a name="usage"></a>
使用VBench评估视频和视频生成模型。
mode=custom_input
,您即可评估自己的视频。我们支持评估任何视频。只需提供视频文件的路径,或包含视频的文件夹的路径。对视频名称没有要求。
'主体一致性', '背景一致性', '运动平滑', '动态程度', '美学质量', '成像质量'
要使用自定义输入提示评估视频,运行我们的脚本并设置--mode=custom_input
:
python evaluate.py \
--dimension $DIMENSION \
--videos_path /path/to/folder_or_video/ \
--mode=custom_input
或者您可 以使用我们的命令:
vbench evaluate \
--dimension $DIMENSION \
--videos_path /path/to/folder_or_video/ \
--mode=custom_input
vbench evaluate --videos_path $VIDEO_PATH --dimension $DIMENSION
例如:
vbench evaluate --videos_path "sampled_videos/lavie/human_action" --dimension "human_action"
from vbench import VBench my_VBench = VBench(device, <path/to/VBench_full_info.json>, <path/to/save/dir>) my_VBench.evaluate( videos_path = <video_path>, name = <name>, dimension_list = [<dimension>, <dimension>, ...], )
例如:
from vbench import VBench my_VBench = VBench(device, "vbench/VBench_full_info.json", "evaluation_results") my_VBench.evaluate( videos_path = "sampled_videos/lavie/human_action", name = "lavie_human_action", dimension_list = ["human_action"], )
vbench evaluate \ --videos_path $VIDEO_PATH \ --dimension $DIMENSION \ --mode=vbench_category \ --category=$CATEGORY
或者
python evaluate.py \
--dimension $DIMENSION \
--videos_path /path/to/folder_or_video/ \
--mode=vbench_category
我们提供了脚本来下载VideoCrafter-1.0的样本,以及相应的评估脚本。
# 下载采样视频
sh scripts/download_videocrafter1.sh
# 评估VideoCrafter-1.0
sh scripts/evaluate_videocrafter1.sh
我们提供了计算排行榜中的最终得分
、质量得分
和语义得分
的脚本。 您可以在本地运行它们以获得最终得分,或者在提交到排行榜之前进行最终检查。
# 将评估结果打包成一个zip文件。 cd evaluation_results zip -r ../evaluation_results.zip . # [可选] 获取提交文件的最终得分。 python scripts/cal_final_score.py --zip_file {path_to_evaluation_results.zip} --model_name {your_model_name}
您可以将json文件提交到HuggingFace
<a name="pretrained_models"></a>
[可选] 请根据pretrained
文件夹model_path.txt
文件中的指导,为每个模型下载预训练权重到 ~/.cache/vbench
。
<a name="prompt_suite"></a>
我们提供了prompts/
中的提示列表。
查看提示套件的详细信息,以及如何采样视频进行评估的说明。
<a name="sampled_videos"></a>
为了促进未来的研究并确保完全透明,我们发布了用于VBench评估的所有采样视频。您可以在Google Drive上下载它们。
查看采样视频的详细说明此处。
我们还提供了评估模型的详细设置此处。
<a name="evaluation_method_suite"></a>
要对某一个维度进行评估,请运行:
python evaluate.py --videos_path $VIDEOS_PATH --dimension $DIMENSION
['subject_consistency', 'background_consistency', 'temporal_flickering', 'motion_smoothness', 'dynamic_degree', 'aesthetic_quality', 'imaging_quality', 'object_class', 'multiple_objects', 'human_action', 'color', 'spatial_relationship', 'scene', 'temporal_style', 'appearance_style', 'overall_consistency']
或者,您可以使用这个脚本评估多个模型和多个维度:
bash evaluate.sh
vbench_videos/{model}/{dimension}/{prompt}-{index}.mp4/gif
要在时间闪烁维度中过滤掉静态视频,请运行:
# 这只会过滤掉提示与时间闪烁匹配的静态视频。
python static_filter.py --videos_path $VIDEOS_PATH
您可以调整过滤范围:
# 1. 改变过滤范围,以考虑videos_path内的所有文件进行过滤。
python static_filter.py --videos_path $VIDEOS_PATH --filter_scope all
# 2. 指定一个JSON文件($filename)的路径,只考虑提示符合$filename中列出的提示的视频。
python static_filter.py --videos_path $VIDEOS_PATH --filter_scope $filename
<a name="citation_and_acknowledgement"></a>
如果您觉得我们的仓库对您的研究有用,请考虑引用我们的论文:
@InProceedings{huang2023vbench, title={{VBench}: Comprehensive Benchmark Suite for Video Generative Models}, author={Huang, Ziqi and He, Yinan and Yu, Jiashuo and Zhang, Fan and Si, Chenyang and Jiang, Yuming and Zhang, Yuanhan and Wu, Tianxing and Jin, Qingyang and Chanpaisit, Nattapol and Wang, Yaohui and Chen, Xinyuan and Wang, Limin and Lin, Dahua and Qiao, Yu and Liu, Ziwei}, booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, year={2024} }
按加入项目的时间顺序排列:
Ziqi Huang, Yinan He, Jiashuo Yu, Fan Zhang, Nattapol Chanpaisit, Xiaojie Xu, Qianli Ma, Ziyue Dong。
没有以下开源仓库,这个项目是不可能完成的: AMT, UMT, RAM, CLIP, RAFT, GRiT, IQA-PyTorch, ViCLIP, 以及LAION Aesthetic Predictor。
我们正在整理Awesome-Evaluation-of-Visual-Generation,收集评估视觉生成的作品。