HiCo是一种基于对比学习的的视频自监督预训练方案。应用于视频的标准对比学习框架基于时序一致性假设,即认为来自同一个视频不同时间的片段应共享相同的视觉特征,该假设使得标准对比学习仅能从经过裁剪的短视频中学习到可用视频表征,HiCo可以利用长、未裁剪的视频中天然存在的、丰富的时序信息来学习视频表征。预训练过程的具体实现如下:HiCo将首先从每一个未裁剪的视频中采样三个不同的片段:两个近距离片段和一个随机距离的片段;其中两个近距离片段之间距离将随着训练的进程逐渐增加,从而实现由容易到困难的渐进采样策略。然后使用特征提取器对这些片段提取特征,分别使用不同的映射头(图中的g和h)将特征映射到视觉一致性学习空间以及主题一致性学习空间中,并对前一空间中的特征使用对比学习进行视觉一致性约束,对后一空间中的特征使用一个MLP预测两两片段间的主题一致性。为度量HiCo的性能,分别利用HiCo预训练得到的特征直接执行视频分类任务以及视频检索任务进行验证,公有的预训练数据集包括:HACS, Kinetics400以及Untrimmed Kinetics400; 公有的评估数据集包括:UCF101以及HMDB51。
使用方式:
使用范围:
目标场景:
经过HiCo预训练得到的模型可以直接作为标准的预训练模型使用。
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}.')
Kinetics-400 & Untrimmed Kinetics-400 常用行为识别的公开数据集,包含400类,总共有接近30万视频;
HACS 包含3.7w未裁剪的长视频;
UCF101 包含101个类,共计1.3w经过裁剪的短视频,常用作评估自监督表征质量的模型之一;
HMDB51 包含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一致。
主要是用的预处理如下:
HiCo在行为识别和行为检索两个任务上进行测试:
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 |
Dataset | architecture | Recall@1 | Recall@5 |
---|---|---|---|
HMDB51 | S3D-G | 62.5 | 76.4 |
UCF101 | S3D-G | 35.5 | 60.3 |
如果你觉得这个该模型对你有所帮助,请考虑引用下面的相关的论文:
@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}
}