2019_Dual Encoding for Zero-Example Video Retrieval_CVPR

本文介绍了一种新颖的视频检索方法,采用概念自由的双塔模型,通过多级编码处理视频和文本特征,实现全局、局部和时序特征的融合。实验覆盖多个数据集,并展示了在TRECVID比赛中的优秀表现,同时评估了模型的效率。代码开源,关注VSE++编码和改进的边际排名损失函数。

Motivation

现存的视频检索的工作都是concept based的方法,从视频和文本中寻找各自对应的概念,在现实场景中比较难以使用,作者提出concept free方法,加入多种特征的双塔模型,简单高效。

 

Contribution

提出一个多级的编码方式,映射到同一空间

渐进式地学习局部、全局和时序的特征

不错的效果

 

Method

 

如图,视频和文本的模型差不多,对于视频先用预训练好的模型提取特征,通过平均池化得到全局特征,通过双向GRU得到时序特征,通过双向GRU和一维卷积得到局部特征,之后拼接到一起作为视频的特征,对于文本也是一样的。这样得到的视频和文本的特征映射到同一空间后使用VSE++进行common space learning。

 

损失函数使用improved marginal ranking loss,同时使用了难样本挖掘的方法。

 

Experiments

作者做的实验非常多,在5个数据集上做了实验。其中包括了一个TRECVID的比赛Evaluating ad-hoc and instance video search, events detection, video captioning and hyperlinking

 

作者还计算了efficiency

 

Codes

https://github.com/danieljf24/dual_encoding

关于VSE++的代码:https://github.com/fartashf/vsepp

 

 

“Prototype Zero-Shot Sketch-Based Image Retrieval”(原型零样本基于草图的图像检索)旨在解决从图像数据库中根据草图进行检索时,面对未见过类别的图像检索问题。该领域利用原型去表示类别的特征信息,在零样本的设定下实现准确的图像检索。 零样本学习使得模型能够在没有见过某些类别的训练样本的情况下,通过借助辅助信息(如文本描述、属性)来识别和分类这些类别。在基于草图的图像检索中,草图作为查询输入,这要求模型理解草图的抽象特征,并将其与图像库中的图像进行匹配。原型通常是对一个类别的代表性特征表示,它能够综合该类别内多个样本的信息,从而更好地刻画类别的本质特征。在零样本条件下,原型可以通过语义信息构建,这样模型就可以对从未见过的类别进行推断和检索。 在代码示例方面,下面是一个简单的伪代码示例,展示基本的原型零样本基于草图的图像检索流程: ```python import numpy as np # 假设这些是预训练好的特征提取器 def sketch_feature_extractor(sketch): """ 从草图中提取特征 """ # 这里只是简单示例,实际中会使用深度学习模型 return np.random.rand(128) def image_feature_extractor(image): """ 从图像中提取特征 """ return np.random.rand(128) def prototype_construction(semantic_info): """ 根据语义信息构建原型 """ return np.random.rand(128) # 假设这是图像数据库 image_database = [np.random.rand(100, 100, 3) for _ in range(100)] # 假设这是输入的草图 input_sketch = np.random.rand(100, 100) # 提取草图特征 sketch_features = sketch_feature_extractor(input_sketch) # 构建原型 semantic_info = "example semantic description" prototype = prototype_construction(semantic_info) # 提取图像数据库中图像的特征 image_features_list = [image_feature_extractor(img) for img in image_database] # 计算草图特征与原型的相似度,以及草图特征与图像特征的相似度 similarities_with_prototype = [] similarities_with_images = [] for img_features in image_features_list: similarity_with_prototype = np.dot(sketch_features, prototype) / (np.linalg.norm(sketch_features) * np.linalg.norm(prototype)) similarity_with_image = np.dot(sketch_features, img_features) / (np.linalg.norm(sketch_features) * np.linalg.norm(img_features)) similarities_with_prototype.append(similarity_with_prototype) similarities_with_images.append(similarity_with_image) # 可以根据相似度进行排序,得到检索结果 retrieval_indices = np.argsort(similarities_with_images)[::-1] print("检索结果索引:", retrieval_indices) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值