Abstract

本文以CLIP模型为基础,通过迁移CLIP模型学到的知识,提出了CLIP4Clip(CLIP For video Clip retrieval)模型用于视频文本检索任务。主要研究以下问题:

  1. 图像特征是否足以用于视频检索中
  2. 对预训练好的CLIP进行训练会怎样影响检索结果
  3. 建模视频帧之间时间关系的实质是什么
  4. 视频检索任务中超参数的敏感性问题

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​^​∥wjT​zi​^​​

序列类型:无参方法忽略了各帧之间的时间关系,这里使用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=1Blog⁡es(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​=−B1​i=1∑B​log∑j=1B​es(ti​,vj​)⋅λes(ti​,vi​)⋅λ​ Lt2v=−1B∑i=1Blog⁡es(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​=−B1​i=1∑B​log∑j=1B​es(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相关推荐

  1. 论文阅读笔记(五)——狐猴识别系统:一种便于狐猴个体识别的面部识别系统

    论文阅读笔记(五)--狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文简介 论文中文翻译:狐猴识别系统:一种便于狐猴个体识别的面部识别系统 论文名称:<LemurFaceID: a fac ...

  2. 论文阅读笔记五十三: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 摘要 相比模型的结构 ...

  3. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)

    论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测 ...

  4. 论文阅读笔记五十:CornerNet: Detecting Objects as Paired Keypoints(ECCV2018)

    论文原址:https://arxiv.org/pdf/1808.01244.pdf github:https://github.com/princeton-vl/CornerNet 摘要 本文提出了目 ...

  5. 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/ ...

  6. 论文阅读笔记:看完也许能进一步了解Batch Normalization

    提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 BN之前的一些减少Covariate Shift的方法 BN算法描述 Batch No ...

  7. DCP(Deep Closest Point)论文阅读笔记以及详析

    DCP论文阅读笔记 前言 本文中图片仓库位于github,所以如果阅读的时候发现图片加载困难.建议挂个梯子. 作者博客:https://codefmeister.github.io/ 转载前请联系作者 ...

  8. 2019 sample-free(样本不平衡)目标检测论文阅读笔记

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自知乎,已获作者同意转载,请勿二次转载 (原文地址:https://zhuanlan.zhihu.com/p/100052168) 背景 < ...

  9. 论文阅读笔记——VulDeePecker: A Deep Learning-Based System for Vulnerability Detection

    本论文相关内容 论文下载地址--Engineering Village 论文中文翻译--VulDeePecker: A Deep Learning-Based System for Vulnerabi ...

  10. DSSD : Deconvolutional Single Shot Detector论文阅读笔记

    文章目录 DSSD : Deconvolutional Single Shot Detector论文阅读笔记2017 Abstract 1. Introduction 2. Related Work ...

最新文章

  1. Centos系统上安装php遇到的错误解决方法集锦
  2. Android Q:新系统名称和新特性整理
  3. String转BigDecimal,BigDecimal常用操作,以及避免踩坑
  4. 刚毕业的参加工作的黄金时期的核心策略:打好基础
  5. 使用反射获得jar包中的类、方法、参数、返回值类型,然后动态加载jar包运行方法
  6. zkcli远程连接_ZooKeeper客户端 zkCli.sh 节点的增删改查
  7. JavaScript循环结构(1)
  8. 手机CPU处理器大解析
  9. 2021天梯决赛题目及题解(持续更新)
  10. linux系统构建学习笔记
  11. C++程序设计语言学习笔记:异常处理
  12. 使用ECharts加载大数据量数据
  13. kNN实现手写数字识别
  14. 图像修复模型——TV模型
  15. Podometer计步器
  16. 聚观早报 | 茅台市值超过腾讯位列第一;三星正研发智能戒指
  17. 基于OpenCV的视频处理 - 人脸检测
  18. 开源企业软件采购指南
  19. 软件测试读不出硬盘,电脑经常检测不到硬盘怎么办
  20. java定时14点30分_单机定时任务的四种基本实现方式

热门文章

  1. Python+Vue计算机毕业设计基于微服务的闪聚支付系统设计vwt4i(源码+程序+LW+部署)
  2. 多项式计算秦九韶算法
  3. 解决 操作必须使用一个可更新的查询的错误
  4. 哈佛管理论丛-谁背上了猴子(转)
  5. 【四二学堂】Go语言入门-Go语言实现的一撮金游戏
  6. 【LeetCode】1652. 拆炸弹(C++)
  7. Mac 软件推荐 用过的都说好
  8. 中国汽水制造商市场趋势报告、技术动态创新及市场预测
  9. 数字音频技术:混音器
  10. 20190123——一气化三清 Java中介者模式