本文分享 CVPR2021 Oral 论文『HOTR: End-to-End Human-Object Interaction Detection with Transformers』,由 Kakao 提出端到端的Human-Object 交互检测模型《HOTR》不再需要后处理步骤!
详细信息如下:
- 论文链接:https://arxiv.org/abs/2104.13682
- 项目链接:https://github.com/kakaobrain/HOTR
导言:
Human-Object Interaction(HOI)检测是识别图像中“人-物-交互”的任务,涉及到:1)交互作用中的主体(人)和目标(对象)的定位;2)以及交互标签的分类。 大多数现有的方法都通过检测人和对象实例,然后单独推断检测到的每一对实例的关系来间接解决这个任务。
在本文中,作者提出了一个新的框架HOTR,直接基于Transformer编码器-解码器结构从图像中预测一组<人、对象、交互>的三元组。通过集合预测,本文的方法有效地利用了图像中固有的语义关系,不需要耗时的后处理步骤,大大提高了该任务的速度。本文提出的算法在两个HOI检测基准数据集测试中实现了SOTA的性能,并且在目标检测之后的处理时间只需要1ms。
01
Motivation
Human-Object交互(HOI)检测任务为预测图像中的<人、对象、互动>三元组的任务。以前的方法通过首先执行目标检测,并将检测到的<人、对象>对进行单独的后处理来预测交互关系,来间接地解决这个任务。但是这种方式非常耗时,并且计算量也非常大。
为了克服HOI检测器中的冗余计算,最近的方法也提出了并行的HOI检测器,这些方法可以显式地定位与任何一个检测框的交互。通过将局部相互作用与目标检测结果相关联,以完成<人、物体、相互作用>三元组的生成。然而,这种方法这种依赖于一些启发式的设计,比如距离、IoU,来进行human和object之间的匹配。
目前的HOI检测工作主要存在两方面的局限性:1)它们需要额外的后处理步骤 ,如抑制相近的重复预测和启发式的阈值。2)虽然对象之间的建模关系有助于目标检测,但目前HOI检测的工作仍然没有考虑对象之间高级和复杂的交互 。
基于上面的问题,本文提出了一种快速、准确的HOI算法HOTR(Human-Object interaction TRansformer),它用DETR中集合预测的方法同时预测场景中的人-对象交互。作者设计了一种基于Transformer的编码器-解码器结构来预测一组HOI三元组,这使模型能够克服以前工作的两个局限性。
- 首先,直接的集合预测使HOTR能够消除手工设计的后处理阶段 。本文的模型以一种端到端方式训练,通过与Ground-Truth的<人,物体,互动>集合的匹配预测损失函数来优化模型。
- 其次,Transformer的自注意机制使该模型利用了人和对象之间的上下文关系以及它们的交互作用 ,从而使得本文的模型更适用于复杂的场景理解。
作者在两个HOI检测基准数据集(V-COCO和HICO-DET数据集)上评估了本文的模型。与顺序和并行的HOI检测器相比,本文提出的模型在这两个数据集上实现了SOTA的性能。此外,本文的方法比的其他HOI检测算法要快得多,因为它通过直接集合预测消除了耗时的后处理,结果如上图所示。
02
方法
本文的目标是以端到端的方式建模⟨人、对象、互动⟩ 之间固有的语义关系,来预测一组⟨人、对象、互动⟩ 三元组。为了实现这一目标,作者将HOI检测表述为集合预测问题(类似DETR)。在本节中,作者首先讨论如何将用于目标检测的集合预测结构直接扩展到HOI检测的问题。
然后,作者提出了本文结构HOTR,它并行地预测一组检测的 目标 ,并将交互作用中的人和对象关联起来,而Transformer中的自注意用于交互作用之间的关系建模。最后,作者给出了本文模型的训练细节,包括用于HOI检测的匈牙利匹配和本文的损失函数。
2.1. Detection as Set Prediction
Object Detection as Set Prediction
DETR将目标检测作为一个集合预测问题来进行训练,由于目标检测包括每个对象的分类和定位,因此DETR中的transformer编码器-解码器结构将N个query转换为了N个目标类别和边界框的预测。
HOI Detection as Set Prediction
与目标检测类似,HOI检测可定义为一组预测问题,其中每个预测包括人区域(即,交互主体)和对象区域(即,交互目标)的定位,以及交互类型的多标签分类。一个简单的方法是修改DETR的MLP head,从而使得模型能够预测来人检测框、对象检测框和动作分类。
然而,这种结构带来了一个新的问题,即同一对象的定位需要通过多个query进行冗余的预测(例如,如果同一个人坐在椅子上在计算机上工作,则两个不同的查询必须推断出同一个人的冗余回归)。
2.2. HOTR architecture
本文的HOTR结构如上图所示,是一个Transformer编码器-解码器结构,具有共享的编码器和两个并行的解码器(即实例解码器和交互解码器)。基于两个解码器的结果,使用本文提出的HO指针(HO Pointers) 生成最终HOI三元组。
Transformer Encoder-Decoder architecture
与DETR类似,全局上下文特征由主干CNN和共享编码器从输入图像中提取。随后,将两组查询向量(即,实例查询和交互查询)送到两个并行解码器(即,实例解码器和交互解码器)中。实例解码器将实例查询转换为实例表示以进行目标检测 ,而交互解码器将交互查询转换为交互表示用于交互检测。
作者将前馈网络(FFN)用于交互表示,并获得人指针(Human Pointer)、对象指针(Object Pointer)和交互类型(interaction type),如上图所示。也就是说,交互表示通过使用人指针和对象指针(HO指针)指向相关实例表示来定位人员和对象区域,而不是直接回归边界框。与直接回归方法相比,这样的结构有几个优点:
- 在直接回归方法中,相同对象的定位因交互的不同会存在不同 。本文的结构通过使用单独的实例和交互表示并使用HO指针将它们关联起来来解决这个问题。
- 此外,本文的结构允许更有效地学习目标和人的定位,而无需在每次交互中重复学习定位 。
HO Pointers
上图展示了HO指针如何关联实例解码器和交互解码器的预测结果。HO指针(即人指针和对象指针)包含交互中人和对象的对应实例表示的索引。当交互解码器将K个交互查询转换为K个交互表示之后,交互表示送入到两个前馈网络,获得向量和。人指针和对象指针分别代表与所有实例特征表示相似度最高的人和对象的下标 ,计算如下:
Recomposition for HOI Set Prediction
到目前为止,我们已经计算出了以下变量:1)N个实例特征表示;2)K个交互特征表示和相对应的HO指针。在给定γ交互类的情况下,用于检测框回归和动作分类的前馈网络分别表示为:和:γ。然后,通过以下方式获得第i个交互表示的最终HOI预测:
这样,我们就得到了HOTR最终预测,形式上是K个三元组的集合,,,分别表示⟨人、对象、互动⟩。
2.3. Training HOTR
在本节中,作者首先介绍了本文用到的匈牙利匹配算法,用于获得Ground Truth HOI三元组和HOI集合预测之间的唯一匹配。然后,基于匹配结果,定义HO指针与最终训练的损失函数。
Hungarian Matching for HOI Detection
HOTR预测了K个HOI三元组,它由human box、object box和a个类别的动作分类组成。其中,K的值通常大于图像中交互对的数量,这一点与DETR相似。
设Y表示Ground Truth的HOI三元组的集合,代表模型的K个预测。由于K的数量通常比图片中的交互数量要多,所有Y中不足的部分会用∅来进行pad。为了找到这两个集合之间的二部匹配,作者搜索了K个元素的排列:
其中,是Ground Truth和下标为σ的预测之间的成对匹配损失。然而,采用⟨hbox、obox、action⟩的形式,而σ采用⟨hidx,oidx,action⟩的形式,因此我们需要修改一下损失函数。
设:为ground- truth ⟨hidx,oidx⟩到ground-truth ⟨hbox,obox⟩的映射函数,用于目标检测的最优分配。使用逆映射:,可以从ground-truth ⟨hbox,obox⟩得到ground- truth ⟨hidx,oidx⟩。
设表示一组归一化的实例表示μμ。为Human Pointer的softmax预测集合,计算如下:
的表示Object Pointer的softmax预测集合,定义与Human Pointer相似。
给定ground-truth,,,并将ground-truth box转换为下标:,匹配损失函数计算如下:
Final Set Prediction Loss for HOTR
然后,作者计算了以上所有匹配对的匈牙利损失,其中HOI三元组的损失具有定位损失和动作分类损失,如下所示:
定位损失的具体计算如下:
其中τ是控制损失函数平滑度的超参数。
Defining No-Interaction with HOTR
在DETR中,最大化无对象类的Softmax输出的概率自然会抑制其他类的概率。然而,在HOI检测中,动作分类是多标签分类,其中每个动作被视为单独的二分类。由于缺少可以抑制冗余预测的显式类,HOTR会得到同一个⟨human,object⟩对的多个预测。因此,HOTR设置学习交互性的显式类(如果对之间存在交互,则为1,否则为0),抑制低交互性分数的冗余对的预测。
03
实验
3.1. Quantitative Analysis
上表显示了本文方法在V-COCO数据集上和其他SOTA方法的对比,可以看出,本文的方法在性能上远超以前的SOTA方法。
上表显示了本文方法在HICO-DET数据集上和其他SOTA方法的对比,在全体测试集和常见的样本上,本文方法的性能都比以前的方法要好。但是在出现比较少的样本上,本文的方法不如一些以前的方法。
3.2. Ablation Study
With vs Without HO Pointers
在HOTR中,交互表示通过使用人指针和对象指针(HO指针)指向相关实例表示来定位人和对象区域,而不是直接回归边界框。从上表可以看出,HO指针对于性能的提升还是非常重要的。
Shared Encoder vs Separate Encoders
在本文中,作者采用了共享的Encoder,为了探究共享Encoder的作用,作者还试了用分开的Encoder。结果如上图所示,可以看出,共享的Encoder能够达到更高的性能。
With vs Without Interactiveness Suppression
HOTR设置了一个学习交互性的显式类,来抑制对概率较低的冗余对的预测。上表显示,为交互性设置显式类有助于提升最终的性能。
04
总结
本文提出了用于解决human-object交互问题中的第一个基于Transformer的集合预测方法HOTR。HOTR的集合预测方法消除了以前HOI检测器手工设计的后处理步骤,同时能够对相互作用之间的相关性进行建模。
为了使得Transformer能够适应HOI检测任务,作者提出了多种HOTR的训练和推理技术:采用并行解码器进行HOI分解训练 ,基于相似度的层重组进行推理 ,以及抑制交互性。作者还开发了一种新的基于集合的匹配来检测HOI,它将交互表示与实例表示相关联。在HOI检测任务中,HOTR在两个基准数据集上实现了SOTA的性能,并且推理时间低于1ms,明显快于以前的并行HOI检测器(5∼9ms)。
个人觉得,这篇文章与EMNLP2021的《On Pursuit of Designing Multi-modal Transformer for Video Grounding》有异曲同工之妙,避免了以前方法手工设计的后处理模块,基于DETR的思想,将整个任务处理为一个端到端的方式,大大提升了模型的精度和推理速度。
▊ 作者简介
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV
END