论文阅读笔记(五)CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval
Abstract
本文以CLIP模型为基础,通过迁移CLIP模型学到的知识,提出了CLIP4Clip(CLIP For video Clip retrieval)模型用于视频文本检索任务。主要研究以下问题:
- 图像特征是否足以用于视频检索中
- 对预训练好的CLIP进行训练会怎样影响检索结果
- 建模视频帧之间时间关系的实质是什么
- 视频检索任务中超参数的敏感性问题
Introduction
根据输入的不同,可以将视频检索任务分为两类(以原始视频作为输入或者以视频特征作为输入)。前者需要训练一个特征提取器,后者使用训练好的特征提取模型。
本文基于CLIP模型提出了一个CLIP4Clip模型用于视频检索。设计了一个相似度计算模块来验证三种相似度计算方式的效果(无参类型,序列类型,密集类型)。
文章贡献如下:
1.基于CLIP调查了三种相似度计算方法
2.在另一个大数据集上对CLIP做了训练来学习一个更好的检索空间
实验得出的结论如下:
(1) 一张图像对于视频检索是远远不够的
(2) 对CLIP在另一个数据集上进行训练对性能的改善是很重要的
(3)对于小数据集,无参类型(平均池化)的相似度计算方式更好,对于大数据集,使用更多的参数(自注意力等)来计算相似度更好。
(4)研究了超参数的设置
Framework
文章框架如下图,包含文本编码器、视频编码器和相似度计算模块。
视频编码器
这里使用预训练的CLIP(ViT-B/32)作为视频编码器,对于视频帧序列vi={vi1,vi2,…,vi∣vi∣}v_i=\{v_i^1,v_i^2,\dots,v_i^{\vert v_i\vert}\}vi={vi1,vi2,…,vi∣vi∣},每帧产生一个特征表示Zi={zi1,zi2,…,zi∣vi∣}Z_i=\{z_i^1,z_i^2,\dots,z_i^{\vert v_i\vert}\}Zi={zi1,zi2,…,zi∣vi∣}。
这里还提出了另外一种Patch提取方式,如下图所示,使用3D卷积对视频提取出一个个patch,这样做的好处是利用到了时间信息。
文本编码器
使用CLIP的文本编码器(transformer结构,12层,8个头,512维),对一个文本tj∈Tt_j\in \Tautj∈T,最终生成特征表示wjw_jwj。
相似度计算
在得到Zi={zi1,zi2,…,zi∣vi∣}Z_i=\{z_i^1,z_i^2,\dots,z_i^{\vert v_i\vert}\}Zi={zi1,zi2,…,zi∣vi∣},和wjw_jwj后,最关键的就是计算相似度了,这里将相似度计算机制分为三类,无参方法(如平均池化,融合视频特征不需要参数),序列类型和密集类型。
无参类型:使用平均池化聚合出一个视频特征zi^=mean−pooling(zi1,zi2,…,zi∣vi∣)\hat{z_i}=\rm{mean-pooling}(z_i^1,z_i^2,\dots,z_i^{\vert v_i\vert})zi^=mean−pooling(zi1,zi2,…,zi∣vi∣)。然后计算相似度如下:
s(vi,tj)=wjTzi^∥wj∥∥zi^∥s(v_i,t_j)=\frac{w_j^T \hat{z_i}}{\Vert w_j\Vert \Vert \hat{z_i}\Vert}s(vi,tj)=∥wj∥∥zi^∥wjTzi^
序列类型:无参方法忽略了各帧之间的时间关系,这里使用LSTM或者transformer来将得到的各帧聚合起来Zi~=LSTM(Zi)\tilde{Z_i}=\rm{LSTM}(Z_i)Zi~=LSTM(Zi)或者Zi~=Transformer−Enc(Zi+P)\tilde{Z_i}=\rm{Transformer-Enc}(Z_i+P)Zi~=Transformer−Enc(Zi+P)(P是位置编码)。之后使用聚合的信息计算相似度即可。
密集类型:这里将Zi={zi1,zi2,…,zi∣vi∣}Z_i=\{z_i^1,z_i^2,\dots,z_i^{\vert v_i\vert}\}Zi={zi1,zi2,…,zi∣vi∣}和wjw_jwj作为输入,使用一个Transformer来得到融合特征Ui~\tilde{U_i}Ui~。
Ui={zi1,zi2,…,zi∣vi∣,wj}U_i=\{z_i^1,z_i^2,\dots,z_i^{\vert v_i\vert},w_j\}Ui={zi1,zi2,…,zi∣vi∣,wj}
Ui~=Transformer−Enc(Ui+P+T)\tilde{U_i}=\rm{Transformer-Enc}(U_i+P+T)Ui~=Transformer−Enc(Ui+P+T)
P是位置偏移,T是嵌入类型(文本或者视频)。使用Ui~[0:]\rm\tilde{U_i}[0:]Ui~[0:]作为输出,并放入两个FC得到相似度。
s(vi,tj)=FC(RELU(FC(Ui~[0:])))\rm{s(v_i,t_j)=FC(RELU(FC(\tilde{U_i}[0:])))}s(vi,tj)=FC(RELU(FC(Ui~[0:])))
训练策略
损失函数:和CLIP相似,这里也是用交叉熵损失。
Lt2v=−1B∑i=1Bloges(ti,vi)⋅λ∑j=1Bes(ti,vj)⋅λL_{t2v}=-\frac{1}{B}\sum_{i=1}^{B}\log \frac{e^{s(t_i,v_i)\cdot \lambda}}{\sum_{j=1}^{B}e^{s(t_i,v_j)\cdot \lambda}}Lt2v=−B1i=1∑Blog∑j=1Bes(ti,vj)⋅λes(ti,vi)⋅λ Lt2v=−1B∑i=1Bloges(ti,vi)⋅λ∑j=1Bes(tj,vi)⋅λL_{t2v}=-\frac{1}{B}\sum_{i=1}^{B}\log \frac{e^{s(t_i,v_i)\cdot \lambda}}{\sum_{j=1}^{B}e^{s(t_j,v_i)\cdot \lambda}}Lt2v=−B1i=1∑Blog∑j=1Bes(tj,vi)⋅λes(ti,vi)⋅λ L=Lt2v+Lt2vL=L_{t2v}+L_{t2v}L=Lt2v+Lt2v
帧采样:使用统一采样而不是随机采样,每秒采样1帧。
预训练:为了进一步将CLIP的知识迁移到视频上,又在HowTo100M上进行了预训练。
Experiments
在五个数据集上进行了测试,MSR-VTT,MSVD,LSMDC,ActivityNet,,DiDeMo,发现小数据集上无参数计算方式最好。作者认为这是由于小数据集无法将参数训练好,反而破坏了预训练模型。
MSR-VTT
MSVD
LSMDC
ActivityNet
DiDeMo
2D和3D patch的对比:实验发现2D patch取得了更好的结果,作者认为这是由于CLIP是在图像-文本对上进行的预训练,当使用3DPatch时,难以初始化一个表现优秀的3D Linear,文中使用2D linear来初始化3D Linear,这很难学到时间信息。
论文阅读笔记(五)CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval相关推荐
- 论文阅读笔记(五)——狐猴识别系统:一种便于狐猴个体识别的面部识别系统
论文阅读笔记(五)--狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文简介 论文中文翻译:狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文名称:<LemurFaceID: a fac ...
- 论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)
论文原址:https://arxiv.org/pdf/1904.02701.pdf github:https://github.com/OceanPang/Libra_R-CNN 摘要 相比模型的结构 ...
- 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)
论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测 ...
- 论文阅读笔记五十:CornerNet: Detecting Objects as Paired Keypoints(ECCV2018)
论文原址:https://arxiv.org/pdf/1808.01244.pdf github:https://github.com/princeton-vl/CornerNet 摘要 本文提出了目 ...
- CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval 论文解读
CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval 论文链接https://arxiv.org/abs/ ...
- 论文阅读笔记:看完也许能进一步了解Batch Normalization
提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 BN之前的一些减少Covariate Shift的方法 BN算法描述 Batch No ...
- DCP(Deep Closest Point)论文阅读笔记以及详析
DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...
- 2019 sample-free(样本不平衡)目标检测论文阅读笔记
点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...
- 论文阅读笔记——VulDeePecker: A Deep Learning-Based System for Vulnerability Detection
本论文相关内容 论文下载地址--Engineering Village 论文中文翻译--VulDeePecker: A Deep Learning-Based System for Vulnerabi ...
- DSSD : Deconvolutional Single Shot Detector论文阅读笔记
文章目录 DSSD : Deconvolutional Single Shot Detector论文阅读笔记2017 Abstract 1. Introduction 2. Related Work ...
最新文章
- Centos系统上安装php遇到的错误解决方法集锦
- Android Q:新系统名称和新特性整理
- String转BigDecimal,BigDecimal常用操作,以及避免踩坑
- 刚毕业的参加工作的黄金时期的核心策略:打好基础
- 使用反射获得jar包中的类、方法、参数、返回值类型,然后动态加载jar包运行方法
- zkcli远程连接_ZooKeeper客户端 zkCli.sh 节点的增删改查
- JavaScript循环结构(1)
- 手机CPU处理器大解析
- 2021天梯决赛题目及题解(持续更新)
- linux系统构建学习笔记
- C++程序设计语言学习笔记:异常处理
- 使用ECharts加载大数据量数据
- kNN实现手写数字识别
- 图像修复模型——TV模型
- Podometer计步器
- 聚观早报 | 茅台市值超过腾讯位列第一;三星正研发智能戒指
- 基于OpenCV的视频处理 - 人脸检测
- 开源企业软件采购指南
- 软件测试读不出硬盘,电脑经常检测不到硬盘怎么办
- java定时14点30分_单机定时任务的四种基本实现方式