【Collaborative Perception - 4】AdaFusion(WACV2023)
题目
Adaptive Feature Fusion for Cooperative Perception using LiDAR Point Clouds
论文地址
仓库地址
本文通过在特征融合模块中构建trainable的自适应特征选择过程,可以在融合过程中在多个CAV(Connected Autonomous Vehicles)
中自适应选择特征。
在OPV2V数据集上检测车,在CODD数据集上检测车和行人(考虑到行人在实际的检测中更重要,且难度更高)
简单来说,本文的特征融合部分改进较为简单,创新点不大,但实验结果好。
1. Intro
一个简单的例子说明协同感知过程和意义。
CAV2
代表驶出路口的车辆,但他可以为其他车辆提供路口的信息。CAV1
代表即将驶入路口的车辆,CAV3
和CAV4
可以给其提供不同视角,使其安全驶过intersaction
。CAV4
被CAV3
挡住的行人信息,可以通过CAV3
和CAV1
给到。
三种融合方式(区别:传递数据不同):
- Early fusion: aggregates the raw input sensor data from other CAVs(高传输cost)
- Intermediate fusion: aggregates the processed feature maps from other CAVs
- Late fusion: aggregates the predicted outputs of object detection from other CAVs. (传输cost低,但是依赖于CAV的预测精度和后处理过程)
其中中融合方法普遍表现最好
其可改进方向(通过实现有效的特征选择和融合模块 --> 实时性+高准确性)
Contributions:
- 轻量化、中融合的感知协同框架
- 3D CNN和自适应特征融合用于协同感知,并提出了三种可训练的协同感知特征融合模型
- 在OPV2V和CODD数据集是那个验证。
2. Framework
五个步骤:「对应下边五个标题」
- 利用 PFN 将点云转换为伪图像
- 利用2D金字塔网络从伪图像中提取多尺度特征,得到中间特征图
- 将中间特征图从各CAV上投影到ego车上
- 利用特征融合网络生成融合特征图
- 执行目标检测任务,生成回归框并分类
2.1 Feature Encoding
借用了PointPillars
架构中的处理方式。
详细的解释参考链接:https://zhuanlan.zhihu.com/p/428258098
大概来说分为两步:
- 将点云数据处理成
pillars
形式。我的理解就是网格化处理,将每个point编码成D
维度的向量(一般D
是9=4+5),P
个pillars,每个pillars有N
个点。则数据变为了D*P*N
- 然后
PointNet
应用在数据上,处理得到 C i n ∗ P C_{in}*P Cin∗P 的tensor。变换回原始图像生成 C i n × 2 H × 2 W C_{in} × 2H × 2W Cin×2H×2W 的伪图像。
2.2 Feature Extraction
简单利用FPN结构进行提取,三层降采样结果进行上采样并cat在一起,最后通过一层卷积调整到 C × H × W C × H × W C×H×W 维度。
2.3 Feature Projection
各个车将自己的feature map和六自由度pose发给ego车,投影过去。
2.4 Feature Fusion(重点)
- 首先将收集来的数据叠加为4D的 n × C × H × W n × C × H × W n×C×H×W 而不是3D的 n C × H × W nC × H × W nC×H×W,减少计算量。「其中n是最大CAV数」
- 具体的融合步骤,提出了空间和通道特征融合模型。
2.5 Object Detection
利用SSD进行目标检测,输出为【 H × W H × W H×W的size, ( c + 7 ) × B (c + 7) × B (c+7)×B 的channel】c个类别置信度和7维坐标(x, y, z, w, l, h, θ)
*Loss
分类是利用Focal loss,回归是smooth l1loss
3. 特征融合模块
主要的改变还是变为了在第四个维度上进行操作,而不是原来的通道维度上。
因此使用的都是三维的卷积。
总体来说比较简单:
- 图a和b是 spatial-wise 特征融合
- 图c和d是 channel-wise 特征融合
值得一提的是C-AdaFusion中,Adaptive Pooling都是池化到固定的size输出(torch中有包torch.nn.AdaptiveMaxPool3d)
4. Results
与其他方法的实验数据比较(虽然改进的简单,但是效果好)
- IOU0.5的时候AP和其他方法差不多,但IOU在0.7的时候高出很多。说明即使所有模型能够达到较高的分类准确性,proposed方法也能得到最高的3D回归结果。
- 并且参数量比V2X-ViT和V2VNet少。
其中右上的行人和车是ego车完全看不到的,但还是完整检测了出来。
消融实验:
- 车的数量。对行人检测提升不够符合预期(行人难度较高)
- 3D卷积的kernel size
【Collaborative Perception - 4】AdaFusion(WACV2023)相关推荐
- 【Collaborative Perception - 2】V2X-ViT(ECCV2022)
题目 V2X-ViT: Vehicle-to-Everything Cooperative Perception with Vision Transformer(ECCV2022) 链接:https: ...
- 【博客项目】—Joi(八)
[博客项目]-Joi(八)
- 【信息学奥赛一本通】2075:【21CSPJ普及组】插入排序(sort)
2075:[21CSPJ普及组]插入排序(sort) 时间限制: 1000 ms 内存限制: 524288 KB 提交数: 1547 通过数: 335 [题目描述] 插入排序是 ...
- 【三维目标检测】3DSSD(二)
数据和源码请参考上一篇博文:[三维目标检测]3DSSD(一)_Coding的叶子的博客-CSDN博客. 3DSSD三维目标检测模型发表在CVPR2020<3DSSD: Point-based 3 ...
- 【三维目标检测】3DSSD(一)
3DSSD三维目标检测模型发表在CVPR2020<3DSSD: Point-based 3D Single Stage Object Detector>.目前,基于体素的 3D 单级检测器 ...
- 【Java基础篇】封装(Encapsulation)
[Java基础篇]封装(Encapsulation) 1. 封装含义 2. private(私有)关键字 3. 构造函数 3.1 什么是构造函数 3.2 构造函数的重载 3.3 构造函数的调用 3.4 ...
- 【三维目标检测】VoteNet(一)
VoteNet是用于点云三维目标检测模型算法,发表在ICCV 2019<Deep Hough Voting for 3D Object Detection in Point Clouds> ...
- 【三维目标检测】Pointpillars(一)
PointPillars是一种基于体素的三维目标检测算法,发表在CVPR2019<PointPillars: Fast Encoders for Object Detection from Po ...
- 【三维目标检测】Part-A2(一)
Part-A2是商汤在CVPR 2020上发布的三维点云目标检测模型,来源于PointRCNN同一作者,论文名称<From Points to Parts 3D Object Detection ...
最新文章
- SAP PM 入门系列17 - IB03 显示设备BOM
- python网络爬虫系列(五)——数据提取 jsonpath模块
- .NET 指南:构造器的设计
- Delphi 源码格式书写规范
- 优秀的音频EQ均衡器音效源码
- pushbutton flash 游戏开发
- 图片去水印的原理_去水印简单操作:图图去水印
- 百度的AI赛事,正在启蒙一代年轻人
- 证件照的背景颜色转换
- codeforces 558D Guess Your Way Out! II
- DP-900认证考试攻略
- 阵列卡u盘安装系统步骤_带Raid的服务器安装系统(采用U盘安装)
- linux增加swap空间的方法
- Cauchy distribution
- GRE词汇整理(magoosh版本)
- vue.js django_如何使用Django和Vue.js对Web应用程序进行原型制作
- NEO改进协议提案2(NEP-2) 1
- 静态网页和动态网页-个人学习理解
- mybatis show sql
- Jenkins持续集成部署工具