文本生成视频相关指标整理

这篇具有很好参考价值的文章主要介绍了文本生成视频相关指标整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FID ↓ \downarrow ↓

Fréchet Inception Distance

基本思想:直接考虑生成数据和真实数据在feature层次的距离
预训练好的神经网络可以在在高层提取图片的抽象特征。FID通常使用Inception Net-V3全连接前的2048维向量作为图片的feature。
直观感受,FID是反应生成图片和真实图片的距离,数据越小越好。

具体而言,FID是衡量两个多元正态分布的距离,其公式如下
F I D = ∣ ∣ μ r − μ g ∣ ∣ 2 + T r ( ∑ r + ∑ g − 2 ∑ r ∑ g 1 / 2 ) FID = ||\mu_r-\mu_g||^2+Tr(\begin{matrix} \sum_r \end{matrix}+\begin{matrix} \sum_g\end{matrix}-2\begin{matrix} \sum_r\sum_g\end{matrix}^{1/2}) FID=∣∣μrμg2+Tr(r+g2rg1/2)
特点:

  • 刷分不会导致生成图片质量变差
  • 生成模型的训练集可以和Inception Net-V3不同
  • FID是衡量多元正态分布直接按的距离,但提取的图片特征不一定是符合多元正态分布
  • 无法解决过拟合问题,如果生成模型只能生成和训练集一模一样的数据无法检测

代码:
计算FID的代码上传到这里了–>pytorch_fid

FVD ↓ \downarrow ↓

基本思想: 相当于把FID的图像特征提取网络换成视频特征提取网络,其他都差不多。
几种叫法:

  1. FID2vid(BoGAN)
    来源论文:video-to-video synthesis
    特征提取器:I3D, ResNeXt

fvd指标,深度学习,论文笔记,音视频,深度学习

  1. FID-vid(NvWA、TFGAN)
    特征提取器:3D Resnet-50 model

Cited from TFGAN:
(3) Video-level FID: Features of the penultimate layer are extracted from 3D Resnet-50 model trained on the entire Kinetics dataset [Kay et al., 2017], and the FID score is computed between the real and generated videos. Note that lower the FID scores, better are the models.
Kay et al., 2017. The kinetics human action video dataset.

  1. Fréchet Video Distance(FVD) (Cogvide, make-a-video…)
    特征提取器:3D Resnet-50 model
    来源论文:Latent Video Transformer

fvd指标,深度学习,论文笔记,音视频,深度学习

3D特征提取器分析:

  • 参考FID,已知生成模型的训练集可以和特征提取器不同。但是根据《video-to-video synthesis》论文里的结果,使用不同特征提取器的结果会不一样,目前github和谷歌上都搜不到FVD比较官方的实现,不能确定用哪个特征提取器;
  • BoGAN中没有明确指出用的哪个3D特征提取器,其他几篇指出用的kinetic-400中训练的3D ConvNet(C3D)。
  • 但是目前同样没有找到kinetics提供的这个预训练3D ConvNet,不过《video-to-video synthesis》中用到的I3D可以找到kinetics-400上预训练的checkpoint,故我的工作里目前使用I3D。

代码: 把特征提取器换掉参考FID的小修改就可以了。

CLIPSIM ↑ \uparrow ↑

来源论文:GODIVA
使用论文:GODIVA、NVWA、make-a-video
fvd指标,深度学习,论文笔记,音视频,深度学习
fvd指标,深度学习,论文笔记,音视频,深度学习

基本思想:
利用具有zero-shot能力的多模态模型CLIP输出文本和图像相似度,在视频任务中使用时采取每一帧相似度的平均值。

使用:
参考这个工具和CLIP代码自己改编一下就好,我代码写太烂就不放了
CLIP-as-sevice
CLIP代码参考1
CLIP代码参考2
大致思路是用这个工具获得valid set的帧编码&文本编码,然后可以获得对应文本图像对的相似度,对每一帧都算,然后取均值。
(用这个思路写的代码测试过make-a-video结果,跑出来的数差不多,但不知道对不对,也没找到官方代码,如果有不对欢迎交流)

Acc ↑ \uparrow ↑

来源论文:T2V&TFGAN,用于Kinetic数据集
使用论文:T2V、TFGAN、NVWA
fvd指标,深度学习,论文笔记,音视频,深度学习

基本思想:相当于IS指标的变种

GFLOPs

参考链接:轻量级神经网络
区分:

  • FLOPS (全部大写)是floating-point operations per second的缩写,意指每秒浮点运算次数。用来衡量硬件的性能。
    常用当然还有GFLOPs和TFLOPs
    GFLOPS 就是 Giga Floating-point Operations Per Second,即每秒10亿次的浮点运算数,常作为GPU性能参数但不一定代表GPU的实际表现,因为还要考虑具体如何拆分多边形和像素、以及纹理填充,理论上该数值越高越好。1GFlops = 1,000MFlops。
  • FLOPs 是floating point of operations的缩写,是浮点运算次数,可以用来衡量算法/模型复杂度

如何计算FLOPs
对于卷积层而言,FLOPs的计算公式如下:
F L O P s = 2 H W ( C i n K 2 + 1 ) C o u t FLOPs = 2HW( C_{in}K^2+ 1 )Cout FLOPs=2HW(CinK2+1)Cout
其中的Cin是指卷积层输入tensor的通道数,Cout指的是卷积层输出tensor的通道数。K指的是卷积核大小。
而后把常数项去掉,简化小操作:

F L O P s = H W ( C i n K 2 ) C o u t FLOPs = HW( C_{in}K^2 )Cout FLOPs=HW(CinK2)Cout

而在实际中,我们不可能自己计算FLOPs,所以,本着能找库就找库的聪明才能,查了一下,还真有相关计算FLOPs的库,现查到的有两个库,一个是torchstat以及thop。经过测试,基本上两个可以对齐的,所以说,任意选择一个就好。具体用法写两个小demo吧。

而在实际中,我们不可能自己计算FLOPs,所以,本着能找库就找库的聪明才能,查了一下,还真有相关计算FLOPs的库,现查到的有两个库,一个是torchstat以及thop。经过测试,基本上两个可以对齐的,所以说,任意选择一个就好。具体用法写两个小demo吧。

对于torchstat:

from torchstat import stat
import torchvision.models as models

model = model.densenet121()
stat(model, (3, 224, 224))

对于thop:

from torchvision.models import densenet121
from thop import profile
model = densenet121()
input = torch.randn(1, 3, 224, 224)
macs, params = profile(model, inputs=(input, ))

例2

pip install thop # 安装thop库
import torch
from thop import profile
net = model()  # 定义好的网络模型
img1 = torch.randn(1, 3, 512, 512)
img2 = torch.randn(1, 3, 512, 512)
img3 = torch.randn(1, 3, 512, 512)
macs, params = profile(net, (img1,img2,img3))
print('flops: ', 2*macs, 'params: ', params)

为什么不能只用FLOPs作为指标呢?
作者认为有如下几个原因:
1)FLOPs没有考虑几个对速度有相当大影响的重要因素。
2)计算平台的不同。
3) FLOPs没有考虑几个对速度有相当大影响的重要因素:MAC和并行度

Params

参考链接
fvd指标,深度学习,论文笔记,音视频,深度学习
fvd指标,深度学习,论文笔记,音视频,深度学习
获取该值:
例1

    net = model()  # 定义好的网络模型
    total = sum([param.nelement() for param in net.parameters()])
    print("Number of parameter: %.2fM" % total)

这是网上很常见的直接用自带方法计算params,基本不会出错。胜在简洁。

例2

#model = 你自己的模型,eg:CNN()  ResNet()  SegNet()....
    params = list(model.parameters())
    k = 0
    for i in params:
        l = 1
        print("该层的结构:" + str(list(i.size())))
        for j in i.size():
            l *= j
        print("该层参数和:" + str(l))
        k = k + l
    print("总参数数量和:" + str(k))

Runtime

对比inference speeds
这个值怎么获取没弄懂
相关论文里也没有讲解,待更新…文章来源地址https://www.toymoban.com/news/detail-811749.html

到了这里,关于文本生成视频相关指标整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stable-Diffusion深度学习文本到图像生成模型

    https://zh.wikipedia.org/zh-cn/Stable_Diffusion https://en.wikipedia.org/wiki/Stable_Diffusion https://github.com/Stability-AI/stablediffusion Stability AI https://github.com/CompVis/stable-diffusion Stable Diffusion是2022年发布的深度学习文本到图像生成模型。 它主要用于根据文本的描述产生详细图像,尽管它也可以应用于

    2024年02月11日
    浏览(46)
  • 深度学习-循环神经网络-RNN实现股价预测-LSTM自动生成文本

    基于文本内容及其前后信息进行预测 基于目标不同时刻状态进行预测 基于数据历史信息进行预测 序列模型:输入或者输出中包含有序列数据的模型 突出数据的前后序列关系 两大特点: 输入(输出)元素之间是具有顺序关系。不同的顺序,得到的结果应该是不同的,比如“

    2024年01月24日
    浏览(47)
  • 深度学习实战9-文本生成图像-本地电脑实现text2img

    大家好,我是微学AI,今天给大家带来一个文本生成图像的案例。让大家都成为艺术家,自己电脑也能生成图片 ,该模型它能让数十亿人在几秒钟内创建出精美的艺术品。在速度和质量方面,都有所突破,这意味着图像生成技术走向大众。 Stable Diffusion模型 包括两个步骤:

    2024年02月09日
    浏览(46)
  • 深度学习RNN,GRU,LSTM文本生成解码器的训练损失讲解(附代码)

    以下以GRU为例讲解RNN作为解码器时如何根据用户、商品特征信息 hidden 生成评价。 解码器部分代码如下: 在训练时,解码器会有两个输入:一是编码器提取的用户、商品特征,二是用户对商品的评价。 评价是文字,在训练开始前已经转换成了Token ID, 比如 I love this item , 每个

    2024年04月12日
    浏览(40)
  • 论文精讲 | 基于昇思MindSpore打造首个深度学习开源视频压缩算法库OpenDMC,支持跨平台和多种评价指标

    论文标题 OpenDMC: An Open-Source Library and Performance Evaluation for Deep-learning-based Multi-frame Compression 论文来源 ACM MultiMedia 论文链接 https://www.acmmm2023.org/open-source-program/ 代码链接 https://openi.pcl.ac.cn/OpenDMC/OpenDMC 昇思MindSpore作为开源的AI框架,为产学研和开发人员带来端边云全场景协同、

    2024年02月02日
    浏览(60)
  • 深度学习实战29-AIGC项目:利用GPT-2(CPU环境)进行文本续写与生成歌词任务

    大家好,我是微学AI,今天给大家介绍一下深度学习实战29-AIGC项目:利用GPT-2(CPU环境)进行文本续写与生成歌词任务。在大家没有GPU算力的情况,大模型可能玩不动,推理速度慢,那么我们怎么才能跑去生成式的模型呢,我们可以试一下GPT-2完成一些简单的任务,让大家在CPU环

    2024年02月08日
    浏览(44)
  • 深度学习实战22(进阶版)-AI漫画视频生成模型,做自己的漫画视频

    大家好,我是微学AI,今天给大家带来深度学习实战22(进阶版)-AI漫画视频生成模型。 回顾之前给大家介绍了《深度学习实战8-生活照片转化漫画照片应用》,今天我借助这篇文章的原理做一个AI漫画视频生成的功能,让我们进入AI生成视频的时代吧。 AI生成视频是利用人工智能

    2023年04月19日
    浏览(51)
  • 文本-图像生成(Text-to-Image Generation)的评价指标介绍——CLIPScore、TISE

    论文标题:CLIPScore: A Reference-free Evaluation Metric for Image Captioning 这一篇是针对Image Caption领域的评价指标,但是有些基于条件的Diffusion模型也使用了这个评价指标来衡量文本和生成图像的匹配程度。 本文提出的CLIPScore(下文简称CLIPS)是不需要推理的评估指标,之前常见的基于

    2023年04月08日
    浏览(42)
  • AI短视频制作一本通:文本生成视频、图片生成视频、视频生成视频

    💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 第一部分:文本生成视频 1. 文本生成视频概述 随着人工智能(AI)技术的飞速发展

    2024年02月05日
    浏览(48)
  • 【学习笔记】遥感影像分类相关精度指标

    混淆矩阵是分类精度的评定指标。是一个用于表示分为某一类别的像元个数与地面检验为该类别数的比较阵列。 对检核分类精度的样区内所有的像元,统计其分类图中的类别与实际类别之间的混淆程度。 混淆矩阵中,对角线上元素为被正确分类的样本数目,非对角线上的元

    2024年01月22日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包