text-to-video search is a cross-modal search.
要做什么事?
文本query,输出相关的视频(短视频)。属于跨模态(text——video)检索。
关键:
- 文本的特征怎么选,视频的特征又怎么选呢?
- 如何衡量文本跟视频之间的相似度?
- 网络如何融合两者的特征呢?
创新点
数据
视频特征提取
视频的local feature提取
使用预训练的faster rcnn(backbone Resnet101)对每一帧提取bounding box,对于每个检测到的感兴趣区域(ROI),即bounding box,通过对边界框内的卷积特征求和来获得其特征。 特征维数为2048。
可能会有疑问:
- 每一帧都会提取很多的ROI
- 整个视频也会有非常多的ROI
- 如何制定统一的ROI选取规则呢?每帧选几个,每个视频选几个?
这些问题在Ablation Study都有对应的答案,每个视频选择多少个ROI是定死了(但是其实是不是要跟视频时长相关呢?)
相比于视频的global feature提取,好处不言而喻;对于多帧视频,文本多对应的内容可能与大部分帧无关,也可能与帧图像的某个区域物体有关,而与背景无关;
使用bounding box相当于,去除掉多余的背景干扰信息,使提取出的特征更加的精准。
视频相对于图像存在时序问题,这个也被编码在了输入当中,相当于位置定位。
文本特征的处理
Extracted through a word2vector model,基本上是使用的bert那一套。
相似度计算网络搭建和训练
CAN model
CAN —— Combo-Attention Network
作用就是计算相似度。
如下图所示:
query语句由一组单词功能表示,而short video则由一组边界框功能表示。 所提出的CAN获得了查询语句和短视频之间的相似性,该CAN在边界框集合和单词集合之间进行匹配。
模型Basic Block
X,Y现在不用纠结是什么。这两个网络的基本basic block都会用的到。
整体网络架构
双通路,CA的主要目的是为了融合文本和视频特征:
soft-att:
我的感觉就是为了将视频的N维特征变为M维(与文本的维度特征一样),然后方便计算相似度。
相似度计算:
Loss Function
loss 是为了让有相关性的相似度更大,没相关性的相似度尽量的小。
定义
s
(
i
,
j
)
s(i, j)
s(i,j)定义为视频
V
i
V_i
Vi和句子
S
j
S_j
Sj的相似度。力求使相关的句子-视频对之间的相似度最大化,并使无关的句子-视频对之间的相似度最小化。
通过K个真实视频句对
{
(
V
k
,
S
k
)
}
k
=
1
K
\{(V_k,S_k)\} _{k = 1}^K
{(Vk,Sk)}k=1K构造有K个pairs的mini-batch。
DEPLOYMENT
如何在视频检索系统中部署建议的CAN。 由于的视频数据库规模庞大,在给定查询文本的情况下,受效率的限制,因此无法通过提议的CAN获取文本查询与数据库中每个视频的相关性得分。 因此,我们仅在重新排名阶段部署CAN。
如图所示,给定文本查询,我们首先进行基于标题的搜索。 得益于句子特征的索引,可以非常有效地执行此步骤。 根据基于标题的检索的排名结果,我们选择了M个最相关的视频。 CAN用于重新排列所选的M个视频。