论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)

前些日子作业多,就没看论文。组会上老师问我有没有用transformer做场景图的。我说没吧老师。然后师姐给我发了这篇。今天把这篇文章梳理完了,做个记录。

这篇文章是做动态场景图的,就是由视频生成场景图。我之前看的都是基于静态图片的,也就是静态场景图。论文作者设计了一个Transformer,捕捉到了单个帧内各谓语表示的空间信息和相邻帧的时序信息。为什么要利用好时序信息呢?对于视频而言,前一帧对后一帧是有启发作用的,作者认为如果前一帧是人-holding-杯子这样的关系,那么很容易就能猜到后一帧是人-drinking from-杯子这样的关系。

老规矩先上pipeline。
论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)_第1张图片
(1)目标检测网络,作者用的是FasterRCNN,backbone使用了ResNet101

(2)生成谓语表示
在这里插入图片描述
t:第t帧,k:第k个谓词
i ,j:谓词关联到的两个物体,第i个和第j个
v:目标检测网络提取的视觉特征
uij:i,j两个物体的union box经过ROIAlign的特征
fbox:把物体i的bbox和物体j的bbox转换成特征,并且和uij维度相同
φ:展平
s:物体类别的语义嵌入信息
在这里插入图片描述
也就是说谓语表示融合了视觉特征、存在联系的主宾对的空间信息,和主宾对所属物体类别的语义信息。

(3)Spatial Encoder

论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)_第2张图片 论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)_第3张图片
t:第t帧;n:第n个注意力层,前一层的输出是后一层的输入。 这样,单个帧内的每个谓语表示都融合了全局的信息(虽然作者把这个叫做空间编码器,但我觉得也有全局的语义信息和视觉特征信息)

(4)Frame Encoding
帧编码。因为后面要利用相邻帧的信息,为了区分不同的帧,对每个帧进行编码,每个帧的编码结果不同。这一步注入了时序信息。

(5)Temporal Decoding
这一步是我觉得最重要的部分。时序解码这里利用的是相邻帧的信息,也就是真正地利用了时序信息。

论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)_第4张图片

这里的Q和K是相同的。Ef就是帧编码,Zi是滑动窗口η在所有帧上滑动的结果,如果η=2,那么就是帧1帧2进行解码;帧2帧3解码;帧3帧4解码这样。

论文阅读:Spatial-Temporal Transformer for Dynamic Scene Graph Generation(ICCV2021)_第5张图片
(6)谓语分类 解码结果→谓语种类的概率分布

(7)loss function
谓语分类损失用的是多标签损失,对于预测正确的谓语,尽可能增大它的置信度,对于预测错误的谓语,尽可能减小它的置信度。
在这里插入图片描述
总损失 = 谓语分类损失+目标分类损失

你可能感兴趣的:(机器学习,scene,graph,场景图,transformer,深度学习,场景理解)