仅提供创新说明不提供细节文章目录PointNetVoxelNetFeature Learning NetworkConvolution Middle LayersRegion Proposal NetworkLoss参考链接详解SECOND架构图参考链接详解PointNetPointNetVoxelNetVoxelNet 由三个模块组成Feature Learning Network将点云划分为 voxel体素再提取特征Convolution Middle Layers进行 3D 卷积提取三维特征Region Proposal Network分类并预测边界框。Feature Learning NetworkVoxel Partition根据点云划分 Voxel空间网格状。Grouping将点云空间中的点划分到其位置对应的 Voxel 中进行分组。(voxel 中没有点即为空)Random Samplling对于每个 Voxel若所含点数大于 T则随机采样 T 个。节约开销。降低各voxel之间点个数的不平衡。(点过于密集易导致网络计算结果有偏差)Stacked Voxel Feature Encoding对体素特征编码先逐点计算再逐元素计算最后跳跃连接c o n c a t ( ⋅ ) concat(·)concat(⋅)。Convolution Middle Layers卷积中间层标准的 3D 卷积操作Conv3D() - BN() - ReLU()Region Proposal Network预测目标概率评分图Probability Score Map 回归图Regression MapLossL α 1 N p o s ∑ i L c l s ( p i p o s , 1 ) β 1 N n e g ∑ j L c l s ( p j n e g , 0 ) 1 N p o s ∑ i L r e g ( u i , u i ∗ ) L \alpha \frac{1}{N_{pos}} \sum_i L_{cls}(p_i^{pos}, 1) \beta \frac{1}{N_{neg}} \sum_j L_{cls}(p_j^{neg}, 0) \frac{1}{N_{pos}} \sum_i L_{reg}(\mathbf{u}_i, \mathbf{u}_i^{*})LαNpos1i∑Lcls(pipos,1)βNneg1j∑Lcls(pjneg,0)Npos1i∑Lreg(ui,ui∗)其中回归损失如下每个预测结果对应一个 3D 框其格式为( x c a , y c a , z c a , l a , w a , h a , θ a ) (x_c^a, y_c^a, z_c^a, l^a, w^a, h^a, \theta^a)(xca,yca,zca,la,wa,ha,θa)真值为( x c g , y c g , z c g , l g , w g , h g , θ g ) (x_c^g, y_c^g, z_c^g, l^g, w^g, h^g, \theta^g)(xcg,ycg,zcg,lg,wg,hg,θg)其中( x c g , y c g , z c g ) (x_c^g, y_c^g, z_c^g)(xcg,ycg,zcg)表示标注框中心的坐标( l g , w g , h g ) (l^g, w^g, h^g)(lg,wg,hg)表示标注框的长、宽、高θ g \theta^gθg表示偏航角Yaw。则回归的目标为以下七个量Δ x x c g − x c a d a , Δ y y c g − y c a d a , Δ z z c g − z c a h a \Delta x \frac{x_c^g - x_c^a}{d^a}, \quad \Delta y \frac{y_c^g - y_c^a}{d^a}, \quad \Delta z \frac{z_c^g - z_c^a}{h^a}Δxdaxcg−xca,Δydaycg−yca,Δzhazcg−zcaΔ l log l g l a , Δ w log w g w a , Δ h log h g h a , Δ θ θ g − θ a \Delta l \log \frac{l^g}{l^a}, \quad \Delta w \log \frac{w^g}{w^a}, \quad \Delta h \log \frac{h^g}{h^a}, \quad \Delta \theta \theta^g - \theta^aΔlloglalg,Δwlogwawg,Δhloghahg,Δθθg−θa其中d a ( l a ) 2 ( w a ) 2 d^a \sqrt{(l^a)^2 (w^a)^2}da(la)2(wa)2参考链接详解无人驾驶汽车系统入门二十八——基于VoxelNet的激光雷达点云车辆检测及ROS实现SECONDSECOND 主要是针对 VoxelNet 的改进引入稀疏 3D 卷积替换 普通 3D 卷积针对 VoxelNet 中3D检测框相反方向的预测会导致 角度损失 过大。额外改进数据增强采用数据库采样的操作针对正负样本不均衡采用Focal Loss。架构图对比 VoxelNet 架构图引入稀疏卷积稀疏卷积先在输入数据中找到有效数据并记录其位置索引再记录与有效数据在卷积核中的对应索引同时记录对应的输出位置索引形成输入–输出映射表rulebook卷积计算时根据索引直接取出有效数据进行卷积并按 rulebook 将结果写入输出矩阵。稀疏卷积内容可参考:How does sparse convolution work?通俗易懂的解释Sparse Convolution过程论文阅读Submanifold Sparse Convolutional Networks方向回归如图作者在 Head 部分引入 Direction map head用于对物体方向进行分类。why 引入稀疏卷积?当一个 3D 检测框的预测方向恰好与真实方向相反的时候此时 偏航角Yaw损失会很大非常不利于模型收敛。改进对于角度损失L θ SmoothL1 ( sin ( θ p − θ t ) ) L_{\theta} \text{SmoothL1}(\sin(\theta_p - \theta_t))LθSmoothL1(sin(θp−θt))当角度正好相反时± π \pm π±πsin ( ) \sin()sin()函数会抵消掉。此时模型预测到导致目标方向不确定可能正好相反。虽然 Loss 问题解决了所以作者引入了 Direction map 分支用于对目标方向进行二分类softmax loss。参考链接详解【3D目标检测】SECOND算法解析
3D 点云算法
仅提供创新说明不提供细节文章目录PointNetVoxelNetFeature Learning NetworkConvolution Middle LayersRegion Proposal NetworkLoss参考链接详解SECOND架构图参考链接详解PointNetPointNetVoxelNetVoxelNet 由三个模块组成Feature Learning Network将点云划分为 voxel体素再提取特征Convolution Middle Layers进行 3D 卷积提取三维特征Region Proposal Network分类并预测边界框。Feature Learning NetworkVoxel Partition根据点云划分 Voxel空间网格状。Grouping将点云空间中的点划分到其位置对应的 Voxel 中进行分组。(voxel 中没有点即为空)Random Samplling对于每个 Voxel若所含点数大于 T则随机采样 T 个。节约开销。降低各voxel之间点个数的不平衡。(点过于密集易导致网络计算结果有偏差)Stacked Voxel Feature Encoding对体素特征编码先逐点计算再逐元素计算最后跳跃连接c o n c a t ( ⋅ ) concat(·)concat(⋅)。Convolution Middle Layers卷积中间层标准的 3D 卷积操作Conv3D() - BN() - ReLU()Region Proposal Network预测目标概率评分图Probability Score Map 回归图Regression MapLossL α 1 N p o s ∑ i L c l s ( p i p o s , 1 ) β 1 N n e g ∑ j L c l s ( p j n e g , 0 ) 1 N p o s ∑ i L r e g ( u i , u i ∗ ) L \alpha \frac{1}{N_{pos}} \sum_i L_{cls}(p_i^{pos}, 1) \beta \frac{1}{N_{neg}} \sum_j L_{cls}(p_j^{neg}, 0) \frac{1}{N_{pos}} \sum_i L_{reg}(\mathbf{u}_i, \mathbf{u}_i^{*})LαNpos1i∑Lcls(pipos,1)βNneg1j∑Lcls(pjneg,0)Npos1i∑Lreg(ui,ui∗)其中回归损失如下每个预测结果对应一个 3D 框其格式为( x c a , y c a , z c a , l a , w a , h a , θ a ) (x_c^a, y_c^a, z_c^a, l^a, w^a, h^a, \theta^a)(xca,yca,zca,la,wa,ha,θa)真值为( x c g , y c g , z c g , l g , w g , h g , θ g ) (x_c^g, y_c^g, z_c^g, l^g, w^g, h^g, \theta^g)(xcg,ycg,zcg,lg,wg,hg,θg)其中( x c g , y c g , z c g ) (x_c^g, y_c^g, z_c^g)(xcg,ycg,zcg)表示标注框中心的坐标( l g , w g , h g ) (l^g, w^g, h^g)(lg,wg,hg)表示标注框的长、宽、高θ g \theta^gθg表示偏航角Yaw。则回归的目标为以下七个量Δ x x c g − x c a d a , Δ y y c g − y c a d a , Δ z z c g − z c a h a \Delta x \frac{x_c^g - x_c^a}{d^a}, \quad \Delta y \frac{y_c^g - y_c^a}{d^a}, \quad \Delta z \frac{z_c^g - z_c^a}{h^a}Δxdaxcg−xca,Δydaycg−yca,Δzhazcg−zcaΔ l log l g l a , Δ w log w g w a , Δ h log h g h a , Δ θ θ g − θ a \Delta l \log \frac{l^g}{l^a}, \quad \Delta w \log \frac{w^g}{w^a}, \quad \Delta h \log \frac{h^g}{h^a}, \quad \Delta \theta \theta^g - \theta^aΔlloglalg,Δwlogwawg,Δhloghahg,Δθθg−θa其中d a ( l a ) 2 ( w a ) 2 d^a \sqrt{(l^a)^2 (w^a)^2}da(la)2(wa)2参考链接详解无人驾驶汽车系统入门二十八——基于VoxelNet的激光雷达点云车辆检测及ROS实现SECONDSECOND 主要是针对 VoxelNet 的改进引入稀疏 3D 卷积替换 普通 3D 卷积针对 VoxelNet 中3D检测框相反方向的预测会导致 角度损失 过大。额外改进数据增强采用数据库采样的操作针对正负样本不均衡采用Focal Loss。架构图对比 VoxelNet 架构图引入稀疏卷积稀疏卷积先在输入数据中找到有效数据并记录其位置索引再记录与有效数据在卷积核中的对应索引同时记录对应的输出位置索引形成输入–输出映射表rulebook卷积计算时根据索引直接取出有效数据进行卷积并按 rulebook 将结果写入输出矩阵。稀疏卷积内容可参考:How does sparse convolution work?通俗易懂的解释Sparse Convolution过程论文阅读Submanifold Sparse Convolutional Networks方向回归如图作者在 Head 部分引入 Direction map head用于对物体方向进行分类。why 引入稀疏卷积?当一个 3D 检测框的预测方向恰好与真实方向相反的时候此时 偏航角Yaw损失会很大非常不利于模型收敛。改进对于角度损失L θ SmoothL1 ( sin ( θ p − θ t ) ) L_{\theta} \text{SmoothL1}(\sin(\theta_p - \theta_t))LθSmoothL1(sin(θp−θt))当角度正好相反时± π \pm π±πsin ( ) \sin()sin()函数会抵消掉。此时模型预测到导致目标方向不确定可能正好相反。虽然 Loss 问题解决了所以作者引入了 Direction map 分支用于对目标方向进行二分类softmax loss。参考链接详解【3D目标检测】SECOND算法解析