热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【论文阅读】【半监督3D目标检测】SESS:SelfEnsemblingSemiSupervised3DObjectDetection

前言:《SESS:Self-EnsemblingSemi-Supervised3DObjectDetection》CVPR2020Oral 新加坡国立大学出品论文地址:https:


前言:

《SESS: Self-Ensembling Semi-Supervised 3D Object Detection》

CVPR2020 Oral 

新加坡国立大学出品

论文地址:https://openaccess.thecvf.com/content_CVPR_2020/papers/Zhao_SESS_Self-Ensembling_Semi-Supervised_3D_Object_Detection_CVPR_2020_paper.pdf

Code地址:GitHub - Na-Z/sess: Implementation of " SESS: Self-Ensembling Semi-Supervised 3D Object Detection" (CVPR2020 Oral)

解决的问题及对应贡献


  • 半监督框架的3D点云目标检测算法

核心思想:

网络结构为典型自监督网络Mean Teacher paradigm,包含学生网络和老师网络,其中学生网络接收扰动点云,而老师网络接收原始点云,利用提出的一致性损失(自监督损失)使两个网络的输出结果靠近,以达到提出关键信息的目的。

在votenet的基础上用了半监督框架,然后添加了一致性损失。


文章解读


1.摘要:

现有的基于点云的三维对象检测方法的性能严重依赖于大规模高质量的三维注释,然而,这样的注释收集起来往往是乏味且昂贵的。半监督学习是缓解数据注释问题的一个很好的替代方法,但在三维对象检测中在很大程度上仍未被探索。受最近自采样技术在半监督图像分类任务中取得成功的启发,我们提出了一个自采样半监督三维对象检测框架SESS。具体地说,我们设计了一个彻底的摄动方案来增强网络在未标记的和新的看不见的数据上的泛化


2.Introduction:





图1

下图是SESS的结构。在半监督的三维对象检测任务中使用了平均教师范式[22],其中学生和教师网络是3D目标检测头。学生网络以扰动点云为输入,输出3D目标,它表示点云中所有感兴趣对象的估计类别和三维边界框。教师网络以原始点作为输入,输出目标。作者想要来自教师和学生网络的3D对象提案在训练阶段结束时保持一致。





图 2 

 在本图中,一个batch,包括一组标记样本和一组未标记样本(代码中设置为2:8),通过不同的扰动,然后分别输入到学生和教师网络中。将学生网络的预测与同一变换T处理的gt做有监督损失计算,和同一变换T处理的教师预测结果做自监督损失(一致性损失)计算。

采用votenet作为backbone,需要有标记(比如只标了10%)的和未标记的数据混合输入。然后从每个训练点云(即xL或xU)中随机抽取M个点,两次就可以得到两组点。第一组点xs被随机转换T扰动为ˆxs,然后传递给学生网络,而第二组点xt被直接传递给教师网络。教师网络yt的输出是将yt的输出建议进一步转换为ˆyt。对于ˆyt中的每个提案,我们从基于欧几里得距离的学生网络ˆys的输出提案中找到了它最接近的对齐方式。随后,从三个一致性损失计算每个对齐方案对之间的误差。同时,gt:yL(教师网络)在xLs上也应用相同的T进行变换,并将变换后的ˆyL与学生网络ˆyLs的标记输出使用有监督的损失进行比较。最后,通过训练步骤t的梯度下降更新学生网络的参数,然后将学生网络中的更新参数用于指数移动平均(EMA)来更新教师网络的参数Φ

其中,α是一个平滑超参数,它控制教师从学生网络中获取多少信息

下面介绍其扰动方案和一致性损失。

3.3 扰动方案

输入扰动或数据增强对自融合方法的成功起着至关重要的作用。平均教师在基于图像的任务上的摄动方案。图像识别,包括随机平移和输入图像的水平翻转。在输入层上添加高斯噪声,并在网络中应用退出。然而,任何基于图像的扰动方案都不能直接用于我们的基于点云的三维对象检测任务。因此,本文提出了一种适用于基于点云的三维目标检测的摄动方案。

随机子抽样:作为输入点云的一部分,我们对学生和教师网络应用随机子采样,作为我们的摄动方案的一部分,给定点云的两个随机子样本中点的局部几何关系可能有显著差异,但全局几何关系,例如对象的三维边界框的位置,在次采样点中,点云应该保持不变。因此,我们的模型被训练后,通过强迫来自学生和教师网络的随机输出之间的一致性,来利用全局背景下的底层几何图形。

“代码中就是整个场景点云随机采40000个点”

随机变换:我们应用了包括翻转在内的随机转换,对学生网络的随机次采样点云进行旋转和扩展,以防止网络记忆训练点云的意外属性,比如每个点的绝对位置。更具体地说,我们将转换操作表示为一组随机变量:T = {Fx, Fy, R, S}。这里的Fx表示沿x轴的随机翻转,它的二进制值是由

其中,是一个从[0,1]均匀采样的随机变量。Fy表示沿y轴的随机翻转,并且与Fx生成的方式相同。R表示围绕垂直轴的旋转,[−ϑ,+ϑ]均匀采样的旋转角度ω:

S 代表[a、b]中均匀采样的S表示点的缩放。最后,对Ti进行随机采样,并应用于每个输入训练点云xs

ˆxs = Ti ∗ xs。

注意,在计算监督损失之前,被标记的输入点云xLi的地面真值标签yLi也由相应的Ti进行变换,此外,来自教师网络的输出建议yt也由Ti进行转换,以使两个网络的输出之间能够对齐。

3.4 一致性损失:

与在识别任务[22]中直接计算扰动图像的类预测之间的一致性不同,两组三维对象方案之间的一致性不能直接计算。我们通过将来自学生和教师网络的预测方案与对齐方案配对,然后对成对方案应用三个一致性损失来避免这个问题。这三种一致性损失的目标是加强对象位置、语义类别和大小的共识

设ˆCs={cˆs}表示学生网络中的预测三维边界框的中心,Ct={cˆt}表示来自教师网络转换后的输出。对于每个cˆt∈ˆCt,我们通过基于边界框中心之间的最小欧几里得距离来搜索它在ˆCs中的最近邻来进行对齐。我们进一步使用ˆCAs来表示来自ˆCs中与ˆCt中的每个元素对齐的元素。

我们还可以从ˆCt中收集与ˆCs中的每个元素对齐的元素的ˆCAt,需要注意的是,对齐ˆCAs和ˆCAt不是双射的。

CAs不等于ˆCAt。对齐损失,ˆCAs↔ˆCt和ˆCAt↔ˆCs中所有对应元素之间的总距离,当师生网络预测的边界框一致时,应该为零。因此,提出具有中心意识的一致性损失:以尽量减少师生网络之间的对准误差

除了中心的一致性之外,我们还考虑了三维建议的另外两个特性:语义类和大小,以加强两个网络之间的一致性。遵循经典的自我整合学习的原则,即教师网络产生了供学生学习的目标,我们只考虑一个单向的对齐。Ct--ˆCAs在计算中对类别和大小进行感知的一致性损失。具体地,Ps = {pˆs}和Pˆt = {pˆt}

代表从学生网络和教师网络预测的类别概率。基于最小中心距离,对齐的PˆAs= {pˆAs }很容易得到。最后定义可感知类别的一致性损失为PˆAs 和Pˆt之间的KL散度:

Dˆ s = { ˆds} and Dˆt = { ˆdt}分别代表学生网络和教师网络预测的边界框大小,我们使用相同的最小中心距离来获得对齐的Dˆ与={ˆdAs}。尺寸感知一致性损失:DˆAs和Dˆt之间的均方误差:

最后,总一致性损失是前面描述的所有三个一致性项的加权和:

“原先的voetnet loss = vote_loss + 0.5 *objectness_loss + box_loss + 0.1 *sem_cls_loss

loss = detection_loss(voetnet loss) + consistency_loss * consistency_weight”

4.实验

采用SUN RGB-D和ScanNetV2数据集。

4.2 实现细节

训练:采用VoteNet作为学生和教师网络。对所有已经标注的样本利用votenet进行预训练。然后,用预先训练的权重初始化学生和教师网络,并通过最小化监督损失和一致性损失,利用标记和未标记数据进行学生网络的训练。学习率在第80个epoch时减到0.1。一般来说,该模型收敛在第100个epoch左右。生成的3D提案的数量为128个。

推理:在推理过程中,我们将一个场景的点云转发到学生网络2来生成建议。我们对三维NMS模块预测的提案进行了后处理,3DIoU的阈值为0.25。评价度量,采用平均精度(mAP)

 

上图表明,标记数据越稀疏,SESS相比VoteNet的提升效果越好。

另外:从实验图可以看出,同样采用100%的标记数据训练,SESS的效果比VoteNet的效果要好。作者将SESS的性能归因于它的一致性正则化机制,其中三维检测器被训练为对各种扰动的鲁棒性,而所提出的编码几何图形和语义信息的三种一致性损失指导了三维检测器产生更准确的预测。这进一步表明,其一致性损失是对有监督损失的补充,框架可以与任何有监督的三维对象检测器集成,以提高检测精度。

4.4 转换性半监督学习

一般来说,半监督学习可以指归纳学习或转换学习。在归纳学习中,目标是为新的看不见的数据产生正确的标签。在转换学习中,目标是推断出限制在给定的未标记数据上的标签。之前的实验是在看不见的验证集上进行的,所以可以看作为归纳学习。在不同比例的标记样本下,SESS始终优于全监督投票网络。

4.5 消融实验

扰动:

对于每个单独扰动,数据集之间的影响可能会有所不同

一致性损失:

中心意识和类意识的一致性损失的贡献大于大小感知的一致性损失,但是,中心感知或类感知与大小感知一致性损失的组合有助于在某种程度上提高性能。最后,这三种一致性损失的集成使其在这两个数据集上都具有最佳的性能。它表明,需要用正确的几何图形(例如,中心,大小,语义)来表示预测的边界框的要求。

4.6 定性结果

 

5 总结:

本文提出了一种新的基于自封闭半监督点云的三维对象检测框架SESS。它不需要大量通常难以获得的强标签。SESS遵循mean teacher-student框架,其中设计了一个特定的基于点的数据扰动方案和三种一致性损失,能够使网络生成更准确的检测。在两个真实数据集上的实验结果验证了我们的系统的有效性和优势。实验表明,此方法是一个通用的框架,可应用于半监督三维对象检测。

“这个代码已经跑过,后续的CVPR2021 3DIoUMatch 是在这个框架上用IOU滤除一定的目标”



推荐阅读
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 本文介绍了一种求解最小权匹配问题的方法,使用了拆点和KM算法。通过将机器拆成多个点,表示加工的顺序,然后使用KM算法求解最小权匹配,得到最优解。文章给出了具体的代码实现,并提供了一篇题解作为参考。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
author-avatar
moon2502863581
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有