Spatial-Temporal Transformer for Dynamic Scene Graph Generation
论文地址:https://arxiv.org/abs/2107.12309
github地址:https://github.com/yrcong/sttran
STTran是一种可以利用时空上下文的Transformer (STTran: Spatial-Temporal Transformer)来生成动态场景图 (Dynamic Scene Graph).
主要贡献
- 提出了用于动态场景图生成的时空转换器STTran,其编码器提取帧内的空间上下文,解码器捕获帧之间的时间依赖关系。
- 利用多标签损失引入一种新的生成场景图的策略:semi-constraint。
- 通过实验证明了STTran可以很好地利用时间上下文 (temporal context) 来改善关系检测。
研究背景
从视频生成动态场景图(Dynamic scene graph)比从图像生成场景图更具挑战性,因为目标之间的动态关系和帧之间的时间依赖性允许更丰富的语义解释。
如图显示了图像和视频生成场景图的不同:
![](https://i-blog.csdnimg.cn/blog_migrate/d04b497191d04cd3c158b48ad964d124.png)
![](https://i-blog.csdnimg.cn/blog_migrate/99129b5841a84e3787ddb4817b7e2e6b.png)
主要实现
![](https://i-blog.csdnimg.cn/blog_migrate/d94eff62690cbc746d885b44685b1ba4.png)
具体实现
转换器
首先回顾一下转换器的概念。转换器由Vaswani在《Attention is All You Need》中提出。
不懂的可以跳转这里进行学习。
- 在每一层中,给定 x x x有 N N N个 D D D维的输入, x ∈ R N × D x\in {R^{N \times D}} x∈RN×D,通过线性变换获取查询向量( Q = X W Q , W Q ∈ R D × D q Q=X{W_Q},{W_Q} \in R^{D \times {D_q}} Q=XWQ,WQ∈RD×Dq)、键向量( K = X W K , W K ∈ R D × D k K=X{W_K},{W_K} \in R^{D \times {D_k} } K=XWK,WK∈RD×Dk)和值向量( V = X W V , W V ∈ R D × D v V=X{W_V},{W_V} \in R^{D \times {D_v} } V=XWV,WV∈RD×Dv)。
- 其自注意层的公式如下: A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T D k ) V Attention(Q,K,V)=Softmax(\frac{Q{K}^T}{\sqrt{D_k}})V Attention(Q,K,V)=Softmax(DkQKT)V其中除以 D k \sqrt{D_k} Dk是为了让梯度更稳定,Softmax的作用是使所有输入归一化。
- 为了提高注意层的性能,采用多头注意力,其定义为: M u l t i H e a d ( Q , K , V ) = C o n c a t ( h 1 , . . . h h ) W o , h i = A t t e n t i o n ( X W Q i , X W K i , X W V i ) MultiHead(Q,K,V)=Concat(h_1,...h_h)W_o,h_i=Attention(X{W_{Q_i}},X{W_{K_i}},X{W_{V_i}}) MultiHead(Q,K,V)=Concat(h1,...hh