激光雷达点云bin文件读取和显示!

文章目录

  • 一. 背景知识
    • 1.1. 视觉任务
    • 1.2. 激光雷达(Lidar)
    • 1.3. Lidar数据的特点
  • 二. 深度学习处理点云的方法
    • 2.1. 几类方法
    • 2.2. 点云数据(database)

首先声明本文章内容主要参考B站:

  • 陈亮—深度学习点云!
  • 斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用

一. 背景知识

1.1. 视觉任务

深度学习在视觉感知任务中大放异彩。

一些自动驾驶的公司在视觉感知领域取得的不菲成绩,例如下面的交通标识牌检测、车道线检测、人的bounding box检测、人的关键点检测、车辆的检测、车辆3D bounding box的检测、车辆的距离、和速度的估计等等。

1.2. 激光雷达(Lidar)

左下方图是64线激光雷达以及它的数据渲染的图,可以看到一个一个的圆,有一些不同的颜色,分别表示它们反射的强度。右边是雷达的工作照,工作中它在不停的旋转,为什么激光雷达工作中不停的旋转,为什么数据中有一个一个的圆呢?这个还要介绍一下激光雷达的结构讲起。

【激光雷达与摄像头,未来哪种会成为自动驾驶的核心传感器呢?】 激光雷达数据简单但精确,适合做几何感知。视觉数据丰富但多变,适合做语义感知。在高级别自动驾驶里,无论是从优势互补还是传感器冗余的角度,二者缺一不可。

目前市面上能买到的激光雷达大概分为2类,一种是机械式Lidar,一种是扫描式Lidar。 下面简要介绍。

  • 下图为机械式Lidar的拆解图

  • 下图为旋转式Lidar的效果,不容的颜色表示激光雷达不同的反射强度,反射强度主要取决于被扫描物体的材质。例如白色的车道线反射强度比较高。

  • MEMS式激光雷达。

1.3. Lidar数据的特点

  • iii 表示反射强度。之前大概在KITTI数据集上面做了一个统计,把点云经过标定后,投影到图像上大概之后7%左右的像素才有雷达数据,这表明激光点云特别的稀疏。而且点云是无序的,这里 NNN 个点有 NNN 的阶乘个组合方式。

二. 深度学习处理点云的方法

2.1. 几类方法

深度学习处理点云数据方法:

  • Pixel-based: (点投影到平面上,用2D CNN处理)。
  • Voxel-Based: 类似于图像一样,图像是二维的把其进行栅格化,变成一个一个的像素。三维的我们也可以进行栅格化变成一个一个的体素(就是一个个小的立方体)。采用3D CNN进行处理。

  • Tree-Based
  • Point-Based: 更直接的方法,直接对点进行操作。输入 n×3n×3n×3 的向量直接送入网络中,n×3n×3n×3 的向量直接送入网路会有什么问题呢?我们知道深度学习中的方法要求数据的维度尽可能一样,要是不一样可能很难处理。比如做 batchbatchbatch 处理的过程中,有可能一次送入 100100100 张图像,有些网络可能对输入的大小不敏感,但是在过批处理的过程中一般要求图像数量是一样大的。这里我们在处理点云数据也是一样的,如果我当前这个点云有 100100100 个点,下一个点云有 100010001000 个点,那么不同个数的点送入网络中,如何保证出来的东西是一样的呢?此外刚才提到的,这 100100100 个点有 100100100 中排列组合方式,如何保证网络对这些点的顺序不敏感呢?
  • 这里重点介绍一下针对这 222 个问题(点的无序,点的维度(个数)不一样),PointNet是如何解决的。 基于这个思路可以设计更多更多的处理点云的网络。首先对于无序的这个问题的解决: 数学里有一类函数叫做对称函数,意思就是一串数据输入一个结果,如果输出的这个结果对输入的属于顺序不敏感(比如加法是一个对称函数)。Deeplearning中maxpooling是一个对称函数,不管里面的顺序如何,我只要最大的。下面网络结构图中 n×3n×3n×3 的输入一直到 n×1024n×1024n×1024 的输出,随后通过一个maxpooling变成了1024,这个maxpooling干了一个什么事情?就是在特征维度维度上做了一个pooling,把这个特征归一化到了一样1024维,而不取决于你输入的这个 nnn 的多少,所以maxpooling这里就是起到一个对称函数的作用,它把点的无序和点的个数问题都解决了
  • TNET是解决了点云旋转的问题,使用的maxpooling作为对称函数解决了点云的无序性。最后得到的global feature 就代表这个点云具有的特征,然后可以利用这些特征做一些分类操作之类。看下图:如果把全局的特征放在这,把 n×64n×64n×64,它是每个点的 646464 维特征,我把每个点的64维特征再加上global feature,我们可以得到每个点既有local的特征,又有全局的特征global feature,所以它考虑了局部和全局的关系。这样去做一个应用的话,我们可以对 nnn 进行一个分类,可能分出来 mmm 类,逐点分类的过程也就是语义的点的分割的方法。
  • 看下图:基于PointNet可以做3类事情,我可以用这个点的全局特征告诉您这个点是什么物体。我们也可以利用这些点去做一个逐点的分类,每个单独的点是属于哪一类的。这里如果我们是针对所有点的逐点分类,那就是逐点的segmentation,如果是针对部分点的分类,类别的个数小于点的个数,那就是part segmentation(也就是把一个物体的几个部分单独分出来)。

  • 还有一篇可以做local和global的集大成者的文章,把前面这些文章都融合到一起的,这篇文章是VoxelNet。输入是一堆点云,体素分割的方法,把三维的世界分割成一个一个的小体素。这个体素根据不同的任务,比如做车辆检测,这个体素可以分的大一点,我做行人检测,这个体素可以分的小一点。
  • 对于每一个体素格,有好多个点。对于每个点可以用类似于PointNet的方式提取全局特征global features和局部特征(可以看上面PointNet结构图)local features。实际上它把逐点的特征和整个点云的特征连接在一起,然后经过逐层的抽样,抽样出一个128维的一个体素的特征。因为我们这里的体素本身就是3维的了,每个体素上又有一个高阶的向量,所以最后形成一个4维的Tensor。这里注意不是每个体素都有点的,所以它是一个稀疏的,针对这个问题的话,我们又进行了一些卷积的操作,把稀疏的Tensor逐步的降低纬度,降低到原图大概1/4的时候,我们做一个RPN,从里面这些点以及点的特征里面去抽取出3D box 的proposals,这个proposals刚才在介绍第2篇文章的时候基本上已经介绍了,这篇文章其实是把所有文章的idea结合在一起。

2.2. 点云数据(database)

  • 以上介绍的都是深度学习中处理点云的方法,做深度学习离不来数据。以上介绍的几种方法数据源基本来自以下方法,

  • 数据仿真

〖3D激光点云〗深度学习点云知识!相关推荐

  1. 深度学习点云语义分割:CVPR2019论文阅读

    深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...

  2. 英特尔助力腾讯云深度优化云硬盘CBS 产品,打造极速云存储体验

    前言概述 在更多企业核心系统"云化"的今天,云存储系统作为业务数据的重要载体,其性能表现正 受到越来越多的关注.作为全球领先的云服务提供商之一,腾讯云通过先进的云硬盘 CBS (C ...

  3. 史上最全 | 基于深度学习的3D分割综述(RGB-D/点云/体素/多目)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[分割]术交流群 后台回复[分割综述]获取语义分割.实例分割.全景分割.弱监督分割等超全 ...

  4. 【论文翻译】点云深度学习综述 -- Deep Learning for 3D Point Clouds: A Survey

    论文链接:Deep Learning for 3D Point Clouds: A Survey 文章目录 摘要 1. 介绍 2. 三维形状分类 2.1 基于投影的网络 2.1.1 多视图表示 2.1 ...

  5. 重读经典(点云深度学习开山之作):《Deep learning on point clouds for 3D scene understanding》(持续更新中)

    本文介绍的是 PointNet 作者的博士论文:3D场景理解中的点云深度学习.从上图可以看到,整个博士论文主要贡献有两块:一是点云深度学习的网络架构(PointNet 和 PointNet++):二是 ...

  6. 多传感器融合定位四-3D激光里程计其四:点云线面特征提取

    多传感器融合定位四-3D激光里程计其四:点云线面特征提取 1. 点云线面特征提取 1.1 按线数分割 1.2 计算曲率(重要!) 1.3 按曲率大小筛选特征点 2. 基于线面特征的位姿变化 2.1 帧 ...

  7. 国防科技大学发布最新「3D点云深度学习」综述论文

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每 ...

  8. 新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新

    14日,阿里巴巴知识图谱正式亮相云栖大会,本次活动邀请到诸多阿里技术专家与学界领军人物参会,一同探讨知识图谱领域的现状与远景,推动产业界与学术界深度交流. 知识图谱将信息表达成更接近人类认知世界的形式 ...

  9. 综述 | 国防科技大学发布最新「3D点云深度学习」综述论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :专知 [人工智能资源(书籍 ...

  10. 多传感器融合定位三-3D激光里程计其三:点云畸变补偿

    多传感器融合定位三-3D激光里程计其三:点云畸变补偿 1. 产生原因 2. 补偿方法 Reference: 深蓝学院-多传感器融合 多传感器融合定位理论基础 文章跳转: 多传感器融合定位一-3D激光里 ...

最新文章

  1. [LeetCode]题解(python):013-Roman to Integer
  2. css 图片换行_这个开源库教你写高级的CSS
  3. css盒模型和元素绘制
  4. secureCRT使用退格键(backspace)出现^H解决的方法
  5. 年会聚会派对邀请海报素材模板,创意和心意缺一不可
  6. USB转RS485串口电路设计
  7. 半导体物理复习总结(二)——半导体中的杂质和缺陷能级
  8. 利用Udacity模拟器实现自己的自动驾驶小车
  9. pta算法:计算天数
  10. python 类调用不存在的方法_找不到Python方法,但在类中定义
  11. levelup游戏资料库项目开发备忘录(10.26)
  12. Android开发随手记录
  13. 劳动仲裁解除劳动关系要多长时间
  14. 指纹识别的原理与优势
  15. WINcc 导出历史数据
  16. 大连交大c语言题库,大连理工大学C语言题库(共12套) .pdf
  17. opencv 单个圆形孔和针检测
  18. gitlab日常使用命令
  19. pwnable.kr---blackjack
  20. 兼阅万分享:网络赚钱的几个干货思维

热门文章

  1. GJB 软件配置管理计划(模板)
  2. R-CNN、Fast R-CNN、Faster R-CNN算法对比
  3. forEach(BiConsumer action)方法遍历Map集合
  4. Activiti6 下载安装
  5. 在线JSON转Excel
  6. java转换json格式_java中常见的JSON格式转换方法:
  7. 一份优秀的大数据开发简历是怎么样的?
  8. 95%的码农都在用的编程神器,值得一看!
  9. Linux-C 文件操作
  10. SVN之版本管理系统安装及svnadmin编码问题-yellowcong