【场景图生成】Graphical Contrastive Losses for Scene Graph Parsing

2023-05-16

文章下载地址:Graphical Contrastive Losses for Scene Graph Parsing

代码地址:https://github.com/NVIDIA/ContrastiveLosses4VRD

发表地点:CVPR 2019

1 内容概括

现在常有的场景图生成方法,针对关系检测仍存在一定的问题

例如无法确定关系对应的实体,以及两个实体之间的具体关系

作者针对此问题,提出了对应的contrastive loss构建方法 以及 一个融合了三个模块的关系检测网络

通过这两个步骤的改进,作者在VG以及VRD这两个数据集上做到了sota的效果

2 研究背景

任务:Scene Graph Parsing,也就是场景图生成,输出多组三元组关系<subject, predicate, object>

现有方法:双阶段,实体检测-->关系预测,关系预测往往是一个多分类问题

问题1:Entity Instance Confusion,例如(a)所示,有很多同样类别的subject和object,无法区分和关系相连的是哪一个实体

问题2:Proximal Relationship Ambiguity,例如(b)所示,有很多类似的关系relation,无法区分正确的关系连接方式

难点:对于所有类型的关系,可以自动学习确定视觉关系的精细细节,并明确区分相关实体和不相关实体

成果:relationship detector 关系检测网络, Graphical Contrastive Loss 损失计算方法

3 图像的对比损失

对比损失将由三部分组成

下述定义表示为subject以及object之间的关系强弱

3.1 Class Agnostic Loss

对于entity pair,不论他们的关系,只从类别角度计算对比损失

拉大不同实体之间的距离,保证实体检测的准确性

类似matching问题中常用的triplet loss,最大化最小的正样例连接关系,最小化最大的负样例连接关系

最后的Loss为,其中N表示entity的类别数

3.2 Entity Class Aware Loss

解决entity instance confusion这个问题,保证一个实体在对于多个候选类似类别的实体时,选择出对应关系对应的正确的另一个实体

这一个损失可以看作3.1的扩展,但是指定了所属的类别

即最大化所属相同类别的实体之间的距离,其中的类别由谓词关系确定,object以及subject不确定

3.3 Predicate Class Aware Loss

为了解决proximal relationship ambiguity这个问题,保证模型在有了pait-entity后可以找到准确的关系内容

这一个损失可以看作3.1的扩展,但是指定了所属的类别,与3.2不同,其中relation关系内容不确定

3.4 总损失

最后的训练损失就是上述三部分相加,以及predicate class的多分类问题产生的交叉熵损失

4 关系检测网络

和别的网络检测实体后直接进行分分类不同不同的地方在于,有一个分支去检测realtion对应的视觉内容

​4.1 Semantic Module

这个模块计算了给定subject以及object类别后,得到pred类别的可能性

4.2 Spatical Module

从空间信息出发,作者通过使用框增量和归一化坐标对subject和object的框坐标进行编码来捕获空间信息

bounding box的归一化计算方式如下所示

其中对应的视觉特征可以表示为

输出的视觉特征以及对应的位置信息表示为

然后输入到MLP后得到谓词关系的class logit score

4.3 Visual Module

将三部分的特征通过ROI提取出来,然后利用MLP进行特征融合

最后通过softmax将三部分相加的结果进行归一化,选取最大可能性的类别

5 实验结果

作者在OpenImage Relationship Detection Challenge上超越了之前的方案,并且而在Visual Genome以及Visual Relationship Detection数据集上做到了sota的效果

在vrd上的表现如下表所示

其中detector的weights在别的数据集上进行初始化得到

具体的消融实验以及分析在文章中也很详细

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【场景图生成】Graphical Contrastive Losses for Scene Graph Parsing 的相关文章

  • 【已解决】mmcv/_ext.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28TypeMeta21_typeMetaData

    问题描述 使用MMDetection复现论文 xff0c 出现如下Bug xff1a ImportError home quaiping anaconda3 lib python3 7 site packages mmcv ext cpyt
  • g2o图优化简介与基本使用方法

    一 g2o简介 g2o xff08 General Graphic Optimization xff09 是一个基于图优化的库 xff0c 将非线性优化与图论结合起来的理论 xff0c 我们可以利用g2o求解任何可以表示为图优化的最小二乘问
  • Realsense安装使用过程问题汇总

    1 安装失败内核不支持 问题 xff1a 由于我在Ubuntu20 04上进行安装 xff0c 内核版本为5 13 xff0c 而目前realsense最高仅支持到5 4 xff0c 所以内核版本过高需要降低内核版本才能再次编译安装 官方要
  • ROS与STM32通信的实现

    ROS功能包与STM32工程文件 xff1a 蓝奏云 xff1a https huffie lanzouw com iN7w602ti37a 1 通信协议 STM32和ROS端各有一个数据发送函数和数据接收函数 xff0c 发送和接受的数据
  • C语言 字符串最后一位可用’\0‘标示

  • 基于C#的工控上位机软件开发从入门到学废,需要几步?

    基于C 的工控上位机软件开发从入门到学废 xff0c 需要几步 xff1f 随着工控产品的应用 xff0c 开始大幅度渗透进民用领域 涉及的工控产品范围广泛 xff0c 如PLC DCS 变频器 仪表 电机 SCADA 低压及配电元器件等
  • 工作生活篇之第六天

    工作生活篇之第六天 最近由于疫情的影响 xff0c 国家电网也发布了最新消息 xff0c 电费在欠额的情况可继续使用 本来我是以为只有电费欠费可以继续使用 xff0c 没想到燃气费也是 xff0c 最近燃气费不多了 xff0c 然后还得去银
  • 工作生活篇之第九篇

    工作生活篇之第九篇 一直觉得这世上告别仪式挺多的 xff0c 比如喝酒 旅行 xff0c 或干脆痛哭一场 xff0c 可是后来才知道 xff0c 人生中大部分告别是悄无声息的 xff0c 原来某天的相见 xff0c 竟已是最后一面 xff0
  • ROS:查看ROS相关信息的常用方法(三)

    文章目录 一 ROS命令与节点话题查看1 rosnode2 rostopic3 rostopic info 话题名称4 rosrun rqt graph rqt graph 二 rqt工具与节点话题查看 一 ROS命令与节点话题查看 1 r
  • 【算法】基于STM32的MPU6050卡尔曼滤波算法(入门级)

    1 简介 卡尔曼滤波 xff08 Kalman filtering xff09 是一种利用线性系统状态方程 xff0c 通过系统输入输出观测数据 xff0c 对系统状态进行最优估计的算法 由于观测数据中包括系统中的噪声和干扰的影响 xff0
  • 爬虫的爬取策略: 宽度优先与深度优先

    64 爬取策略 xff1a 宽度优先与深度优先 1 分别的优缺点 2 什么场景下用 xff1f 爬虫的抓取策略 在爬虫系统中 xff0c 待抓取URL队列是很重要的一部分 待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题 x
  • shell脚本内调用另外一个shell脚本的几种方法

    有时会在一个shell脚本 如test call other shell sh 中调用另外一个shell脚本 如parameter usage sh xff0c 这里总结几种可行的方法 xff0c 这些方法在linux上和windows上
  • 真实项目开发的input标签焦点事件运用

    真实项目开发中input标签焦点事件的运用 开发工具与关键技术 xff1a VisualStudio C 作者 xff1a 落白 撰写时间 xff1a 2019 6 15 在开发项目时有时候会需要这么一个功能效果 xff0c 比如有六个in
  • layui use 定义js外部引用函数

    layui use 加载layui define 定义的模块 xff0c 当外部 js 或 onclick调用 use 内部函数时 xff0c 需要在 use 中定义 window 函数供外部引用 window span class tok
  • shell脚本中内嵌可执行文件/文件

    示例 test sh span class token operator span span class token operator span bin span class token operator span sh 追加在shell脚
  • 浅谈嵌入式

    浅谈嵌入式 相比耳熟能详的互联网行业 xff0c 嵌入式这几个字眼出现在公众眼前的几率可以达到忽略不计的程度 xff0c 这不仅说明嵌入式行业的工程师数量远比互联网少 xff0c 同时意味着嵌入式行业的吸引力貌似低于互联网 但是 xff0c
  • C语言系列(一):C语言程序概述

    C语言作为一种高级程序设计语言 xff0c 既有高级语言的方便性 灵活性和通用性等特点 xff0c 又兼具低级语言的特性 xff0c 提供程序员直接操作计算机硬件的功能 适合各种类型的软件开发 xff0c 深受软件工程技术人员的青睐 嵌入式
  • C语言系列(三):基本数据类型与表达式

    计算机中的数据不单是简单的数字 xff0c 所有计算机处理的信息 xff0c 包括文字 声音 图像等都是以一定的数据形式存储的 xff0c 数据在内存中保存 xff0c 存放的情况由数据类型决定 C语言的数据类型 基本类型 xff1a 整型
  • C语言系列(四): 分支结构程序设计

    选择结构是程序设计3种基本结构之一 xff0c 通过判定给定的条件是否成立选择需要执行的操作 C语言提供了条件语句 if语句和switch语句 用以实现选择结构的程序设计 xff0c 条件通常用关系表达式或逻辑表达式表示 C语言提供3种逻辑
  • C语言系列(五):循环结构程序设计

    循环结构是结构化程序设计的基本结构之一 xff0c C语言提供了三种循环结构语句 while语句 xff0c do while语句和for语句 for语句在C语言系列 xff08 二 xff09 xff1a 用C语言编写程序已经讲解 xff

随机推荐

  • C语言系列(六):函数与预编译处理

    模块化程序设计方法 在程序设计与开发中 xff0c 随着解决问题的复杂化 xff0c 编写程序的代码也更加复杂 一方面 xff0c 大量的程序语句会使程序的逻辑结构产生混乱 xff0c 给程序的编写 阅读和维护带来困难 xff1b 另一方面
  • Linux驱动开发经典面试简答题

    1 Linux设备中字符设备与设备有什么主要的区别 xff1f 请分别举例一些实际的设备说出它们是哪一类设备 字符设备 xff1a 字符设备是个能够像字节流 xff08 类似文件 xff09 一样被访问的设备 xff0c 由字符设备驱动程序
  • CMake中cmake_host_system_information的使用

    CMake中的cmake host system information命令用于查询各种主机系统信息 xff0c 其格式如下 xff1a cmake host system information RESULT lt variable gt
  • 一文知晓嵌入式Linux

    嵌入式Linux是什么 嵌入式Linux跟桌面Linux一样 xff0c 是一个操作系统 从单片机走过来的童鞋往往习惯于直接控制寄存器 xff0c 事必躬亲 xff0c 从零开始实现想要的功能 而在嵌入式Linux的世界里 xff0c 我们
  • 修改i.mx6ull Linux内核 启动logo

    1 制作Linux内核需要的开机logo xff08 ppm格式 xff09 1 1在Ubuntu系统上安装netpdm工具 命令如下 xff1a span class token macro property sudo apt get i
  • keil5编译错误error: #5: cannot open source input file “core_cm3.h“: No such file or directory

    用Keil vision5编译时出现 xff1a error 5 cannot open source input file core cm3 h No such file or directory 可能是MDK版本太新了 xff0c 我装
  • IPv6基础详解

    IPv6 由于internet规模的扩大 xff0c IPv4地址空间已经消耗殆尽 xff0c IETF在90年代提出了下一代互联网协议IPv6 xff0c IPv6支持几乎无限的地址空间 xff0c 并且配置更加简单 xff0c IPv6
  • Pycharm中debug使用学习

    1 运行环境 1 1 运行 xff1a 先确认项目运行环境 点击右下角python查看 向任务中添加环境 xff0c 一般加入anaconda的环境 xff0c 配置方便 切换到自己所需环境 添加运行环境 初次搭建 xff0c 哔哩哔哩中新
  • 对项目的梳理、流程和总结

    过程 我在制作 中国汽车技术研究中心 的一个演讲PPT前 xff0c 也已经有第一版的基础了 xff0c 不过 xff0c 第一版的PPT客户并不满意 xff0c 因为这个风格不是客户想要的 xff0c 所以客户对第一版的PPT并不是很满意
  • 【ROS】xxx is neither a launch file in package xxx nor is xxx a launch file name……解决

    在ros中新增加一个功能包时 xff0c 如果没有处理得当的话 xff0c 在执行时很有可能报如下错误 xff1a xxx is neither a launch file in package xxx nor is xxx a launc
  • FreeRTOS——流和消息缓冲区

    FreeRTOS 基础系列文章 基本对象 FreeRTOS 任务 FreeRTOS 队列 FreeRTOS 信号量 FreeRTOS 互斥量 FreeRTOS 任务通知 FreeRTOS 流和消息缓冲区 FreeRTOS 软件定时器 Fre
  • FreeRTOS——静态与动态内存分配

    FreeRTOS 基础系列文章 基本对象 FreeRTOS 任务 FreeRTOS 队列 FreeRTOS 信号量 FreeRTOS 互斥量 FreeRTOS 任务通知 FreeRTOS 流和消息缓冲区 FreeRTOS 软件定时器 Fre
  • CAS 6.5.5项目初始化搭建运行

    一 项目背景介绍 公司项目重构 xff0c 决定使用CAS中央认证系统 在GitHub上找到最新的稳定版本6 5 5 CAS项目在5 x版本的运行环境是jdk8 xff0c 使用maven做的项目管理 6 x使用的是jdk11作为运行环境
  • GoogleTest中gMock的使用

    GoogleTest中的gMock是一个库 xff0c 用于创建mock类并使用它们 当你编写原型或测试 prototype or test 时 xff0c 完全依赖真实对象通常是不可行或不明智的 not feasible or wise
  • 基于Autoware制作高精地图(一)

    基于Autoware制作高精地图 xff08 一 xff09 开始进入正题 xff0c 也是最近在忙的一件事 xff0c 制作高精地图 高精地图的制作大概分为以下四个流程 xff08 不一定完全正确 xff09 xff1a 1 构建点云地图
  • Ubuntu sh文件编写,开多终端,自动读取密码

    Ubuntu sh文件编写 xff0c 开多终端 xff0c 自动读取密码 开启多个终端自动读取密码 在最近的项目调试中经常需要开多个终端启动多个launch xff0c 这样的操作多了难免会感到烦躁并且时间一长再回去使用一些功能包的时候就
  • 控制理论——自动控制原理若干概念

    1 对自动控制系统的基本要求 稳定性 被控量因扰动偏离期望值后 xff0c 经过过渡过程可以恢复到原来的期望值状态 快速性 包含两方面 xff1a 过渡过程的时间 最大超调量 xff08 震荡幅度 xff09 准确性 指稳态误差 xff1a
  • Optitrack下通过mavros实现offbord控制

    参考文章 xff1a 树莓派通过MAVROS与Pixhawk PX4通信 PX4使用Optitrack进行室内定位 通过optitrack与妙算连接在同一局域网下 xff0c 关闭防火墙 xff0c 并设置刚体发布 vrpn安装 cd ca
  • 【场景图生成】Unbiased Scene Graph Generation from Biased Training

    文章下载地址 xff1a https arxiv org pdf 2002 11949 pdf 代码地址 xff1a GitHub KaihuaTang Scene Graph Benchmark pytorch 发表地点 xff1a CV
  • 【场景图生成】Graphical Contrastive Losses for Scene Graph Parsing

    文章下载地址 xff1a Graphical Contrastive Losses for Scene Graph Parsing 代码地址 xff1a https github com NVIDIA ContrastiveLosses4V