votenet理解

网络结构:
votenet理解_第1张图片
参考1
参考2

1、backbone:SA-SA-SA-SA-FP-FP

1 模块:
SA:在小区域中使用点云采样+分组+提取局部特征的方式,从局部到全局逐渐扩大感受野,包含这三部分的结构称为Set Abstraction(SA)

  • Sampling:随机选择一个初始点,然后依次利用FPS(最远点采样)进行采样,直到达到目标点数;
  • Grouping:以采样点为中心,划一个R为半径的球,将里面包含的点云作为一簇成组;
  • Pointnet: 对Sampling+Grouping以后的点云进行局部的“全局特征提取”,即用mlp(多层感知器)网络,将每个输入的3维点云扩展到256维,再在所有点上对每个维度maxpooling,最后得到一特征向量作为该组的特征向量。

FP: feature propagation 特征传播模块,将下采样过的点再上采样,变得更多。
2 backbone:
输入点数20000个,特征维数为4(xyz+离地面高度)(离地高度为所有高度排序的前1%处),各SA层种子点数分别下采样为2048、1024、512、256个(M),分组半径分别为0.2、0.4、0.8、1.2米。通过mlp对每个点提取特征到265维,再用FP层将点上采样到1024个,特征仍为256维(C)。(代码里输出C维feature,xyz是在vote module才加进去的)
votenet理解_第2张图片

2、投票网络:

对于每一个点的256维feature,通过一个mlp+bn层来生成一个3+256维特征向量,其意义为投票:[Δx, Δy, Δz, Δfeatures]
这部分参与loss运算,含义是:对于所有属于该物体的投票点,真实值距物体中心的Δ和网络输出的投票Δ之差,求和取平均。
在这里插入图片描述
votenet理解_第3张图片

3、投票聚集:

通过FPS对1024(M)个投票结果的坐标(x+Δx)进行FPS采样,得到256(K)个聚集中心,以半径为0.3m进行聚类
votenet理解_第4张图片

4、 分类:

对于每一个聚集分组,先xyz除以半径进行归一,然后通过一个类似pointnet的网络:先对组内投票得到的点各自进行mlp,然后所有点的特征向量经maxpooling汇聚成一个向量,作为该组的特征向量,再mlp进行proposal。每个组(共265组)的输出结果大小:5 + 2N H + 4NS+N C,分别为:
2个物体得分:[不是物体的得分,是的得分]
3个中心回归:[x, y, z]
2NH个方向回归:NH个[偏航角,该偏航角的得分]
4NS个box大小回归:NS个[长、宽、高尺度,box得分]
NC个类别:就是NC个类别各自的概率
例如,SUN RGB-D: N H = 12, N S = N C = 10。
votenet理解_第5张图片
这里包含三部分Loss:

  • 是否是物体loss:二类交叉熵
  • 边框loss:包括中心点回归,朝向和尺寸估计。只对正样本计算
  • 类别loss:交叉熵

加上上面vote loss共4部分组成:
在这里插入图片描述

你可能感兴趣的:(目标检测)