前言
论文地址,点这里
笔记
- 这篇文章主要的思想就是在对HOI分类前先做一个二分类,将输入图片中没有交互的部分给抑制掉,这像极了faster-rcnn中RPN部分对anchor回归时先做一个二分类,区分前景还是背景,然后RCNN部分再进行21分类。
- 作者反复提到的说这个“Interactiveness prior is beyond the
HOI categories and can be learned across datasets”意思就是说关于图中人和物体是否交互与最后的具体类别是无关的,因此这个用于区分Interactiveness prior的P network就可以在多个数据集上进行训练,并且可以很方便的转移到任意一个具体的数据进行HOI categories预测。
- 上边的图2很清楚的展示了本篇文章的核心思想,即输入的图片中的HOI可以以图的形式存储,人和物体用节点表示,interaction用edge表示,但是通常一幅图片中的HOI直接作为图存储是非常dense的,因为你事先不知道哪些边有interaction,哪些没有,所以一开始都是全部链接上的,这样直接做HOI分类,难度较大,作者即在之前先对图中的edge进行NIS,抑制那些没有交互的边,然后将剩下的边进行具体的HOI分类(注意作者本篇文章其实并未提出什么新的HOI分类框架,更多的创新在于前边这个先做二分类的idea,后边HOI分类用的还是前边文章提到的multi-stream思想)。
- 这张图就是整个网络的框架了
整个框架作者分为了三个大的部分分别是R、P、C,首先R是特征提取部分,作者使用Detectron框架得到输入图片中物体的坐标,然后输入到faster-rcnn(resnet50)中去cropingfc7前一层的ROI polling得到裁剪出来的feature map。对于C,作者使用multi-stream的结构,这里除了human和object的feature外还有一个用于获取空间位置特征的spatial stream,这个东西和前边那篇多路的文章采用的策略完全一致,就是union box,两个框叠在一起,而且是双通道去掉像素信息,只有框内的值为1其余为0。而且这多个信息流采用后融合(late fusion策略,先分别计算分数再做element-wise sum)。 - 至于P,也是三个信息流,不同的是在s-p stream中,除了用到前边的spatial-stream还有一个pos stream,这个东西在文中有提到
拿到这个pos map之后把它和spatial-stream concatenate起来就得到了s-p stream
后边提到了如何计算P的输出分数,除了直接用三路的特征外,还要乘上一个LIS,这个东西非常像上一篇文章中用来控制信息流动的adjacent matrix,主要是用来区分不同交互对的交互程度。注意T、K、W都是超参数,需要调节,同时这个函数的图像在文中有画,其实就是拉开了有交互和没有交互之间的距离,使得更容易区分。同时P和C中的human和object stream的权值是可以共享的,这样这两路可以joint training。 - 后边作者分了两种训练模式
第一种联合训练,其实就是和faster-rcnn中的训练(注意这里指现在github社区上多数实现的训练方案,作者给的源码使用不是这种)一样。总的loss=lossC+lossP。第二种就是采用多个数据集训练P,然后在分别应用到每个数据集去训练,显然直觉上第二种性能就会比第一种更好一点,但可惜第二种不是end-to-end的方式。 - 接下来作者又比较详细的说了一下如何使用NIS和最后的分数如何计算,其实就是将P输出的各个边的score与一个阈值比较。然后C的分数是稀疏化后的解析图加上特征经过一个fc层得到。最终的分数就是这两个分数相乘进行最终的分类。
- 最后就是一些不同训练方法和设置下的结果对比,及ablation study的结果。另外作者还做了一下可视化来说明有些特别难区分false positive可以通过他提出的这种方式过滤掉,比如左下角的两只手,如果直接分类可能就会认为两只手是交互的,但是通过P就可以将其过滤掉。
- 最后总结,主要贡献是提出了interactiveness network再对HOI categories分类前先进行二分类过滤掉non-interactive的关系,再进行HOI categories分类,注意虽然文中称其方法是SOTA的,但是其在HOI categories分类时用的仍然是前人的一些办法。