现在已经2022年了,但是当下大多数的计算机视觉任务却仍然只关注于图像感知。比如说,图像分类任务只需要模型识别图像中的物体物体类别。虽然目标检测,图像分割等任务进一步要求找到物体的位置,然而,此类任务仍然不足以说明模型获得了对场景全面深入的理解。
以下图1为例,如果计算机视觉模型只检测到图片中的人、大象、栅栏、树木等,我们通常不会认为模型已经理解了图片,而该模型也无法根据理解做出更高级的决策,例如发出「禁止投喂」的警告。
图1:原示例图
事实上,在智慧城市、自动驾驶、智能制造等许多现实世界的AI场景中,除了对场景中的目标进行定位外,我们通常还期待模型对图像中各个主体之间的关系进行推理和预测。例如,在自动驾驶应用中,自动车需要分析路边的行人是在推车还是在骑自行车。根据不同的情况,相应的后续决策可能都会有所不同。
而在智能工厂场景中,判断操作员是否操作安全正确也需要监控端的模型有理解主体之间关系的能力。大多数现有的方法都是手动设置一些硬编码的规则。这使得模型缺乏泛化性,难以适应其他特定情况。
场景图生成任务(scene graph generation,或SGG)就旨在解决如上的问题。在对目标物体进行分类和定位的要求之上,SGG任务还需要模型预测对象之间的关系(见图 2)。
图2:场景图生成
传统场景图生成任务的数据集通常具有对象的边界框标注,并标注边界框之间的关系。但是,这种设置有几个固有的缺陷:
(1)边界框无法准确定位物体:如图2所示,边界框在标注人时不可避免地会包含人周围的物体;
(2)背景无法标注:如图2所示,大象身后的树木用bounding box标注,几乎覆盖了整个图像,所以涉及到背景的关系无法准确标注,这也使得场景图无法完全覆盖图像,无法达到全面的场景理解。
因此,作者提出全场景图生成(PSG)任务,携同一个精细标注的大规模PSG数据集。
图3:全场景图生成如图 3 所示,该任务利用全景分割来全面准确地定位对象和背景,从而解决场景图生成任务的固有缺点,从而推动该领域朝着全面和深入的场景理解迈进。
Paper link: https://arxiv.org/abs/2207.11247Project Page: https://psgdataset.org/OpenPSG Codebase: https://github.com/Jingkang50/OpenPSGCompetition Link: https://www.cvmart.net/race/10349/baseECCV’22 SenseHuman Workshop Link: https://sense-human.github.io/HuggingFace Demo Link: https://huggingface.co/spaces/ECCV2022/PSG
作者提出的PSG数据集包含近五万张coco的图片,并基于coco已有的全景分割标注,标注了分割块之间的关系。作者精细地定义了56种关系,包括了位置关系(over,in front of,等),常见的物体间关系(hanging from等),常见的生物动作(walking on,standing on,等),人类行为(cooking等),交通场景中的关系(driving,riding等),运动场景中的关系(kicking等),以及背景间关系(enclosing等)。作者要求标注员能用更准确的动词表达就绝不用更模糊的表达,并且尽可能全地标注图中的关系。
PSG模型效果展示
作者通过下图的例子再次理解全场景图生成(PSG)任务的优势:
左图来自于SGG任务的传统数据集Visual Genome (VG-150)。可以看到基于检测框的标注通常不准确,而检测框覆盖的像素也不能准确定位物体,尤其是椅子,树木之类的背景。同时,基于检测框的关系标注通常会倾向于的标注一些无聊的关系,如「人有头」,「人穿着衣服」。
相比之下,右图中提出的 PSG 任务提供了更全面(包括前景和背景的互动)、更清晰(合适的物体粒度)和更准确(像素级准确)的场景图表示,以推动场景理解领域的发展。
为了支撑提出的PSG任务,作者搭建了一个开源代码平台OpenPSG,其中实现了四个双阶段的方法和两个单阶段的方法,方便大家开发、使用、分析。
双阶段的方法利用Panoptic-FPN在第一阶段中对图像进行全景分割。
接下来作者提取全景分割得到的物体的特征以及每一对物体融合的关系特征,送至下一阶段的关系预测阶段。框架已集成复现了传统场景图生成的经典方法IMP,VCTree,Motifs,和GPSNet。
PSGFormer是基于双decoder DETR的单阶段方法。模型首先在a)中通过卷积神经网络backbone提取图片特征并加以位置编码信息作为编码器的输入,同时初始化一组用以表示三元组的queries。与DETR类似地, 在b)中模型将编码器的输出作为key和value与表示三元组的queries一同输入解码器进行cross-attention操作。随后模型在c)中将解码完成的每个query分别输入主谓宾三元组对应的预测模块,最后得到对应的三元组预测结果。
PSGFormer基于双decode的DETR的单阶段方法。模型在a) 通过CNN提取图片特征,加以位置编码信息输入编码器,同时初始化了两组queries分别代表物体和关系。接着在b)步骤里,模型基于编码器编码的图片信息,分别在物体解码器和关系编码器中通过cross-attention解码学习物体query和关系query。
当两类query均学习完毕后,在c)中通过映射后匹配,得到成对的三元组query。最后在d)中通过预测头分别完成关于物体query和关系query的预测,并根据c)中的匹配结果得到最终的三元组预测结果。
PSGTR与PSGFormer都是在DETR的基础上进行扩展和改进的模型,不同的地方在于PSGTR用一组query对于三元组直接建模而PSGFormer则通过两组query分别对物体和关系建模,两种方法各有利弊,具体可参考论文中实验结果。
大部分在SGG任务上有效的方法在PSG任务上依旧有效。然而有一些利用较强的数据集统计先验,或主谓宾中谓语方向先验的方法可能没那么奏效。这可能是由于PSG数据集相较于传统VG数据集的bias没有那么严重,并且对谓语动词的定义更加清晰可学。因此,作者希望后续的方法关注视觉信息的提取和对图片本身的理解。统计先验可能在刷数据集上有效,但不本质。
相比于双阶段模型,单阶段模型目前能达到更好的效果。这可能得益于单阶段模型有关于关系的监督信号可以直接传递到feature map端,使得关系信号参与了更多的模型学习,有利于对关系的捕捉。但是由于本文只提出了若干基线模型,并没有针对单阶段或双阶段模型进行调优,因此目前还不能说单阶段模型一定强于双阶段模型。这还希望参赛选手继续探索。
相比于传统的SGG任务,PSG任务基于全景分割图进行关系配对,要求对于每个关系中主宾物体的id 进行确认。相比于双阶段直接预测全景分割图完成物体id 的划分,单阶段模型需要通过一系列后处理完成这一步骤。若基于现有单阶段模型进一步改进升级,如何在单阶段模型中更有效的完成物体id的确认,生成更好的全景分割图,仍是一个值得探索的话题。
最后,欢迎大家试用HuggingFace:
Demo:https://huggingface.co/spaces/ECCV2022/PSG
最近大火的基于文字输入的生成模型(如DALL-E 2) 着实令人惊叹,但是也有研究表明,这些生成模型可能只是把文本中的几个实体粘合在一起,甚至都没有理解文本中表述的空间关系。如下图,虽然输入的是「杯子在勺子上」,生成的图片仍然都是「勺子在杯子里」。
正巧,PSG数据集标注了基于mask的scene graph关系。作者可以利用scene graph和全景分割mask作为训练对,得到一个text2mask的模型,在基于mask生成更细致的图片。因此,PSG数据集有可能也为注重关系的图像生成提供了潜在的解决方案。
P.S. 旨在激励领域共同探索全面的场景识别的「PSG Challenge」火热进行中,百万奖金等你来拿!Competition Link: https://www.cvmart.net/race/10349/base
以上是南洋理工提出全场景图生成PSG任务,像素级定位物体,还得预测56种关系的详细内容。更多信息请关注PHP中文网其他相关文章!