点云检测算法之PointPillar深度解读

这篇具有很好参考价值的文章主要介绍了点云检测算法之PointPillar深度解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PointPillars: Fast Encoders for Object Detection from Point Clouds]

论文地址: https://arxiv.org/abs/1812.05784

代码地址: https://github.com/open-mmlab/OpenPCDet

Git链接: 计算机视觉知识汇总

课程来源 : 深蓝学院-环境感知



1.背景和亮点

这是一篇来自19年工业界的文章,在此之前对于不规则的稀疏的点云的做法普遍分为两派:

  1. 将点云数据量化到一个个Voxel里,常见的有VoxelNet 和SECOND , 但是这种做法比较普遍的问题是由于voxel大部分是空集所以会浪费算力(SCOND利用稀疏卷积解决了它) ,但是二者都还存在高度的信息所以还需要计算三维卷积的。
  2. 从俯视角度将点云的数据进行处理,将高度信息通过一系列手段去除从而获得一种类似Pseudo image的方式从而去用一些经典的图像网络去处理一些任务比如,MV3D和AVOD


本文也有点类似上面的思想2,PointPillar下文简称PP. 有以下几个明显的亮点:

  1. 是一种结合了点试图思想(忽略非空区域)以及俯视图(量化2D平面而得到伪图片)的点云融合感知算法
  2. 速度和精度的trade-off,平均速度达到了62Hz,最快达到了105Hz,下面是CIA-SSD中的精度&速度图

pointpillar,计算机视觉,算法,深度学习,计算机视觉

2. 网络结构

pointpillar,计算机视觉,算法,深度学习,计算机视觉

上图是PP网络的图示可以看到作者将网络分成了3大块

  • Point Feature Net

    • 输入的原始点云特征,在X-Y 平面网格化,

      • 一个网格 = 一个pillar , 且97%的pillar都为空
    • 每个点采用9维特征表示

      • x, y , z, r, xc , xy , xz ,xp , yp (xyz:笛卡尔坐标,r:强度 ,xc / yc / zc : pillar中所有点云数据的中心, xp / yp : 点与pillar中点的差距 )
    • Pillar 的表示(P ,N , D )

      • 每个pillar用(P ,N , D )表示,其中D = 9 ,N = pillar中点的数量 (如果pillar中点超过了N就random sampling 如果少了就补0), P = 非空pillar的数量
    • Pillar 提取点的特征

      • (P , N , D) -> (P , N , C) 通过MLP
      • (P , N , C) -> (P ,C) 通过对N个点进行maxpooling,从而代表整个pillar的信息
    • Pillar 映射回X-Y 平面

      • (P , C) + Pillar_index -> (H , W , C) 得到一个通道数为c的伪图片,从而就可以开始利用经典的图像网络了!!!
  • FPN & SSD

    FPN现在在目标检测的领域的基本上是标配,主要解决的问题就是多尺度变换的不足,高层的特征虽然包含了丰富的语义信息,但是由于低分辨率,很难准确地保存物体的位置信息。与之相反,低层的特征虽然语义信息较少,但是由于分辨率高,就可以准确地包含物体位置信息。所以FPN横空出世!

    PP同样的通过对(H , W , C) 三次下采样至8倍然后再三次上采样至(H/2 , W/2 , 2C),然后进行Concat得到一个(H/2 , W/2 , 6C)并且分别对上采样的不同尺度的特征图进行检测的任务,这样就能解决不同分辨率对应检测不同大小的物体



3. 损失函数

介绍损失函数前这里介绍下PP的Anchor的设计,由于PP是基于点云数据的俯视图的表示,所以这里初始化的矛框有着不同于图像的矛框的设计,不同于图像的远小近大的特点,点云数据拥有者几何不变性的特点,所以在这里我们可以直接利用不同类别的先验知识来初始化矛框,下面是车辆和行人的矛框的初始化。PS:虽然矛框是3D的,但是再与GT匹配的时候,只采用2D的信息

pointpillar,计算机视觉,算法,深度学习,计算机视觉

这里的损失函数类似SECOND,首先3D物体框的表示为(x,y,z,w,l,h,θ),xyz代表的是矛框再中心点的空间坐标,whl代表的是矛框的长宽高,θ代表的是物体的方向,作者将损失函数分成了三类,对应的β是各类损失的权重是一个超参数可以自由选择如下图:

pointpillar,计算机视觉,算法,深度学习,计算机视觉

  1. Loc代表的是物体框位置的回归的损失,这里可以看到Δ里进行了归一化,这是因为对于目标较大的物体其中心点的偏移可能也会越多,所以进行归一化去除了目标大小的影响,而最终的loss属于对所有方位的loss求smoothL1 Loss的和,而其是结合了L1和L2的部分优点(即在预测和gt差别较小的时候,梯度不至于太大相比于L1更加圆滑,反之则梯度足够的小不会像L2一样产生梯度爆炸的问题):

pointpillar,计算机视觉,算法,深度学习,计算机视觉




2. cls代表的是物体分类的损失,这里仍采用了Focal Loss,也是为了解决图像领域正负样本不均衡,解决了样本少的类别分类准确率不高的问题,当然难分样本不限于样本少的类别,也就是focal loss不仅仅解决了样本非平衡的问题,同样有助于模型的整体性能提高。作者也采用了kaiming大神的超参数原值,看的出来是很respect他了。。

pointpillar,计算机视觉,算法,深度学习,计算机视觉

pointpillar,计算机视觉,算法,深度学习,计算机视觉
关于如何处理难分样本除了使用Focal_loss还可以参考困难样本(Hard Sample)处理方法 - 知乎 (zhihu.com) 作者提出了Gradient Harmonizing Mechanism: GHM 和 OHEM ,前者其大致思想就是为了防止那种误标签,将梯度密度量化后根据其所在数量,对CE做加权平均。后者就是将难分样本进行多次训练替代原来样本里的容易样本。
3. dir代表的是物体0°与180°之间的方向差异的损失, 可以从回归的损失看到Δθ = sin(θgt - θ) ,可以看到如果二者相差180°的时候,角度的loss = 0,这在某些情况下显然不是我们想要的结果,所以这里的Ldir就是弥补了它。





4. 测试结果对比

下图是训练了80个epoch的car类和行人类在验证集上的结果如下:

pointpillar,计算机视觉,算法,深度学习,计算机视觉
pointpillar,计算机视觉,算法,深度学习,计算机视觉

  • bbox: 2D检测框的准确率
  • bev: BEV视图下的准确率
  • 3d: 3D检测框的准确率
  • aos: 检测目标旋转角的检测率(Average Orientation Similarity 平均方向相似度 )
  • 三列代表的是不同困难程度依次降低
  • @ 0.7 0.7 0.7 代表的是bbox / bev / 3d评估时的IOU的阈值
  • AP_R40代表的是基于40个召回位置计算的AP



5. 失败case分析与提升

pointpillar,计算机视觉,算法,深度学习,计算机视觉

原因 & 提升:

1. pillar丢失了高度方向的信息 -> 提取不同的高度特征,类似voxel的方法
2. pillar分辨率不足,导致小目标的特征较少 -> 提高pillar的分辨率,或者采用更高线的雷达
3. 语义信息的提取不足,无法很好的理解场景 -> 多传感器融合结合语义的信息

pointpillar,计算机视觉,算法,深度学习,计算机视觉

原因 & 提升:

1. 点云密度随着距离增加而降低,较远的目标点非常稀疏小目标尤其 -> 对高分辨率的特征图进行原目标的检测 & 专门采用前向的激光雷达,降低可视范围,提高线束密度

pointpillar,计算机视觉,算法,深度学习,计算机视觉

原因 & 提升:

1. 目标相距较近,网络给出的置信度较低,NMS去除 -> 采用高分辨率来检测小目标 & 每个类别单独进行NMS ,并采用不同的IOU参数 & 定义新类别一组行人 &数据增强

pointpillar,计算机视觉,算法,深度学习,计算机视觉

原因 & 提升:

1. 路面与激光雷达的XY坐标平面不平行,导致点云的z值无法真实反应物体高度,从而影响Pillar中的特征学习 ->通过车辆的倾斜角度以及路面的检测结果对高度进行矫正文章来源地址https://www.toymoban.com/news/detail-721106.html

到了这里,关于点云检测算法之PointPillar深度解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测算法之voxelNet与pointpillars对比

    点云目标检测目前发展历经VoxelNet、SECOND、PointPillars、PV-RCNN。 2017年苹果提出voxelnet,是最早的一篇将点云转成voxel体素进行3D目标检测的论文。 然后2018年重庆大学的一个研究生Yan Yan在自动驾驶公司主线科技实习的时候将voxelnet代码完善,提出了高效的spconv实现,并增加了数据

    2024年02月02日
    浏览(29)
  • 《计算机视觉中的深度学习》之目标检测算法原理

    参考:《计算机视觉中的深度学习》 目标检测的挑战: 减少目标定位的准确度 减少背景干扰 提高目标定位的准确度 目标检测系统常用评价指标:检测速度和精度 提高精度:有效排除背景,光照和噪声的影响 提高检测速度:精简检测流程,简化图像处理算法 算法概述:传

    2024年03月27日
    浏览(45)
  • 深度学习之边缘检测算法论文解读(EDTER: Edge Detection with Transformer)

    边缘检测是计算机视觉中最基本的问题之一,具有广泛的应用,例如图像分割、对象检测和视频对象分割。给定输入图像, 边缘检测旨在提取精确的对象边界和视觉上显著的边缘 。由于许多因素,包括复杂的背景、不一致的注释等等,这是具有挑战性的 边缘检测与图像的上

    2024年02月01日
    浏览(30)
  • 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 实时检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen

    2024年02月05日
    浏览(50)
  • 计算机竞赛 深度学习疫情社交安全距离检测算法 - python opencv cnn

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习疫情社交安全距离检测算法 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https://git

    2024年02月06日
    浏览(33)
  • 论文解读 | 三维点云深度学习的综述

    原创 | 文 BFT机器人  KITTI 是作为基准测试是自动驾驶中最具影响力的数据集之一,在学术界和工业界都被广泛使用。现有的三维对象检测器存在着两个限制。第一是现有方法的远程检测能力相对较差。其次,如何充分利用图像中的纹理信息仍然是一个开放性的问题。 多任务

    2024年02月10日
    浏览(25)
  • 【计算机视觉面经四】基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

    目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法。 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? 两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于

    2024年03月27日
    浏览(42)
  • 计算机竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉opencv的手势检测 手势识别 算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 普通机器视觉手势检测的基本流程如下: 其中轮廓的提取,多边形

    2024年02月07日
    浏览(38)
  • 3D点云目标检测:CT3D解读(未完)

    就是基于单阶段的网络获取box作为Proposal,文章中使用的是Second网络,其他的如pointpillar、centerpoint都可以作为 CT3D的RPN网络。 通过以下两个模块精修RPN输出的proposal: 1、将proposal特征映射到点的特征上(下图左)。 2、通过自注意力编码对proposal内点之间的相对关系进行建模来

    2024年02月04日
    浏览(38)
  • 【计算机视觉 | 目标检测】Grounding DINO:开集目标检测论文解读

    介绍一篇较新的目标检测工作: 论文地址为: github 地址为: 作者展示一种开集目标检测方案: Grounding DINO ,将将基于 Transformer 的检测器 DINO 与真值预训练相结合。 开集检测关键是引入 language 至闭集检测器,用于开集概念泛化。作者将闭集检测器分为三个阶段,提出一种

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包