clip4clip:an empirical study of clip for end to end video clip retrieval

广告深度学习计算:阿里妈妈智能创意服务优化使用CPU/GPU分离的多进程架构,加速阿里妈妈智能创意服务。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/_pjhXrUZVzFRtiwG2LhnkwCLIP4Clip: CLIP 再下一城,利用CLIP实现视频检索 - 知乎前言: OpenAI 的论文CLIP 可以说得上是一篇神作,利用对比学习进行图文预训练,在4亿数据集上进行预训练,预训练模型在多个任务上达到了sota,之前记录过关于CLIP的文章,这里放一下~ https://zhuanlan.zhihu.co…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/4431656201.introduction

clip4clip是在clip基础上构建的,并设计了一个相似度计算器来研究三种相似度计算方法。1.研究了基于预训练的clip的三种相似度计算机制;2.进一步在一个嘈杂的大规模视频-语言数据集上对clip进行预训练,以学习更好的检索空间。并且有一些结论:1.仅凭单个图像无法对视频进行编码而进行高效检索;2.clip4clip在大规模数据集上先进行预训练是必要的;3.借助预训练clip,对于小样本数据集最好不要引入新的参数,并采用平均池化处理视频,对于大数据集,最好引入更多参数。

2.related works

video encoder backbone. 2D或3D时空卷积或者基于transformer的网络。

visual representation learning from text supervision. clip、MIL-NCE、ClipBERT。

video-text retrieval. 

3.framework

给定一个视频集合V和一个字幕集合T,目标是学习一个函数s(v,t)来计算视频v∈V和t∈T之间的相似度,根据在文本到视频检索中的相似度分数对所有的视频进行排名,或者根据视频到文本检索中的查询视频对所有的字幕进行排名。本文中视频v∈V被表示为一系列帧,视频v有v个采样帧组成,直接将帧作为输入,包括一个文本编码器,一个视频编码器和一个相似度计算器。

3.1 video Encoder

从视频中提取帧,采用了CLIP的12层和32patch size的ViT-B/32的图像编码器作为视频编码器,使用Flattened Patches线性投影模块中研究了两种线性投影,分别为2D投影和3D投影,1.ViT flattened patches的线性投影叫2D投影,独立的嵌入每个2D帧块,忽略了帧与帧之间的时序关系,2.3D线性投影,将块嵌入到时间维度上,具体而言,3D线性使用了一个3D卷积核[txhxw]作为线性投影,而不是2D投影中的[hxw]卷积核,其中t,h,w分别是时间,高度和宽度。

3.2 Text encoder

直接应用CLIP中的文本编码器,12层,512维,有8个attention head。

3.3 Similarity calculator

得到视频表示和文本表示之后,关键是相似度计算。由于模型基于预训练的图文模型构建,因此在相似度计算时添加新的可学习权重,分为三类,parameter-free和sequential type都是采用两个分支来计算视频和文本表示的余弦相似度,tile采用transformer进行多模态交互,并且通过线性投影进一步计算相似度。parameter-free使用mean pooling聚合所有帧,得到一个平均帧;sequential type其中1.lstm,2.带位置嵌入的transformer后再计算mean-pooling;transformer编码将串联的标题表示和帧表示作为融合特征,再使用线性层进行相似性预测。

3.4 Training strategy

帧采样,每秒一帧。clip4clip在Howto100M数据上训练。

4.experiments

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios 对话框UIAlertController放 tableview

//强弱引用 #define kWeakSelf(type)__weak typeof(type)weak##type type; -(void) showUIAlertTable {kWeakSelf(self)UIAlertController *alert [UIAlertController alertControllerWithTitle:NSLocalizedString("select_stu", nil) message:nil prefer…

Docker 和 Kubernetes:技术相同和不同之处

Docker和Kubernetes是当今最流行的容器化技术解决方案。本文将探讨Docker和Kubernetes的技术相似之处和不同之处,以帮助读者更好地理解这两种技术。 Docker和Kubernetes:当今最流行的容器化技术解决方案 在当今的IT领域,Docker和Kubernetes无…

python實現圖片下載

import pandas as pd import requests data pd.read_excel("demo4\撈取數據的execl.xlsx") url data.iloc[:,9] import os for index, row in data.iterrows():# 获取URL列数据image_url row[PATH]print(image_url)response requests.get(image_url)#文件名拼接s…

ef core code first pgsql

在使用efcode来操作pgsql的时候,总有些基础配置流程项目建立完之后后面就很少用,总是忘掉,写个文档记忆一下吧。基于net 6.0。 1.创建一个mvc项目和一个EF类库 2.在类库里面安装依赖dll Microsoft.EntityFrameworkCore.Design 需要添加的…

C/C++调用python

python环境 通过如下的命令,可以获取到当前python环境下对应的路径。比如程序编译需要指定对应的头文件、库文件路径,链接阶段需要指定需要链接哪些库。 # 说明python3-config支持哪些选项 $ python3-config Usage: /home/yangye/miniconda3/bin/pyth…

ESP32 Arduino实战基础篇-使用中断和定时器

本教程介绍如何使用 PIR 运动传感器通过 ESP32 检测运动。在此示例中,当检测到运动(触发中断)时,ESP32 会启动计时器并打开 LED 并持续预定义的秒数。当计时器倒计时结束时,LED 自动关闭。 通过这个例子,我们还将探讨两个重要的概念:中断和定时器。 中断介绍 要使用 P…

【MySQL】表的增删改查(基础)

一、新增(Create) 先创建一张表: create table student (id int,sn int comment 学号,name varchar(20),email varchar(20));1.1 单行数据 全列插入 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致 insert i…

BeanUtils中的copyProperties方法使用

一、Beanutils中的copyProperties是我们在日常开发中常用的一个方法。 作用: 将a实体类中的属性赋值到b实体类中相对于的字段上 1.我们前端传参的时候我们后端通常会用vo实体类来接收,但是更新数据库的时候需要用do去操作 2.我们将vo的属性copy到do中可…

How to design a database storage model for water network information system

How to design a database storage model for water network information system 1、领域划分2、基础域2.1、概述2.2、E-R图2.3、SQL脚本 1、领域划分 序号中文名称英文名称代号备注1基础域basea012资产域assertsa023监测域monitora034水权域quotaa045灌溉域irrigationa056排涝…

HIGG FEM4.0即将实行

【HIGG FEM4.0即将实行】 01主要问题数量‍ 首先是主要问题的数量,为了与行业内的新倡议、新标准保持一致,对原有的各个板块的问题进行了一定的改善,FEM 4.0中涉及到的问题数量比3.0版本新增了一些,但并不是所有的问题都需要回答&…

矿区安全检查VR模拟仿真培训系统更全面、生动有效

矿山企业岗位基数大,生产过程中会持续有新入矿的施工人员及不定期接待的参观人员,下井安全须知培训需求量大。传统实景拍摄的视频剪辑表达方式有限,拍摄机位受限,难以生动表达安全须知的内容,且井下现场拍摄光线不理想…

三菱FX3U小项目—自锁控制与故障报警

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 当按下启动按钮时,电机通电运转,当按下停止按钮时,电动机断电停止;当设备检修旋钮得电时,电动机停止并且故障指示灯闪烁1s;当电动…

【PyQt小知识 - 4】:QGroupBox分组框控件 - 边框和标题设置

QGroupBox QGroupBox 是 PyQt 中的一个小部件,用于创建一个带有标题的组框。 可以使用 QGroupBox 将相关控件分组并添加一个标题。 以下是一个使用 QGroupBox 的示例代码(示例一): from PyQt5.QtWidgets import * import sysa…

【MySql】12- 实践篇(十)

文章目录 1. 为什么临时表可以重名?1.1 临时表的特性1.2 临时表的应用1.3 为什么临时表可以重名?1.4 临时表和主备复制 2. MySql内部临时表使用场景2.1 union 执行流程2.2 group by 执行流程2.3 group by 优化方法 -- 索引2.4 group by 优化方法 -- 直接排序 3. Me…

SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序

SWT 3.0 开始引入了 Tray,可以在系统栏放置你的程序图标了 本程序实现的功能有: 点击窗口的最小化或关闭按钮都是隐藏窗口–任务栏里不显示,不退出程序窗口隐藏时,任务栏无图标,系统栏有图标;窗口处于显示…

【第2章 Node.js基础】2.7 Node.js 的流(一)可写流

🌈可写流 🚀什么是可写流 可写流是对数据被写入的目的地的一种抽象。 所有可写流都实现了 stream.Writable类定义的接口。 可写流的例子包括,也都是实现了可写流接口的双工流 客户端的 HTTP 请求、服务器的HTTP 响应、fs 的写入流、zlib…

【第2章 Node.js基础】2.6 Node.js 的Buffer数据类型

Buffer数据类型 文章目录 Buffer数据类型什么是Buffer数据类型Buffer 的特点 创建Buffer实例Buffer用于编码转换将Buffer 实例转换为JSON 对象Buffer实例基本操作1. 写入Buffer实例:2. 从Buffer实例读取数据:3. Buffer实例合并: 4. Buffer实例…

Android Jetpack的组件介绍,常见组件解析

jetpack组件有哪些 Android Jetpack是一个集成Android应用程序组件的一站式解决方案。它使开发人员能够专注于他们的应用程序的真正创新部分,而不会受到Android平台特定的限制。Jetpack组件可分为四个类别: 架构组件(Architecture Componen…

从流程优化到经营提效,法大大电子签全面助力智慧零售升级

在新零售模式下,“商业综合体、百货商场、连锁商超、连锁便利店、线上电商平台”等各类商业零售企业借助数字化的手段来改造和重塑传统零售流程和逻辑,实现全面数字化转型,包括线上线下一体化、全场景覆盖、全链条联通、全渠道经营、客户服务…

【ASP.NET】Hello World

文章目录 1. 几个概念2. 搭建开发环境2.1 .NET SDK2.2 IDE & Editor 3 First Project3.1 步骤3.2 模板3.3 项目结构3.4 请求的处理流程 Reference Link 1. 几个概念 .NET 是一个平台,包括 .NET Framework、.NET Core、ASP.NET、C#等,可以构建桌面、W…