当前位置: 首页 > news >正文

ICCV 2023 | 半监督三维目标检测新SOTA:密集匹配和量化补偿

image.png

论文链接:https://arxiv.org/abs/2304.13031
开源代码仓库地址:https://github.com/AIR-DISCOVER/DQS3D

viz_result 1.png
方法效果对比图:有效在半监督情况下处理临近小物体

01. 简介

本文旨在解决三维室内场景中高昂的标注成本问题,特别关注半监督条件下的三维物体检测。为了解决这一问题,我们采用了强大的自学习框架,该框架在半监督学习中取得了显著进展。虽然这种方法在图像级别或像素级别预测方面表现出色,但在目标检测问题中,目标 Proposal 匹配(后文皆称为候选框匹配)的挑战依然存在。

目前的方法通常采用两阶段流程,第一阶段对生成的候选框进行启发式选择,然后进行匹配,导致训练信号在空间上呈现稀疏分布的特点。与之不同的是,我们提出了一种单阶段的半监督三维检测算法,通过此算法,我们可以在空间上获得密集的监督信号。

然而,我们的算法也面临一个基础问题,即点到体素离散化引起的量化误差,这必然导致体素域中两个不同数据增广视图之间的不对齐。为了解决这个问题,我们推导并实现了一种闭式解,可以在线地补偿这种不对齐现象。通过这个方法,我们取得了显著的成果,例如,仅使用 20% 的标注数据,我们就成功将 ScanNet 的 mAP@0.5 从 35.2% 提升至 48.5%。

02. 方法

2.1 密集匹配

为了解决半监督三维物体检测任务,基于教师-学生网络(Mean Teachers)的自训练方法强制学生网络和教师网络的预测保持一致。因此,建立在数据增广对齐视图意义下的学生和教师预测之间的映射是至关重要的,我们称之为匹配

densematching_new.png

以前的自训练方法 SESS 和 3DIoUMatch 采用候选框匹配来对齐学生网络和教师网络的预测对象(称为候选框),通常通过最近中心策略完成。更具体地说,每个教师候选框与其中心最接近的学生候选框对齐,如图中所示。请注意,虚线框仅用于展示教师输出的空间位置。 尽管教师候选框通常比学生候选框更准确,但我们认为候选框匹配是欠佳的,可能会阻碍从教师到学生的知识传递。这种无效性主要归因于图中所示的两种不利情况,这是由于空间中候选框的稀疏性不可避免造成的:(1)相邻的教师候选框对齐到同一个学生候选框,导致对学生的监督模糊。(2)与任何教师候选框相距较远的学生候选框对齐失败,无法从教师候选框获得监督。

为了解决上述问题,一个充分条件是学生和教师预测之间具有双射关系。我们注意到现在流行的目标检测器是在空间上稠密的,即可以逐体素地进行物体预测的启发。同时,学生和教师视图的体素锚点在空间上是相互对应的。因此,我们提出了一种叫做“密集匹配”的方法,它简单地将相应体素锚点处的预测进行配对。我们相信密集匹配方案具有以下优势:

  1. 每个预测对象由多个边界框预测来表示,其回归得分在不同的体素锚点处有所变化,这种现象对密集预测模型施加空间正则化,并提高了模型对局部几何的感知能力。

  2. 通过体素锚点的对应关系,学生和教师预测之间所需的双射关系自然建立。

这消除了前面提到的两种不利情况。基于密集匹配的优势,我们在下一节中提出了一个专门针对密集匹配方案的自训练框架。

2.2 自训练框架

main_new.png

2.3 量化误差及其解决方案

qec_new.png

03. 实验

继承 SESS 和 3DIoUMatch对于半监督三维物体检测的研究,我们使用 ScanNet v2 和 SUN RGB-D 数据集对我们的框架进行了评估。

首先,我们比较了我们提出的密集匹配方法和传统的稀疏的候选框匹配方法之间的差异。 我们通过展示密集匹配策略生成的伪标签的数量和质量来验证我们提出方法的优越性,展示结果如下:

image20230731223644126.png
密集匹配策略生成的伪标签的数量和质量

从上图中可以看到,与之前的几种方法相比,我们的方法能够生成更多更具质量的伪标签,从而自然地,在半监督三维物体检测中表现更优异的性能:

image20230731223658256.png
与之前方法的性能对比表

我们在 ScanNet 和 SUN RGB-D 数据集上进行了广泛的实验,并报告了 DQS3D 及先前方法在半监督和全监督设置下的性能。 在半监督设置中,我们对训练集的不同部分(5%,10% 和 20%)进行标记。 我们在标记和未标记的数据集上都施加了一致性损失。 而在全监督设置中,我们将整个数据集都视为标记和未标记的数据集,以检查我们提出的框架是否能够从伪标签的额外监督中进一步学习。实验结果见上表。

从表中我们可以看到,我们的方法在半监督三维物体检测的基准测试中,对于 ScanNet 和 SUN RGB-D 数据集均大幅超越了先前的候选框匹配方法,并取得了新的最先进结果。 值得注意的是,mAP@0.50 的提升普遍比 mAP@0.25 的提升更大。 我们将这归因于我们的框架产生的伪标签的密集性,它为学生模型在空间上提供了更精细的监督信号。 这样,预测的物体边界框在更大程度上与目标物体重叠,有助于在更高的 IoU 阈值下实现更明显的性能提升。

然后,我们做了一系列消融实验,来证明我们提出的每个部件的有效性。

image20230731223713872.png
对于量化误差校正模块的消融实验

量化误差校正模块。 为了展示我们提出的量化误差校正(QEC)模块的有效性,我们在 ScanNet 数据集上进行了实验(其中 20% 的训练集带有标签)。在实验中,我们使用不同的体素大小来训练我们的提出框架,并对是否施加校正项进行对比实验。除了在“验证”集上的 mAP@{0.25,0.50} 之外,我们还报告了“有标签训练”集上预测的边界框与目标真实边界框之间的加权 IoU。物体的权重由预测的中心性度量值决定。

我们的实验结果如上表所示。 值得注意的是,在所有的体素大小下,使用校正项进行训练的实验性能都比没有使用该项的实验性能更高(最高可达 +2.49% IoU)。 这些非常显著的提升表明了量化误差校正(QEC)模块在解决量化误差这个固有问题上的有效性,从而提高了检测的准确性。

image20230731223738642.png

image20230731223725625.png

一致性损失。 我们在带有 20% 标签数据的 ScanNet 数据集上进行了一致性损失的对比实验。 实验结果如上表所示。 根据结果显示,缺失了边界框预测参数的一致性损失对性能影响最大,mAP@0.25 下降了 2.0%,mAP@0.50 下降了 3.2%,而其他两个一致性损失的缺失也会导致性能下降。 这些结果表明,提出的一致性损失的每个组成部分都是必要的。

04. 总结

本论文提出了 DQS3D 这一自学习半监督三维物体检测框架。与传统的 Proposal 匹配方法不同,DQS3D 利用了密集匹配,并且解决了量化误差的问题,在半监督条件下,在两个广泛使用的基准数据集 ScanNet v2 和 SUN RGB-D 上取得了显著的改进。

此外,论文还提供了证据表明,使用密集预测可以产生更有意义的伪标签,并促进自学习的效果。我们希望本文介绍的方法论和基本技术能够促进更多未来半监督学习领域的研究。

作者:高焕昂


 关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

相关文章:

ICCV 2023 | 半监督三维目标检测新SOTA:密集匹配和量化补偿

论文链接:https://arxiv.org/abs/2304.13031 开源代码仓库地址:https://github.com/AIR-DISCOVER/DQS3D 方法效果对比图:有效在半监督情况下处理临近小物体 01. 简介 本文旨在解决三维室内场景中高昂的标注成本问题,特别关注半监…...

python+django+mysql项目实践三(用户管理)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 用户列表展示 urls view models html <!DOCTYPE html> <html...

Java多线程 | 操作线程的方法详解

文章目录 一、线程的启动1.1 start()方法 二、线程的休眠与中断2.1 Thread.sleep()方法2.2 interrupt()方法 三、线程的等待与唤醒3.1 wait()方法3.2 Object类的notify()和notifyAll()方法3.3 await()和signal()方法3.4 使用join()方法等待线程执行完成 四、线程的状态控制与管…...

【ConcurrentHashMap1.7源码】十分钟带你深入ConcurrentHashMap并发解析

ConcurrentHashMap1.7源码 四个核心要点 初始化PUT扩容GET Unsafe 初始化 五个构造方法 /*** Creates a new, empty map with the default initial table size (16).*/public ConcurrentHashMap() {}/*** Creates a new, empty map with an initial table size* accommodati…...

程序框架-事件中心模块-观察者模式

一、观察者模式 1.1 观察者模式定义 意图&#xff1a; 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变是&#xff0c;所有依赖于它的对象都能得到通知并自动更新。 适用性&#xff1a; 当一个对象状态的改变需要改变其他对象&#xff0c; 或实际对…...

通过AOP的ProceedingJoinPoint获取方法信息

文章目录 ProceedingJoinPoint用法 ProceedingJoinPoint用法 获得切点对应的方法&#xff08;Method&#xff09; 本处Method指的是java.lang.reflect.Method 若切入点表达式是方法&#xff0c;则获得的是切入点方法的信息。若切入点表达式是注解&#xff0c;则获得的是使用了…...

【JavaSE】初步认识类和对象

【本节目标】 1. 掌握类的定义方式以及对象的实例化 2. 掌握类中的成员变量和成员方法的使用 3. 掌握对象的整个初始化过程 目录 1. 面向对象的初步认知 2. 类定义和使用 3. 类的实例化 4. this引用 1. 面向对象的初步认知 1.1 什么是面向对象 Java是一门纯面向对象的语…...

python中的matplotlib画饼图(数据分析与可视化)

直接开始 1、先安装pandas和matplotlib pip install pandas pip install matplotlib2、然后在py文件中导入 import pandas as pd import matplotlib.pyplot as plt3、然后直接写代码 import pandas as pd import matplotlib.pyplot as pltpd.set_option("max_columns&…...

用Rust实现23种设计模式之 职责链模式

关注我&#xff0c;学习Rust不迷路&#xff01;&#xff01; 优点 解耦&#xff1a;职责链模式将请求发送者和接收者解耦&#xff0c;使得多个对象都有机会处理请求&#xff0c;而不是将请求的发送者和接收者紧密耦合在一起。灵活性&#xff1a;可以动态地改变或扩展处理请求…...

进销存管理中的技术创新和数字化转型

在进销存管理中&#xff0c;技术创新和数字化转型可以通过以下具体的应用案例来实现&#xff1a; 自动化仓储系统&#xff1a;利用自动化技术和机器人系统来管理仓库操作&#xff0c;包括货物的装卸、分拣和存储。这可以提高仓库的运作效率&#xff0c;减少人力成本&#xff0…...

与“云”共舞,联想凌拓的新科技与新突破

伴随着数字经济的高速发展&#xff0c;IT信息技术在数字中国建设中起到的驱动和支撑作用也愈发凸显。特别是2023年人工智能和ChatGPT在全球的持续火爆&#xff0c;更是为整个IT产业注入了澎湃动力。那么面对日新月异的IT信息技术&#xff0c;再结合疫情之后截然不同的经济环境和…...

【超细节】Vue3组件事件怎么声明,defineEmits与emit

目录 前言 一、基本语法 1. 子组件触发 2. 父组件监听 二、 事件参数 1. 传值 2. 接收值 三、 事件校验 四、注意事项 前言 组件事件是 Vue 组件之间进行通信的一种方式。它允许一个组件触发一个自定义事件&#xff0c;并且其他组件可以监听并响应这个事件。 一、基本…...

java Selenium 实现简单的网页操作

官方文档&#xff1a;入门指南 | Selenium Selenium是一个用于Web应用测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 所以使用这个前端测试话工具&#xff0c;可以自动化做很多事情&#xff0c;比如自动化抓取网页内容&#xff0c;俗称网…...

(数据库系统概论|王珊)第一章绪论-第一节:数据库系统概论

目录 一&#xff1a;四大基本概念 &#xff08;1&#xff09;数据(Data) &#xff08;2&#xff09;数据库(DataBase,DB) &#xff08;3&#xff09;数据库管理系统(DataBase Management System,DBMS) &#xff08;4&#xff09;数据库系统(Database System&#xff0c;DBS…...

深入理解TCP三次握手:连接可靠性与安全风险

目录 导言TCP简介和工作原理的回顾TCP三次握手的目的和步骤TCP三次握手过程中可能出现的问题和安全风险为什么TCP三次握手是必要的&#xff1f;是否可以增加或减少三次握手的次数&#xff1f;TCP四次挥手与三次握手的异同点 导言 在网络通信中&#xff0c;TCP&#xff08;Tra…...

基于人工智能的智能矿山解决方案

什么是智能矿山&#xff1f; 智能矿山是一种运用先进技术和智能化系统来管理和监控矿山运营的概念。它利用传感器、无线通信、数据分析和人工智能等技术&#xff0c;实现对矿山内部各个环节的实时监测、自动化控制和智能决策&#xff0c;从而提高矿山的效率、安全性和可持续性。…...

vue-cli3项目优化

首先添加两个量化的插件&#xff0c;方便对项目目前的情况进行分析&#xff1a; 1.添加speed-measure-webpack-plugin插件 —量化的指标可以看出前后对比 使用步骤&#xff1a; 安装speed-measure-webpack-plugin依赖 npm install speed-measure-webpack-plugin -D配置vue.c…...

Windows环境下VSCode安装PlatformIO Cero报错ERROR: HTTP error 403 while getting

安装PlatformIO插件成功&#xff0c;初始化失败 错误信息判断问题尝试访问https://pypi.tuna.tsinghua.edu.cn/simple/platformio/成功点击文件后报错如下&#xff1a; 解决问题- 换源 &#xff08; Windows下有两个地方需要更改&#xff09;cmd命令行Pip文件 总结&#xff1a;…...

git bash 安装sdkadmin

1.下载相关安装包,复制到git 安装目录 D:\software\Git\mingw64\bin 2. 运行 curl -s "https://get.sdkman.io" | bash...

如何在IEEE论文中添加伪代码pseudocode

前言 记录写论文过程中需要重复用的一些小技巧&#xff1a; 一、如何在IEEE论文中添加伪代码pseudocode pseudocode是经常需要在论文中使用的流程图&#xff0c;掌握如何写伪代码图是必须得。 1.引入库 代码如下&#xff08;示例&#xff09;&#xff1a; # 头部添加不可少的…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

简单介绍C++中 string与wstring

在C中&#xff0c;string和wstring是两种用于处理不同字符编码的字符串类型&#xff0c;分别基于char和wchar_t字符类型。以下是它们的详细说明和对比&#xff1a; 1. 基础定义 string 类型&#xff1a;std::string 字符类型&#xff1a;char&#xff08;通常为8位&#xff09…...

未授权访问事件频发,我们应当如何应对?

在当下&#xff0c;数据已成为企业和组织的核心资产&#xff0c;是推动业务发展、决策制定以及创新的关键驱动力。然而&#xff0c;未授权访问这一隐匿的安全威胁&#xff0c;正如同高悬的达摩克利斯之剑&#xff0c;时刻威胁着数据的安全&#xff0c;一旦触发&#xff0c;便可…...

Excel 怎么让透视表以正常Excel表格形式显示

目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总...