三维目标检测论文阅读:PointPillars: Fast Encoders for Object Detection from Point Clouds

 

PointPillars: Fast Encoders for Object Detection from Point Clouds

code ID: https://github.com/nutonomy/second.pytorch

目录

 

PointPillars: Fast Encoders for Object Detection from Point Clouds

概要

本文方法

实验结果


概要

在计算机视觉中,虽然深度学习表现出优越的性能,但是雷达数据并不能直接使用图像的卷积操作,它和图像有关键性差异:

  1. the point cloud is a sparse representation, while an image isdense
  2. the point cloud is 3D, while the image is 2D.

现有方法有三种:1 3D卷积;2, 投影到图像平面(前)3 在鸟瞰图上操作;(这三种方法在几乎没有遮挡和模棱两可的情况下有效)。鸟瞰图比较稀疏,直接使用卷积网络效率低。效果差;体素方法应运而生,但是太慢(4HZ);

设计一个j仅仅使用二维卷积就能实现端到端的3D点云学习,是一个适合于点云的编码器;学习点云的柱子(垂直列)上的特性,从而为对象预测面向3D的框。速度比较快,精度较高;

本文方法

三个阶段:

  • (1) A feature encoder network that converts a point cloud to a sparse pseudo-image;
  • (2) A 2D convolutional backbone to process the pseudo-image into high-level representation;
  • (3) A detection head that detects and regresses 3D boxes.

(1)生成伪图像

首先在俯视图的平面上打网格(H x W)的维度;然后对于每个网格所对应的柱子中的每一个点都取(x,y,z,r,x_c,y_c,z_c,x_p,y_p)9个维度。其中前三个为每个点的真实位置坐标,r为反射率,带c下标的是点相对于柱子中心的偏差,带p下标的是对点相对于网格中心的偏差。每个柱子中点多于N的进行采样,少于N的进行填充0。于是就形成了(D,N,P)D=9, N为点数(设定值),P为H*W。

然后学习特征,用一个简化的PointNet从D维中学出C个channel来,变为(C,N,P)然后对N进行最大化操作变为(C,P)又因为P是H*W的,我们再展开成一个伪图像形式,H,W为宽高,C为通道数。

(2)基础网络

包含两个子网络(1、top-down网络,2、second网络)top-down网络结构为了捕获不同尺度下的特征信息,主要是由卷积层、归一化、非线性层构成的,second网络用于将不同尺度特征信息融合,主要有反卷积来实现。具体细节如下:

 

(3)检测头和损失函数

检测头:SSD的检测头,目标高度和z 单独回归。

损失函数:

分类:focal loss

回归损失:其中,

上标gt表示真实标签,a表示anchor预测。

是引入的航向角loss,使用的是一个将航向角进行softmax分类准确度来定义。

(4)数据增广

数据增广也是本文性能提升的一个重要因素,

1)受SECOND方法启发,创建一个所有类别的3D 点云BOX查询表,对于每一个类别,随机选取一些样本box,把这些样本box放到当前点云中去(相当于统一位置的相同类别的样本不同个体之间相互换位置),然后每个box再进行旋转和平移变换。

2)全局扩展,沿着X轴镜像翻转、旋转、尺度变换、全局平移。

实验结果

需要指出的是:车和 行人自行车 使用不同的模型;

  • 13
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值