『笔记』Fast Point R-CNN
『笔记』Fast Point R-CNN
这是一篇来自ICCV2019的论文,乍一看觉得是PointRCNN的升级版,但其实并不是Point RCNN的incremental work,不过当然,同样作为two stage的方法,思想当然是有共同点的。这个名字比较有误导性,让人觉得一阶段是PointNet流的提取特征,但其实用的是VoxelNet,所以我更愿意称之为VoxelNet-Refined
第一阶段:VoxelRPN
其实就是"用于region proposal的voxelnet". 看下面的图,来自Fast Point R-CNN | 或许跟PointRCNN和Fast RCNN都没啥关系,会发现其实就是我们熟悉的VoxelNet/SECOND之流。第一个BLOCK就是3d backbone,逐渐把Z维度上降低到1,也就成了2D特征图了。后面三个BLOCK形成了FPN形式的2D backbone。同样,通过reg和cls head得到结果,这个结果也就得到了第一阶段的预测,将要作为proposal传入第二阶段
回归分支的训练采用了Smooth L1损失,分类损失采用了Binary交叉熵。有关Positive Anchor和 Negative Anchor的设置为:
In VoxelRPN, the anchors spread on each location of the global feature map. One anchor is considered as a positive sample if its IoU with ground-truth is higher than 0.6 in BEV. The regression target is the ground-truth bounding box with the highest IoU value. One anchor is considered as negative if its IoU value with all ground-truth boxes is lower than 0.45
第二阶段:RefinerNet
个人理解:就像Point RCNN一样,这样的two stage往往是1. 在第一阶段获得a. 全局意义上的整体特征 b. foreground points c. 早已进行了proposals的预测 2. 通过第一阶段的信息,利用全局意义上的特征,设计某种方式对proposals这些已经是local的“重点区域”进行refinement,得到最终的预测。值得一提的是,在第二阶段,利用proposals的方式经常是把各proposal内的点集合为小团体,转换成自己的canonical coordinates,重新用PointNet提取特征
在这里,输入分别为点coordinates和点索到voxel feature map上的特征。另外,和 PointRCNN中类似,coordinates转换到canonical坐标了
这里的融合方式为,每个proposal的canonical local coordinates通过PointNet提取新特征,和索的第一阶段voxel对应位置特征concatenate,然后再推理。推理voxel的特征为得分,通过sigmoid激活为类似位置权重的attention map,element-wise multiplication到刚刚得到的local特征上。推理推理,继续推理然后maxpooling结束得到本proposal特征,然后输入head得到refinement,于是完成最终预测结果
个人理解:其实可以发现,这个proposal内canonical点特征重新推理 + concat第一阶段特征的方式其实就是PointRCNN里面用的,所以其实总结下来,这篇文章的思路其实确实PointRCNN,主要就是两个点:1. 第一阶段用VoxelNet做全局特征map和预测proposals,而不是PointNet之流 2. 第二阶段因为有了voxel map特征,可以设计额外的attention来加权concat后的特征
作者:traviscui
出处:https://www.cnblogs.com/traviscui/p/16600573.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通