本模型使用RoBERTa-base和video swin transformer分别来提取输入的文本特征和视频特征,并给出视频中由此文本指定的物体mask。
本模型的生成效果如下所示,输入的指导文本为:
本模型采用端到端的训练方式,具体的模型如下图所示。首先,输入的文本和视频帧通过特征编码器,并且每一帧会形成一个多模态序列。
接下来,多模态 Transformer 对特征关系进行编码,并将实例级特征解码为一组预测序列,
然后生成相应的掩码和预测的序列。
最后,在训练阶段,预测序列会与标签序列进行匹配以训练网络;在推理阶段,预测序列会用于生成最终的预测结果。
使用方式:
适用范围:
在ModelScope框架上,提供输入视频、指导文本,即可以通过简单的Pipeline调用来使用本模型。注意,本模型当前支持Pillow版本不高于9.5.0。
如您期望结果进行可视化,可以将下载下来的configuration.json
文件中pipeline
下面的save_masked_video
设为true
并配置好output_path
路径。
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.outputs import OutputKeys
input_location = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/videos/referring_video_object_segmentation_test_video.mp4'
text_queries = [
'guy in black performing tricks on a bike',
'a black bike used to perform tricks'
]
input_tuple = (input_location, text_queries)
pp = pipeline(Tasks.referring_video_object_segmentation, model='damo/cv_swin-t_referring_video-object-segmentation')
result = pp(input_tuple)
print(result)
由于目前提供的模型只在Refer-YouTube-VOS数据集上进行了预训练,因此,超出此数据集domain覆盖的视频或者指导文本可能会影响推理时的分割结果。
训练数据为Refer-YouTube-VOS公开数据集和A2D_Sentences公开数据集。
模型微调和评估流程及代码可见文档【模型微调示例】小节。
DataSet | mAP | J&F |
---|---|---|
AD-Sentences | 46.1 | - |
JHMDB-Sentences | 39.2 | - |
Refer-YouTube-VOS | - | 55.32 |
如果你觉得这个模型对你有所帮助,请考虑引用下面的相关论文:
@inproceedings{botach2021end,
title={End-to-End Referring Video Object Segmentation with Multimodal Transformers},
author={Botach, Adam and Zheltonozhskii, Evgenii and Baskin, Chaim},
booktitle={Proc. IEEE Conf. Computer Vision and Pattern Recognition (CVPR)},
year={2022}
}