论文速度系列三:SA-SSD、CIA-SSD、SE-SSD

news2024/11/19 7:43:18

如有错误,恳请指出。


参考网上资料,对一些经典论文进行快速思路整理

文章目录

  • 1. SA-SSD
  • 2. CIA-SSD
  • 3. SE-SSD

1. SA-SSD

paper:《Structure Aware Single-stage 3D Object Detection from Point Cloud》(2020CVPR)
结构图:
在这里插入图片描述

问题:
One-stage的算法网络为的是追求速度与精度的权衡,但是利用3d稀疏卷积对特征进行下采样后的特征无法避免地丢失了空间的信息,不能充分利用点云中的结构信息,降低了定位精度。此外,预测的置信度与预测框之间存在不一致问题。不过这个问题一直存在,包括在two-stage里面。不一致问题出现的关键在于分类置信度相关的当前位置使用的特征图一般与预测边界框所在的位置存在偏移。目前为止我看见过两种解决的办法:1)利用3d iou来作为分类置信度的监督值(代表方法:PartA2);2)增加一个iou分支,将分类得分与iou预测相乘,作为最后的objectness值,利用nms进行筛选(代表方法:STD)。

SA-SSD为了解决这两个问题,前者提出了利用辅助损失,利用两个point-level的子任务监督进行联合优化backbone中得到的特征,引导主干网络中的卷积特征了解目标的结构信息,这里的两个point-level辅助任务是前景分割(使特征对目标边界敏感)以及逐点中心估计(使特征知道目标内部关系)。后者抛开提到的两种方法,选择是提出了一个part-sentive warping(PS Warp)操作对分类特征图进行空间变换实现分类置信度与预测的边界框对齐。

思路:
1)在SA-SSD中不采用voxel的量化操作,因为体素化是一种比较耗时的预处理方法。为了简化预处理,这里将点坐标量化为张量的索引,迭代的地对每个点分配给输入张量中。如果多个点共享同一索引,则用最新的点来覆盖填充信息,这里就不需要对voxel进行点的element-wise平均操作。获取了张量形式的输入特征,就可以利用4 Stage的3d稀疏卷积进行特征提取,然后最z轴信息进行拼接转化为2d的bev特征图,后面使用6个3x3的2d卷积构建成rpn网络。
2)Auxiliary network:在backbone进行稀疏卷积处理后,其实获得了原始点云的多尺度信息。为了补全这些原始点云的特征,采用与PointNet++的反距离加权平均,计算每一个原始点在每个stage特征上的一定半径内的特征加权值,来进行多尺度信息的concat(在PV-RCNN中的主要思路也是利用多尺度信息对原始点特征进行补全)。在对原始点特征进行补全后,进行前景点语义分割以及逐点中心估计两个辅助任务,使得backbone可以学习到结构特征。ps:这里的逐点中心估计可以借鉴PartA2,也提到了利用标注框的内部相对位置信息。
3)Part-sensitive warping:这部分看不懂,借鉴一下其他资料
在这里插入图片描述

总结:
自从GoogleNet提出以来,一直觉得辅助任务是个好东西。利用了两个辅助任务让主干网络更加关注结构信息,这让我联想到了之前做推荐系统的跨域ctr估计。也是利用源域数据与目标域数据进行一个联合训练来优化结果。在论文的创新上,可以考虑一下如何设置辅助任务来提升性能,或者是考虑多任务的一个联合优化。

ps:SA-SSD的Abstract和Introduction写得很好

参考资料:

CVPR2020| 阿里达摩院最新力作SA-SSD


2. CIA-SSD

paper:《CIA-SSD: Confident IoU-Aware Single-Stage Object Detector From Point Cloud》(2021AAAI)
结构图:
在这里插入图片描述

背景:
单机检测器对目标的定位和类别预测一般是分开处理,所以会出现定位的精度以及分类置信度不能很好的匹配,这个问题在上述的SA-SSD中也有提及到。此外,CIA-SSD还设计了一个轻量级的空间语义特征聚合模块,自适应融合高层抽象语义特征以及底层空间特征,以提高边界框的预测精度和分类置信度。对于离视点处较远的距离回归框,经常存在较多冗余的假阳性预测以及震荡,又提出了一个种新的DI-NMS来解决这个问题。

网络结构:
1. Point Cloud Encoder
常规操作,将点云空间体素化。每个voxel的初始特征是voxel内点的位置与反射强度的均值。随后,利用SECOND的backbone进行3d稀疏卷积(这里称为SPConvNet)。最后得到的特征图中将z方向特征拼接获得bev特征图,来输入到下一个空间语义特征聚合(SSFA)模块。

2. Spatial-Semantic Feature Aggregation
对于物体的回归与分类,高层语义信息以及底层的空间信息同样重要,但是二者一般存在矛盾。一般来说,当对卷积层进行堆叠以获得丰富的高层语义特征时,底层空间信息质量会严重下降,为此CIA-SSD提出SSFA模块来解决这个问题。

对于语义信息处理分支,以spatial feature为输入,用一个卷积实现channels翻倍,尺寸减半。对于空间信息处理分支,输入输出尺寸不变,并与上采样后的语义信息特征进行element-wise addition的操作,作为融合后新的spatial feature。此外,对于semantic feature上采样与空间特征层融合外,还会上采样构成另外一个分支作为新的semantic feature。为了自适应融合丰富后的spatial feature以及上采样后的semantic feature,这里提出了Attention Fusion模块处理。简单来说,就是构建两个bev权重特征图分别对spatial feature以及semantic feature处理,然后相加进行融合。详细看结构图与代码。

3. IoU-Aware Confidence Rectification
由于单阶段检测的anhor特征不一致,所以预测出的iou往往不如two-stage检测器的准确。同时,作者在实验中得到了一个观察的结果,就是一般来说但预测的iou比较高时期真实的iou也会比较高,基于这个想法提除了confidence function:f = c*i^β。 其实本质上就是多一个β冥指数作用于置信度预测中,用来抑制低iou的预测,随后和分类score进行相乘。不过,这里的confidence function只在测试阶段使用。训练阶段的iou预测分支是利用真实的iou值来做监督值的。

4. Distance-Variant IoU-Weighted NMS
对于远距离的目标由于稀疏性,一般具有低分类置信度以及高回归不确定性。同时,回归边界框存在震荡现象,以及出现冗余的假阳性。为了解决这两个问题,CIA-SSD提出了DI-NMS的解决方案。具体的算法流程查看论文。

ps:论文的结构非常清晰,写论文时值得参考。实验部分,包含数据增强的消融实验、提出模块的消融实验、超参数的消融实验、以及精度与速度的对比。实验相比其他顶会做的不算多,但是该有的都有,感觉比较精炼与狡猾。这里提到了5种数据增强方式:
在这里插入图片描述


3. SE-SSD

paper:《SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud》(2021CVPR)
结构图:
在这里插入图片描述

SE-SSD与CIA-SSD是同一批大佬,在CIA-SSD的基础上进行了拓展,在保持速度不变的情况下精度更高,在paperwithcode的KITTI榜单上排名第三,效果可以说是相当亮眼了。截止今天,仍然是KITTI榜单上最快的,不过性能排30+,详细榜单见:https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
在这里插入图片描述

背景:
在3D目标检测中,预定义anchor点中的点云模式可能因距离远近和遮挡而发生显著差异。因此SE-SSD的想法是利用teacher网络生成的soft label以及原本标注的hard label来对student网络进行联合训练优化。同时引入形状感知方式的数据增强方法来提高对遮挡、形状多样性的鲁棒性。

思路:
SE-SSD结构如上图所示。左边是 teacher SSD,右边是 student SSD,同时部署和训练两个SSDs(相同架构,其实两个就是CIA-SSD模型),这样 student SSD就可以通过增强样本得到更多的数据,并根据teacher SSD预测的 soft 目标更好的优化。训练过程,我们先用预训练好的SSD模型来初始化teacher SSD和 student SSD。然后,从一个输入点云开始,框架包含两个处理路径:

  1. 第一条路径(蓝色箭头)中,teacher SSD从原始输入点云生成相对精确的预测。然后,对预测结果进行全局转换(global transformations),并将其作为 soft 目标来监督 student SSD。
  2. 第二条路径(绿色箭头)中,通过与第一条路径相同的全局变换来扰动同一点云,再加上具有形状感知的数据增强。然后,向student SSD输入增强后的数据,并利用以下训练:用于对齐student 预测和 soft 目标的一致性损失;当增加输入时,我们也用它的 hard 目标(上图右上角)来监督student的方向感知的distance-IoU损失。也就是用soft label以及hard label来对student网络进行联合训练。

训练中,迭代更新两个SSD模型:优化有上述两个损失(即用于对齐的一致性损失和方向感知的distance-IoU损失)的student SSD,并仅使用student SSD参数通过标准指数移动平均(EMA)更新teacher SSD。因此,teacher SSD可以从student SSD那里获得蒸馏知识,并产生 soft 目标来监督student SSD。因此,最终训练的student SSD称为Self-Ensembling single-stage 目标检测。

网络细节:
1. Consistency Loss
相比hard label,teacher网络的soft label信息更加丰富,有助于揭示同类的数据样本之间的差异。为此,SE-SSD核心思路是联合soft label与hard laebl同时对student网络进行一致性联合优化训练。提出iou-based匹配策略对其teacher与student的边界框。与hard label相比,soft label目标通常更加接近student预测。因此soft label信息可以更好地引导 student 微调预测,减少梯度方差,以获得更好的训练。损失如下所示,与SECOND是类似的,只不过换成了soft label信息。
在这里插入图片描述

2. Orientation-Aware Distance-IoU Loss
为了更好地利用 hard 目标来回归边界框,设计了方向感知distance-IoU损失(OD-IOU),更多地关注边界框中心的对准以及预测和GT边界框之间的方向。引入预测框与GT框3D中心的约束,以最小化中心不对齐问题;同时,设计了在预测BEV角度上的朝向约束,以进一步减少朝向差别问题,在3D目标检测中,这种约束意味着鸟瞰视图(BEV)中的非轴对准框之间的精确对准。与smooth-L1损失相比,ODIOU损失增强了中心点和朝向上的对齐。
在这里插入图片描述

总损失如下所示:
在这里插入图片描述

3. Shape-Aware Data Augmentation
GT 目标的点云由于现实的遮挡、距离变化和物体形状的多样性等,差异很大。因此,设计了形状感知数据增强方案来模拟在数据增强时,点云如何受到这些因素的影响。在实现上,对于点云中的每个目标,找到它的GT边界框中心,并将中心与盒面(边界框的8个角点)连接起来形成金字塔体,将目标点分成六个子集(因为物体有6个表面)。这里的形状感知数据增强方案通过分解部件,来有效地增强每个目标的点云。如下所示:
在这里插入图片描述

具体而言,使用随机概率P1,P2,P3执行3个操作:

  1. 在随机选择的金字塔中随机删掉所有点(如上图所示蓝色点,左上),模拟对象被部分遮挡,以帮助网络从剩余的点推断出完整的形状。
  2. 随机交换在当前场景中随机选择另一个输入目标,并将点集(绿色)交换到另一个输入目标中的点集(黄色),从而利用目标间的表面相似性来增加目标样本的多样性。
  3. 使用最远点采样算法,在随机选择的金字塔中随机稀疏子样本点,模拟由于LIDAR距离变化引起的点的稀疏变化;参见图5中的稀疏点(红色)。
    除此之外,在形状感知数据增强前,先在输入点云上执行全局转换,包括随机平移、翻转和缩放等。

总结:
SE-SSD是在CIA-SSD的基础上扩展而来,其实也可以理解为利用知识蒸馏对原始模型的进一步拓展。也就说,利用SE-SSD提出的知识蒸馏的方法,有可能对原有的模型带来进一步的提升,体现出利用soft label与hard label的性能强大之处,此外这里提到的数据增强方式也可以很好的进行移植,有机会可以在其他算法上进行测试,下图是SE-SSD在CIA-SSD上的提升,可以看见在几乎不影响速度的情况下,精度有2%+以上的提升,相当优秀。
在这里插入图片描述

参考资料:

1. 2021CVPR——SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud

2. Student-Teacher Network在3D目标检测中的应用


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络工程师备考4章

4.1 历年考点分布 4.2 局域网和城域网 4.2.1 局域网体系与拓扑结构 一般数据链路层的协议都是IEEE这个组织规范的,网络层是有RFC这个组织规范的。 数据链路层是可以划分为两个子层的,第一个叫逻辑链路控制LLC(对接上面的网络层),第二个叫MAC子层(更偏向于物理层)。 最…

【hadoop】Hadoop 3.3.4 集群安装及简单使用

目录环境信息1. 准备1.1 服务器规划1.2 主机名及hosts文件修改1.2.1 hostname修改1.2.2 hosts文件修改1.3 创建hadoop用户(建议)1.4 为hadoop用户添加sudo权限1.5 互信免密登录1.6 快速文件同步(可选)2. 安装2.1 下载并安装jdk2.2…

变量学习笔记

一:作用域 说起变量第一个要说到的肯定就是作用域,正是因为不熟悉JS的作用域,往往就会把面向对象的作用域张冠李戴,毕竟有些东西总是习惯性 的这样,但是并不是每次照搬都是可以的,那么下一个问题就来了,js到底是什么作用域,当然是函数作用域了,我们的浏览器就是一个被…

基于工业物联网的温度监测系统在钢铁行业的应用

随着钢铁行业的快速发展,越来越多电气设备被接入到工业生产系统中,对自动化和连续性的生产提出新的要求,需要关注到供电的稳定可靠,也要关注到用电设备的运行状态。电气设备在长期运行中会面临越来越高的风险,引发危险…

ncurses交叉编译

1.环境 编译环境:ubuntu18.04虚拟机 板端:移远AG550平台 编译链aarch64-oe-linux 2.ncurses下载 ncurses库下载地址:Index of /pub/gnu/ncurses 下载5.9的版本 3.解压并且编译 tar xvf ncurses-5.9.tar.gz cd ncurses-5.9 执行configure命…

Android与H5(Vue)交互

Android与H5互调 实现效果: JS调用Android方法实现dialog弹窗,Android点击弹窗确定/取消按钮调用JS方法,在H5界面展示传递的参数。 Vue准备: 执行 npm run serve 命令启动项目,启动成功后会在命令行看到两个地址&am…

beego框架学习之安装框架

Beego 是一个快速开发 Go 应用的 HTTP 框架,可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,相对于echo框架仅包含路由和控制器核心模块,beego是一个完整的MVC框架包括路由&控制器、model 数据库ORM封…

GitLab结合fortify实现自动化代码审计实践

一、背景 在甲方做安全的同学可能会有一项代码审计的工作,通常需要从gitlab把代码拉取下来,然后使用代码审计工具进行扫描,然后对结果进行人工确认; 在这个流程中需要做的事情比较繁琐,比如说gitlab如何配置token、如…

.net开发安卓入门 - 基本交互(Button,输入EditText,TextView,Toast)

.net开发安卓入门 - 基本交互前言TextViewEditTextButtonxml代码如下C#代码如下运行效果优化代码先看原生Android给一个View添加点击事件的三种方式在Xamarin.Android中添加onClick也的两种办法使用onClick绑定前后台调用处理逻辑第一步:第二步:第三步&a…

【实操篇】Linux组管理

目录 ●组管理 ●linux组的基本介绍 ●组的创建以及对用户的操作(复习) ●查看文件的所有者 ●改变文件所有者 ●修改文件所在的组 ●改变用户所在组 ●linux组的基本介绍 在Linux中的每个用户必须属于一个组,不能独立于组外。并且在Li…

[附源码]Python计算机毕业设计SSM基于云服务器网上论坛设计(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

软件测试 | 版本控制神器GitHub的基本使用与踩坑,教你一铲子填平!

首先需要申请GitHub帐号,这个就不多说了,大家自行百度或Google吧哈。这里默认大家都已经有GitHub账号了~ PS:(如果已经配置好的小伙伴可以跳过配置GitHub这部分) 配置GitHub 踩坑时刻 - 配置 第一次使用,如果没有配…

Photoshop使用蓝湖 cutterman插件快速切图

快速切图便于节约我们的开发时间 一 蓝湖插件 1.蓝湖官网下载插件 2.ps加载插件 一般都会自动加载 3.开始使用蓝湖插件切图 点击蓝湖插件选择对应的团队点击面板上的切图,选中图层进行标记 标记完成后选择上传全部面板 会提示到蓝湖官网下载对应的切图选择对应的…

mac OS 环境下安装 Redis(使用Homebrew终端安装)

使用Homebrew终端安装Redis(好处后面会介绍) 获取安装Homebrew(复制如下代码到终端运行): /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择好克隆原后按提示…

【学习经验分享NO.15】本科硕士学位论文和学术论文查重及降重方法

文章目录前言一、查重方法1、查重指标的含义2、查重方法二、如何修改论文重复三、常见问题答疑总结前言 学术小论文以及本科和硕士大论文在发表前需要进行降重处理,不然重复率过高会影响论文的发表,小论文一般查重要至少在20%以下,有些sci期…

pandas设置和显示数据框行列的数量

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 pandas设置和显示数据框行列的数量 [太阳]选择题 以下python代码结果错误的一项是? import pandas as pd pd.set_option(display.max_columns, None) pd.set_option(display.max_rows, None…

vue集成ant-design-vue

因为需要集成ant-design-vue,所以我在老的vue项目上进行集成,这不集成不要紧,一集成项目都起不来,下面进行下梳理 1遇到问题: BrowserslistError: Unknown browser query dead 查资料得到; 1.删除package.json文件里…

Docker[3]-Docker的常用命令

1 帮助命令 命令说明docker version查看docker的版本信息docker info查看docker详细的信息docker --helpdocker的帮助命令,可以查看到相关的其他命令 docker version docker info docker --help 2 镜像命令 镜像命令说明docker images列出本地主机上的镜像docker …

论文投稿指南——中国(中文EI)期刊推荐(第3期)

🚀 EI是国际知名三大检索系统之一,在学术界的知名度和认可度仅次于SCI!🎄🎈 【前言】 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊。其中&#xf…

DBCO试剂Acrylate-PEG5-DBCO,DBCO-PEG5-Acrylate应用生物标记

基础产品数据(Basic Product Data): CAS号:N/A 中文名:二苯并环辛炔-五聚乙二醇-丙烯酸酯 英文名:DBCO-PEG5-Acrylate,Acrylate-PEG5-DBCO 结构式(Structural)&#xff1…