---
title: cv_s3dg_video-embedding
canonical_url: "https://www.modelscope.cn/models/damo/cv_s3dg_video-embedding"
md_url: "https://www.modelscope.cn/models/damo/cv_s3dg_video-embedding.md"
repository: damo/cv_s3dg_video-embedding
chinese_name: "分层一致性的长视频表征-通用领域"
last_updated: 2022-10-11
license: apache-2.0
pipeline_tag: video-embedding
tasks:
  - video-embedding
library_name:
  - pytorch
frameworks:
  - pytorch
domain:
  - cv
downloads: 1997
stars: 9
tags:
  - Alibaba
  - CVPR2022
---

# cv_s3dg_video-embedding

> cv_s3dg_video-embedding - damo 在 ModelScope 开源的模型。HiCo是一种基于对比学习的的视频自监督预训练方案。应用于视频的标准对比学习框架基于时序一致性假设，即认为来自同一个视频不同时间的片段应共享相同的视觉特征，该假设使得标准对比学习仅能从经过裁剪的短视频中学习到可用视频表征，HiCo可以利用长、未裁剪的视频中天然存在的、丰富的时序信息来学习视频表征。

damo/cv_s3dg_video-embedding 是 ModelScope 魔搭社区上的video-embedding模型，采用 apache-2.0 许可。

- **Repository**: damo/cv_s3dg_video-embedding
- **License**: apache-2.0
- **Tasks**: video-embedding
- **Tags**: Alibaba, CVPR2022
- **Downloads**: 1997
- **Stars**: 9
- **Last updated**: 2022-10-11

Source: https://www.modelscope.cn/models/damo/cv_s3dg_video-embedding

---

# 方法介绍

![模型结构](description/HiCo.png)

## 方法描述

HiCo是一种基于对比学习的的视频自监督预训练方案。应用于视频的标准对比学习框架基于时序一致性假设，即认为来自同一个视频不同时间的片段应共享相同的视觉特征，该假设使得标准对比学习仅能从经过裁剪的短视频中学习到可用视频表征，HiCo可以利用长、未裁剪的视频中天然存在的、丰富的时序信息来学习视频表征。预训练过程的具体实现如下：HiCo将首先从每一个未裁剪的视频中采样三个不同的片段：两个近距离片段和一个随机距离的片段；其中两个近距离片段之间距离将随着训练的进程逐渐增加，从而实现由容易到困难的渐进采样策略。然后使用特征提取器对这些片段提取特征，分别使用不同的映射头（图中的g和h）将特征映射到视觉一致性学习空间以及主题一致性学习空间中，并对前一空间中的特征使用对比学习进行视觉一致性约束，对后一空间中的特征使用一个MLP预测两两片段间的主题一致性。为度量HiCo的性能，分别利用HiCo预训练得到的特征直接执行视频分类任务以及视频检索任务进行验证，公有的预训练数据集包括：HACS, Kinetics400以及Untrimmed Kinetics400; 公有的评估数据集包括：UCF101以及HMDB51。


## 预训练模型的使用方式和范围

使用方式：
- 直接推理，在带标签的视频分类集上进行直接推理得到特征，并使用推理得到的特征执行视频分类任务、时序行为检测任务或者视频检索任务;
- 微调，在已经公开的模型在新数据、新任务上进行微调。

使用范围:
- 适合视频领域的行为识别检测识别，分辨率在112x112以上，输入片段时长不限。

目标场景:
- 视频中的动作识别，比如体育、影视、直播等


### 如何使用

经过HiCo预训练得到的模型可以直接作为标准的预训练模型使用。


#### 代码范例
```python
import cv2
from modelscope.pipelines import pipeline
from modelscope.utils.constant import  Tasks

videossl_pipeline = pipeline(Tasks.video_embedding, 'damo/cv_s3dg_video-embedding')
result = videossl_pipeline('data/test/videos/action_recognition_test_video.mp4')

print(f'video embedding output: {result}.')
```

### 模型局限性以及可能的偏差

- 考虑GPU精度、视频解码工具的差异，可能带来一定的性能差异(<0.5%)


## 训练数据介绍

- [Kinetics-400 & Untrimmed Kinetics-400](https://www.deepmind.com/open-source/kinetics) 常用行为识别的公开数据集，包含400类，总共有接近30万视频；

- [HACS](http://hacs.csail.mit.edu/) 包含3.7w未裁剪的长视频；

- [UCF101](https://www.crcv.ucf.edu/data/UCF101.php/) 包含101个类，共计1.3w经过裁剪的短视频，常用作评估自监督表征质量的模型之一；

- [HMDB51](https://www.crcv.ucf.edu/data/UCF101.php/) 包含101个类，共计1.3w经过裁剪的短视频。


## 模型训练流程

- 在Untrimmed Kinetics-400上进行预训练时，backbone基本学习率设置为0.3 * BatchSize / 256。模型训练500epoch，在前5个epoch，线性warmup策略，从学习率0.001开始。weight decay为1e-6;

- 在HACS数据集上进行预训练时，模型训练600epoch，其他设定与Untrimmed Kinetics-400一致。



### 预处理

主要是用的预处理如下：
- Color Jittering
- Gauss Blur
- Random crop: 随机生成[0.32, 0.57]尺度的框，然后随机Crop 112x112


## 数据评估及结果

HiCo在行为识别和行为检索两个任务上进行测试:

- 行为识别,在行为识别数据集HMDB51和UCF101上的结果如下：

| Dataset | architecture | Finetune | acc@1 | 
| ------------ | ------------ | - | ------------ |
| HMDB51 | S3D-G | Linear Finetune | 57.6| 
| HMDB51 | S3D-G | Fully Finetune  | 60.4 |  
| UCF101 | S3D-G | Linear Finetune  | 77.9 | 
| UCF101 | S3D-G | Fully Finetune  |83.6 | 

- 行为检索, 在行为数据集HMDB51和UCF101上结果如下：

| Dataset | architecture  | Recall@1 |  Recall@5 |
| ------------ | ------------ | ------------ | ------------ | 
| HMDB51 | S3D-G    | 62.5 | 76.4 | 
| UCF101 | S3D-G | 35.5 | 60.3 | 



## 引用
如果你觉得这个该模型对你有所帮助，请考虑引用下面的相关的论文：

```BibTeX
@inproceedings{qing2022hico,
  title={Learning from Untrimmed Videos: Self-Supervised Video Representation Learning with Hierarchical Consistency},
  author={Qing, Zhiwu and Zhang, Shiwei and Huang, Ziyuan and Xu, Yi and Wang, Xiang and Tang, Mingqian and Gao, Changxin and Jin, Rong and Sang, Nong},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={13821--13831},
  year={2022}
}
```
