论文阅读:Compositional Learning for Human Object Interaction

Compositional Learning for HOI(ECCV 2018)

文章
  作者的的想法是因为我们很难搜集到所有组合之间的interaction,所以必须会面临的问题就是要识别在数据集中从未见到过的情况,也就是HOI的zero shot learning。作者认为人的动作是具有compositional的性质的,而且人可以用不同的物体和工具达到类似的目的。比如我们可以用hammer去hit the nail,同样也可以用hard-cover book做相同的事情。因此作者考虑可以使用这种unique composition帮助实现新的动作。
  但是这种compositional的学习面临的一个主要的问题是:模型怎样可以学会在context中组合出新的动作
  作者使用下面a中的graph来表示interaction。verb和noun通过圆形的action节点相连接,然后会存在某些verb-verb连接和noun-noun连接,我想这种连接应该是代表了某种相似性和可迁移的特性。
  首先,从知识库中提取出subject-verb-object(SVO)triplets建立一个外部的知识图。这个图覆盖了大部分的HOI,其中每个verb和noun节点都以其word embedding作为这个节点的特征。
论文阅读:Compositional Learning for Human Object Interaction_第1张图片
  对于一张图片,将其visual特征记作x,其中的HOI记作y,而y又可以分解为一个verb和一个noun,分别记作 和 ,本文的方法中使用卷积特征作为x,分别使用verb和noun的词向量作为 和 。本文的目标是想探索先验知识在zero shot的动作识别中的使用,具体是想要学习到一个score function
在这里插入图片描述
K代表先验知识,就是上面结构图(a)中用graph表示的部分。这部分的连接是利用的外部数据集进行建立的。action节点的特征一开始都是0,会经过图卷积得到具体的值,**但是图卷积的参数是咋学的呢?**图卷积最重要的有两个参数,一个是对每个节点的特征进行变换的矩阵W,可以视作图卷积核,另一个是加权求和的系数,默认用1,但也可以采用想graph R-CNN那种利用点积加入注意力的形式。
  我想compositional learning的意思应该是首先学到图卷积核W,然后利用到检测的object类别得到object的词向量,对所有的动作类别,都和这个object利用训练时候学习到的图卷积核W,得到对应的action的向量,这里分为两种情况,一种是已经存在的verb-noun,不需要求向量,因为训练的时候已经得到了,另一种是没有见过的组合,这时候在graph中加入对应的verb-action连接和action-noun连接,利用图卷积求出这个新加入的action的向量表示,然后将每个action向量都和图片的卷积特征x进行计算得到score再sigmoid,最后概率最大对应的action就是识别结果。
  具体来说,本文的图卷积(GCN)的单层计算如下:
在这里插入图片描述
GCN首先会对每个node的特征进行变换,然后根据邻接矩阵更新每个节点的特征。由于verb和noun没有直接连接,所以矩阵A是分块的,从左到右,从上到下,分别是verb、noun和action节点
论文阅读:Compositional Learning for Human Object Interaction_第2张图片论文阅读:Compositional Learning for Human Object Interaction_第3张图片
然后要对矩阵A进行分块归一化得到 ,之后写出GCN单层为:
在这里插入图片描述
而且其中:
在这里插入图片描述
可以看出,对于verb的更新只会用到verb之间的连接,虽然verb和action也有连接,对于noun的更新也是一样的。但是对于action的话会分别利用a-n和v-a的连接进行更新的。注意一层GCN只能利用最近neighbor的信息,K层GCN加非线性激活函数可以使用K-neighbor进行更新。GCN的输出是按照上面的公式更新过的node特征。
  本文具体的结构采用了两层的GCN,分别的输出维度为512和200,每层接一个ReLU。图片经过CNN得到的特征会先被降到512维,然后和GCN输出的某个action特征concat经过全连接得到一个match score并经过sigmoid。损失函数直接使用交叉熵,因为sigmoid得到的值是反应action与image feature匹配的概率,label是1或者0。训练时会固定image feature然后更新GCN的参数W,同时通过采样控制正负样本的比例为1:3。
  实验中,主要的测试有两种:1.已知verb和noun的新组合、2.未见过的verb和noun的组合。paper将noun和verb分别划分为1/2以及A/B的不相交子集。 因此task1即训练集为(1A+2B)的子集,这涵盖了所有verb和noun,但缺失了很多组合,测试集则为(1A+2B+1B+2A)。task2为训练集为1A,测试集为(1A+2B+1B+2A),可以说task2比task1难。
  Visual Product (VP):p(a,b)=p(a)p(b),确实能处理没有见过的组合,但是没有建模verb和noun之间的contextuality。
  Triplet Siamese Network:将verb和noun的embedding进行concat,然后通过全连接层,输出再和visual feature进行concat之后通过另一个全连接层得到similarity score。
  Semantic Embedding Space:使用verb和noun的embedding的平均作为action的embedding,模型会用L2 loss最小化action embedding和其对应的visual feature的距离。
  Deep Embedding Model:独立地将verb和noun的embedding通过全连接层,最后他们的输出会进行点和,然后与visual feature求L2 loss。
  Classifier Composition:每个verb或者noun的token都由各自的SVM分类器权重表示。该方法将一对权重的组合转化为一个新的分类器,可以处理已知verb和noun的新组合,但不能处理未见过的verb或者noun。
论文阅读:Compositional Learning for Human Object Interaction_第4张图片
论文阅读:Compositional Learning for Human Object Interaction_第5张图片
  上面两个表格分别是几种方法在HICO和VG-HOI上的mAP,可以看出本文的方法只是稍微好于之前的一些方法,比如triplet siamese和CC都是很有竞争力的。

你可能感兴趣的:(论文阅读:Compositional Learning for Human Object Interaction)