CPGNet: point+rv+bev 融合
ICRA22-Cascade Point-Grid Fusion Network for Real-Time LiDAR Semantic Segmentation
-
亮点
multi view融合:point+rv+bev
端到端轻量网络,做到了实时性,在semanticKITTI上单帧43ms(2080Ti)
-
动机
lidar点云分割分为几种处理方式:
- point-based
提取原始点的信息没有损耗,但是基于点的局部特征提取过于低效,自动驾驶中不常用
- Voxel-based
相对点的方法,用稀疏的voxel堆积3d结构,更为高效,也由于结构规则化带来了性能提升;但在模型部署到移动设备上时,仍然难以做到实时
- 2d projection-based
投影到2d上(range view等)的一些方法,优点在速度快,但不可避免地会存在投影带来的信息损失,所以一些方法用了多个视角(rv bev)融合的方式。在这篇文章之前,有的multi-view方法例如MPF 、AMVNet都是单独在一个视角分支上做2d分割,然后采用后融合的方式,结合两个视角的结果(投回3d点上做融合)。
-
网络结构
- PG fusion block:
- P2G:点特征投影到rv和bev grid
对于多个点对应一个grid的情况,用maxpooling处理同一个grid中的点特征
- 2d FCN分割网络
用了Resnet中的9层作为轻量backbone,最高的通道数128.
另外用了一些小结构,包括双边降采样block,decoder不同分辨率之间的注意力特征融合来提升性能,
用attention feature pyramid fusion的原因是分割既需要高level的语义特征,又需要局部的细节,对深层和浅层特征图直接concat是不合适的,所以设计了自适应选择融合的方法
- G2P:2d grid特征转成点特征
四邻域grid中双边线性插值,
- Point Fusion:三支特征融合
只用concat和两层mlp。
不同于MPF和AMVNet的后融合方式,CPGNet选择在网络中间融合,形成端到端的架构。这样的好处在易于部署,并能减小训练和评测之间的gap(理解是把学习的参数全部放在模型里,性能不依赖后处理过程)
- 损失函数
transformation consistency loss
原型test time augmentation (TTA)即在测试阶段对输入做数据增广,与原数据分别做一次推理,两份推理结果进行综合(mean, max, gmean, etc)输出。
文中借鉴了这一思路,损失函数包括原数据输出和增广数据输出的结果的分割loss,增加了原数据输出和增广数据输出的一致性loss
-
实验结果
- 消融实验
baseline:后融合MPF
- Point Fusion与后融合相比,耗时短效果提升
- Point 特征作用明显
- 两个Point Fusion令耗时翻倍,后面作者用了tensorRT里量化的策略,加快了速度
-
其他结论
- RangeNet++提出的后处理加速KNN,几乎是range-based方法中不可或缺的
- 统计了每个点至少都落在了一个view里
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」