视频文本检索之CLIP4Clip

论文:CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval

GitHub:https://github.com/ArrowLuo/CLIP4Clip

学习是一种行动反射,

不是为了晓得些知识

要切己体察,代入自己,要事上琢磨

落实行动,这就是知行合一。

否则,读书也是一种玩物丧志。  

----华杉

论文基于图片-文本检索模型CLIP (Contrastive Language-Image Pretraining)提出了视频-文本检索模型CLIP4Clip (CLIP For video Clip retrieval)。在MSR-VTT, MSVC, LSMDC, ActivityNet, DiDeMo等多个数据集上都取得了SOTA的结果。

训练视频-文本检索任务通常有2种方法,一种直接基于视频像素特征进行训练(raw video pixel-level),另一种基于视频特征进行训练 (video feature feature-level)。

基于pixel-level的方法优点可以直接学习视频特征和文本特征,是一种端到端的训练方法,有助于提取底层特征,缺点训练视频特征是耗时费力的。比如ClipBERT提出了一种视频帧的稀疏采样策略,Frozen方法直接将一张图片当作一个视频进行训练,并提出了一种课程学习策略(curriculum learning schedule),来提高训练效率。

基于feature-level的方法优点训练较快,缺点高度依赖特征提取模型的预训练权重,会有domain问题产生。

(1)图片特征对于视频-文本检索是否足够?

单个的图片特征对于视频文本检索中的视频编码是远远不够的。

(2)基于大规模视频-文本数据集对clip模型进行后预训练会影响模型表现吗?

在大规模视频-文本数据集上对CLIP4Clip模型进行后训练是必须的,并且看可以提高模型性能,尤其是在0样本迁移学习中,精度上会有比较大的突破。

(3)有什么方法可以让模型学习视频帧之间的时序依赖?

论文提出了3种方法分别为,无参型(Parameter-free type),顺序型(Sequential type),紧凑型(Tight type),来学习视频帧之间的时许依赖。

(4)在视频-文本检索任务上,模型的超参数设置是否敏感?

论文认真进行了不同超参数设置的实验,汇报了最好的超参数设置。

网络结构:

给定一组视频(或视频片段)V和一组本文T,模型的目标是学习函数s(vitj)来计算视频(或视频片段)viV与本文tjT之间的相似度。视频采样策略采用1秒采1帧。根据文本到视频检索中的相似性得分对给定查询本文的所有视频(或视频片段)进行排序,或者在视频到文本检索任务中对给定查询视频(或视频片段)的所有文本进行排序。s(vitj)的目标是计算相关视频文本对的高相似度分数和不相关视频文本对的低相似度分数。

本文的模型是一种端到端方式(E2E),通过将帧作为输入直接对像素进行训练。上图展示了本文的框架,它主要包含一个文本编码器 、一个视频编码器 和一个相似性计算模块 

视频编码器:

视频编码模型类似clip采用ViT-B/32,网络深度为12层,包含32patch

虽然CLIP对于学习图像的视觉概念是有效的,但从视频中学习时间特征是必不可少的。为了进一步将CLIP的知识迁移为视频,作者用CLIP4Clip模型在Howto100M数据集上进行了后预训练。

通过将视频帧进行分patch,并结合位置attention输入ViT模型中,进行线性投影,得到代表视频的embedding向量。

 

这里将输入视频序列定义为V,视频生成的embedding定义为Z,文本的embedding定义为W。

这里线性投影的方法有2种,分别为2D线性投影和3D线性投影。

2D线性投影忽略了视频帧之间的时序关系,因此采用3D线性投影。两者主要的区别在于卷积核的选择上。2D线性投影卷积核的维度为[h× w],2D线性投影卷积核的维度为[t × h × w]。其中t表示时序,h表示高度,w表示宽度。

虽然理论上来说3D线性投影会优于2D线性投影。但是作者通过实验发现,反而2D线性投影效果更好。

通过分析发现预训练模型clip是基于2D线性投影训练的,却作为3D线性投影的初始化参数,这导致模型没有学习视频帧间的时序特征。这也是后续作者计划在大规模视频-文本数据集上训练clip模型的原因。

文本编码器:

文本编码器模型直接采用CLIP模型的Transformer网络。模型为12层,宽度为512,包含8个注意力头。将Transformer最后一层在[EOS]的输出作为文本的输出特征。

特征相似性度量:

论文提出了3种度量方法,分别为无参型(Parameter-free type),顺序型(Sequential type),紧凑型(Tight type)

将视频的特征定义为Z,文本的特征定义为W。

无参型(Parameter-free type):

 

先对视频的特征进行平均池化,然后将池化后的视频特征和文本特征计算cos距离。

顺序型(Sequential type):

直接对视频特征进行平均池化,这样的操作忽略了视频帧之间的序列关系。因此先对视频特征基于LSTM/Transformer编码,然后对编码后的特征进行平均池化操作,最后按照同样的方法计算cos距离。

紧凑型(Tight type):

将文本特征W和视频特征Z拼接起来,得到拼接后的特征U,并将U和位置编码P,类型编码T进行拼接,输入Transformer进行编码,然后使用2个全连接层做特征投影,得到最终的输出。

损失函数:

假设一个batch里面包含B 个(video, text)对。那么将会产生B*B种组合关系。这里损失函数采用对称交叉熵损失函数。损失函数就是优化使得video和text相对应的pair对loss变小,video和text不对应的pair对loss变大。

Lv2t会将batch内的每个视频计算与所有文本的交叉熵。

Lt2v会将batch内的每个文本计算与所有视频的交叉熵。

最终的损失函数L就是Lv2和Lt2v的和。

实验结果:

CLIP4Clip方法显著优于其他方法。

结论:

1)图像特征也能促进视频文本检索;

2)在CLIP上进行post-pretrain,可以进一步提高视频文本检索的性能;

3)3D patch线性投影和序列型相似度是检索任务中很有前途的方法;

4)用于视频文本检索的CLIP具有学习率敏感性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/18291.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mid360激光雷达跑Point-LIO算法

在商场里面上下楼穿梭,使用mid360激光雷达,完成建图 以下是建图的运行过程及参数配置 mid360激光雷达驱动 安装(ubuntu20.4 ) /ws_livox/src/livox_ros_driver2$source /opt/ros/noetic/setup.sh /ws_livox/src/livox_ros_driver2$./build.sh ROS1配置修改MID360_confi…

可拓展哈希

可拓展哈希 借CMU 15445的ppt截图来说明问题。 我们传统静态hash的过程是hash函数后直接将值存入对应的bucket,但是在可扩展hash中,得查询Directory(左),存入directory指向的bucket(右)。 下面…

ASEMI代理ADI亚德诺LTC6992IS6-1#TRMPBF车规级芯片

编辑-Z LTC6992IS6-1#TRMPBF参数描述: 型号:LTC6992IS6-1#TRMPBF 输出频率:3.81Hz 工作电源电压范围:2.25 - 5.5V 通电复位电压:1.95V 电源电流:105-365A SET引脚处的电压:1V 频率设置电…

物联网|IAR集成开发环境简介|cc254核心板硬件资源|物联网之蓝牙4.0 BLE基础-学习笔记(3)

文章目录 4、IAR集成开发环境简介5、 cc254核心板硬件资源 4、IAR集成开发环境简介 完整稳定的专业嵌入式开发环境,对不同的处理器有统一的用户界面,支持35种以上的MCU,包括8,16,32位, 完全兼容C语言的 高…

FPN和PAN的内容及区别

FPN和PAN都是用于解决在目标检测中特征金字塔网络(FPN)在多尺度检测任务上的不足的方法。下面分别详细介绍一下它们的原理和区别。 FPN FPN全称Feature Pyramid Network,是由FAIR在2017年提出的一种处理多尺度问题的方法。FPN的主要思路是通过构建金字塔式的特征图…

【CSS系列】第四章 · CSS字体属性

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

人机智能中几个困难问题浅析

1、人机之间与人人之间信任的区别人机之间的信任与人人之间的信任存在以下异同:①信任对象。人机之间的信任的对象是计算机系统、算法、机器人等,而人人之间的信任的对象是其他人。②信任方式。人机之间的信任是基于技术、安全协议等建立的,例…

【Linux网络】传输层中UDP和TCP协议

文章目录 1、再谈端口号2、UDP协议3、TCP协议3.1 TCP协议段格式3.2 TCP的三次握手和四次挥手(连接管理机制)3.3 TCP的滑动窗口3.4 TCP的流量控制3.5 拥塞控制3.6 延迟应答和捎带应答3.7 面向字节流和粘包问题3.8 TCP总结 1、再谈端口号 端口号port标识一…

2023年前端面试题汇总-代码输出篇

1. 异步 & 事件循环 1. 代码输出结果 const promise new Promise((resolve, reject) > {console.log(1);console.log(2); }); promise.then(() > {console.log(3); }); console.log(4); 输出结果如下: 1 2 4 promise.then 是微任务,它…

1、防刷限流实现1

1、本章诉求 限流的需求出现在许多常见的场景中: 秒杀活动,有人使用软件恶意刷单抢货,需要限流防止机器参与活动某api被各式各样系统广泛调用,严重消耗网络、内存等资源,需要合理限流 2、流程设计 3、方案实现 3.1…

使用 spring 的 IoC 的实现账户的CRUD(2)双层实现

spring实现service和dao的数据的查找 dao层设置接口实现dao层的接口service设置接口通过注入dao层,来实现接口 //dao层的接口,定义了根据id查询的方法 public interface Accountdao {Account findByid(int id); }实现接口:实现了查询的方法 …

项目创建第一天 搭建前端环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、环境是什么?二、使用步骤1.前台搭建方式1.创建项目2.目录结构3. 安装elementui4. 创建路由5.使用axios6.bug记录6.1出现跨域问题6.2 解决方式6.…

2023年会展服务研究报告

第一章 行业概况 会展行业是指一系列与会议、展览、展示相关的服务和经济活动的总称,是加强企业间交流、促进合作和推动经济发展的重要手段。该行业涉及广泛,包括会议和展览的组织、场地租赁和设计、活动策划和执行、展品运输和咨询服务等各个环节。随着…

tiechui_lesson03_缓冲读写与自定义控制

学习了与应用层通过缓冲区方式的交互&#xff0c;包括读写&#xff0c;自定义控制等。小坑比较多&#xff0c;大部分是是头文件和设置上的错误&#xff0c;跟着视频敲想快进就跳过了一些细节。包括&#xff1a; <windef.h> 头文件的引用 //使用DWORD等类型switch语句…

基于标签的协同过滤算法实现与个人兴趣相关的文章推荐

一、前言 在当前信息爆炸的时代&#xff0c;每天都会涌现出大量的文章&#xff0c;人们有时候会感到信息的获取难度比筛选更大。而作为信息的提供者&#xff0c;我们应当为用户提供依据个人兴趣的文章推荐。 本项目中的文章标签相似度推荐功能使用了一种基于标签的协同过滤算…

Java版本的工程项目管理系统源代码之工程项目管理系统面临的挑战

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 ​系统定义 工程项目管理企业不直接与该工程项目的总承包…

易视腾iS-E5-NGH_3798MV100_MT7601_卡刷固件包_当贝纯净桌面

易视腾iS-E5-NGH_3798MV100_MT7601_卡刷固件包_当贝纯净桌面 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&#xff0…

产品经理 - 原型图设计软件

原型图设计软件哪个好用&#xff1f;6款好用软件推荐&#xff01; - 知乎 原型图都可以用什么软件做&#xff1f;11款好用软件分享&#xff01; 摩客, 墨刀 2014 墨刀是A股上市公司万兴科技旗下的在线一体化产品设计协作平台 即时设计是一款支持在线协作的专业级 UI 设计工…

回首来路多感概,最是奋斗动人心。

我们必需要在不同的时代有不同的领悟&#xff0c;才能充满生机地去迎接生命中每个新的开始。 文章目录 前言 初心 成长 收获 憧憬 出发 前言 今天是我成为csdn创作者一周年纪念日&#xff0c;我非常开心能够和大家分享我的写作之旅。在这一年里&#xff0c;我经历了许多挑…

QT QGraphicsView 提升到 QChartView报错 解决方案

QT QGraphicsView 提升到 QChartView报错 解决方案 本文主要描述, 使用QT提供的QChartView来绘制图表,提升QGraphicsView控件继承QChartView后,然后将QGraphicsView提升到我们自己写的类,怎么才能确保提升后编译不报错. [问题描述] 使用QGraphicsView显示图表的时候,我们需要将…