最近,老师让我们研究深度学习与3D点云数据的研究方向,开始时,确实也不清楚何为3D点云,以及深度学习。

由于实验室师弟师妹全部是做深度学习识图相关横向研究工作的,所以很快的就掌握了,深度学习识图技术,主要是应用于平面图片的目标检测与分割(分类)工作。而其目标图片为我们日常使用电脑经常见到的各类Png,jpg等图片格式。但是3D点云识别又是个什么格式的东西呢,对于没接触到的朋友,第一感觉就是,我们识别的目标有点屡不清楚,所以在本节主要讲一讲,3D点云这个识别目标是啥,具体有哪些类。(本章大部分内容为引用)

在最初的时候,我们经常描述图像的3维数据是采用对同一物体进行多角度拍摄,来获取物品360度的影像数据。

具有代表性的数据集有RGB-D (Kinect) Object Dataset(该数据集就是对同一平面的日常物品多角度平面拍摄获得的)。

随着设备以及激光扫描仪的诞生,最近几年通常是使用深度图像(深度相机拍摄)以及3D点云数据(激光扫描仪)来获得。

除此之外,体素网格CAD模型也是常用的3维表现形式。

至此多提一句,最初对于3D物品的深度神经网络检测是由2015年提出的两篇论文解决的。

1、将点云数据投影到二维平面。此种方式不直接处理三维的点云数据,而是先将点云投影到某些特定视角再处理,如前视视角和鸟瞰视角。同时,也可以融合使用来自相机的图像信息。通过将这些不同视角的数据相结合,来实现点云数据的认知任务。比较典型的算法有MV3D和AVOD。(基于卷积神经网络的三维物体检测方法-上海交大学报 2018也是用的该方法)

2、将点云数据划分到有空间依赖关系的voxel。此种方式通过分割三维空间,引入空间依赖关系到点云数据中,再使用3D卷积等方式来进行处理。这种方法的精度依赖于三维空间的分割细腻度,而且3D卷积的运算复杂度也较高。(其实也就是类似于平面图片一开始的处理方法,将平面图以正方形的格子去细化,而对于3D点云而言则为体素化,如上面体素化的桌子,通过小立方体将3D图像表达出来,立方体越小,则计算复杂度越高)

接下来详细的讲一下深度图以及点云数据的处理。由于目前深度相机比激光扫描仪的价格低,大部分课题组的实验采集设备还是深度图像。所以很有比较了解一下两者的处理方式。

深度图(Depth Map)

深度图(Depth Map)一般是由深度相机获得的包含与视点的场景对象的表面的距离有关的信息的图像。Depth Map 类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离。深度图的处理与传统的图像处理有很多相似之处,例如去噪,压缩,分割,提取特征等操作。接下来简单介绍深度图处理的具体需求和典型算法。

深度图去噪

深度图的去噪与传统RGB去噪有相似的要求,尽量保持细节的情况下使平面更光滑,去除传感器(深度相机)带来的噪声。

   KinectFusion[2]当中对深度图做的预处理就是通过双边滤波去噪。双边滤波的特点主要为对于边缘(细节)保持较好,计算速度在普通的CPU上都可以达到实时处理。另外还有结合RGB对深度图进行处理的算法,在追求高精度高质量的去噪的时候,可以利用RGB进行引导,先检测RGB边缘等再进行多边滤波,但是这种高精度的处理在实时性方面表现较差。

原始深度图 带噪深度图    双边滤波结果

原始RGB图 带噪RGB图 结合RGB的低秩恢复结果

除去与传统图像相似的去噪处理,通过深度相机获得的深度图还有很多无效值,例如下图中的红圈中圈出来的白色空洞,

一般情况下,反光表面和黑色吸光表面会产生较多的空洞,通过利用周围值进行补全(与形态学滤波先膨胀后腐蚀类似)可以实现简单的补空洞,该方法在普通的CPU上就可以达到实时。由于深度图用矩阵表示都是低秩的,所以也可以用矩阵补全[3]的方法进行恢复,该方法相对而言更加精确,另外先低秩表示再恢复也在一定程度上实现了去噪,但是目前矩阵补全的算法在CPU上无法实时处理图片。

深度图压缩

未来的深度信息会像如今视频图像信息一样应用广泛,所以传输成为很关键的一部分,随之压缩也就成为了深度图信息处理的重要一步。

传统的RGB图像压缩主要根据人眼对于高频信息不敏感的特性,利用JPEG压缩方法可以忽略高频信息减少信息含量从而实现压缩,压缩之后仍能够保留符合人眼观察重要信息,同时对于三通道中亮度保留了更多细节。

但是深度图不是给人类直接观察的,而是存储信息,所以不应该以人眼的主观评判方式来进行深度图压缩,深度图仍需要保存高频部分的边缘距离信息,除去峰值信噪比之外最直观的评判依据是转换为点云仍能够正确表现原来物体空间结构。现行的压缩方式有通过将深度图16bit的信息编码为3个8bit的类似于YCbCr的信息,利用JPEG等适用于彩色图像的压缩算法处理数据,然后再解码出16bit深度信息。

也有Kinect研究院[4]提出的直接适用于16bit深度图的RVL无损编码压缩算法,压缩率与其他算法对比如下。

深度图分割

传统的分割方法可以根据深度图的距离的梯度进行分割,在机器学习、神经网络发展迅速的今天,利用神经网络的语义分割更为精确和有意义。

利用SUNRGB-D网络[5]实现的RGB-D语义分割如下所示。

斯坦福大学[6]提出的针对单张深度图给出语义标签并给出完整的3D voxel表示的结果如下所示。

点云(Point Cloud)

   点云通常通过3D激光扫描得到或者通过深度图转换得到。

SmartToF 3D相机模组 灰度图像 点云结果

针对点云这种形式的三维数据处理主要有点云滤波、分割、分类和重建等方面。

点云滤波

近些年,点云处理方面有著名的Point Cloud Library(PCL)[7]提供各种算法支持。四种常用的点云滤波算法为统计滤波(Statistical Outlier Removal)、半径滤波(Radius Outlier Removal)、直通滤波(Pass Through)、体素滤波(Voxel Grid)。统计滤波和半径滤波在处理点云边缘部分飞散点上效果突出;直通滤波可以去除不合理的和不需要的范围外的点;体素滤波可以很好地对点云进行降采样。

点云分割分类

点云分割与分类的各种算法主要为聚类算法,机器学习和神经网络等,2016年由斯坦福大学提出了Pointnet[8]并且取得的出色的效果之后,针对点云的神经网络结构设计便引起了众多科研人员的关注。Pointnet的具体分割、分类效果如下。

针对点云的学习主要有以下几个困难也是二维神经网络不能直接移植应用与三维数据处理的原因:点云的无序性,点云的大小不确定,同一个点云在不同坐标系下表示不同。解决上述几个问题之后,神经网络便能够在三维信息上取得较好的效果。Pointnet++和PointCNN等算法的效果在Pointnet的基础上又有了很大的提升。

点云重建

点云重建也是点云数据处理的重要一部分,通过迭代最近点(Iterative Closest Point, ICP)或者特征点的匹配,将TOF相机从不同角度获得的物体部分点云融合重建为一个完成的点云模型,主要算法有KinectFusion[1] 和PCL开源的Kinfu[9],两者都能得到基本与拍摄物体一致的三维点云模型。

 

目前还有部分通过GAN网络[10]或者卷积网络利用单张RGB-D图片预测整个三维模型的算法,只不过该领域尚处于发展初期,所得结果并不完美,所以说还有很大发展空间。

总结

相比于传统的2D视觉,TOF相机[11]可以直接感知计算深度信息,对应双目获取距离信息来说,ToF计算复杂度很低,可以降低硬件的需求,提高实时性。相比于3D激光, ToF造价低,适应于当前科研与工业紧密结合的发展趋势

在研究方面:

后续部分摘自:http://bat.sjtu.edu.cn/zh/jk3d/ 揭开3D大幕的序曲——3D数据处理

3D点云数据结合深度学习入门基础(目标篇)相关推荐

  1. 【深度学习入门基础】二、简单理解 Transformer

    [深度学习入门基础]二.简单理解 Transformer 文章目录 [深度学习入门基础]二.简单理解 Transformer 自注意力层 多头注意力 Transformer 输入(输出)嵌入 位置编码 ...

  2. 【深度学习入门基础】一、从线性代数和微积分的角度看神经网络

    [深度学习入门基础]从线性代数和微积分的角度看神经网络 这是深度学习入门系列文章,我们企图用最简洁的语言.最干净的表达,让读者快速获取到他所想要的.本系列文章持续更新.一些网上能查到的基础知识,诸如激 ...

  3. 计算机视觉研究院出品:深度学习入门基础全库(附链接下载)

    关注并星标 从此不迷路 计算机视觉研究院 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作者:Edison_G 今天我们"计算机视觉研究院"主要分享深度学习入门的基础书籍集 ...

  4. 3D 点云综述(深度学习篇)

    写在前面的话: 本文主要来自于文章<Deep Learning for 3D Point Clouds: A Survey>以及自己的感悟和看法 文章可以从这里下载:https://arx ...

  5. 深度学习入门基础讲义

    工作确定以后,闲暇时间做了如下一个PPT讲义,用于向实验室新生介绍深度学习.他们大部分在本科期间学习通信相关专业课程,基本没有接触过图像处理和机器学习. 对于一个研究生而言,自学应当是一个最基本也是最 ...

  6. 深度学习入门基础CNN系列——填充(padding)与步幅(stride)

    填充(padding) 在上图中,输入图片尺寸为 3 × 3 3\times3 3×3,输出图片尺寸为 2 × 2 2\times2 2×2,经过一次卷积之后,图片尺寸为 2 × 2 2\times2 ...

  7. 深度学习入门基础CNN系列——卷积计算

    卷积计算 卷积是数学分析中的一种积分变换的方法,在图像处理中采用的是卷积的离散形式.这里需要说明的是,在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关 (cross-correlation ...

  8. 深度学习入门笔记(十二):深度学习数据读取

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  9. 点云上的深度学习及其在三维场景理解中的应用————PointNet(一)

    最近在学3D方向的语义分析. 师兄推荐了一个哔哩大学的将门创投 | 斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理解中的应用!的宝藏视频,我会多看几遍,并写下每次观看笔记. 下文的截图 ...

最新文章

  1. ctfmn.exe——藏在字体目录FONTS下的***
  2. select语句for update---转载
  3. 密码(图解密码技术)_第一章_环游密码世界总结
  4. C++用FindFirstFile、FindNext递归遍历硬盘的文件
  5. delphi Tpagecontrol 动态增加页面
  6. 使用nohup在后台运行scp
  7. 语音跟踪:信号分解、锁相、鸡尾酒会效应、基于PR的信号分离
  8. matlab绘制路线图_绘制国际水域路线图
  9. 基于xlua和mvvm的unity框架
  10. fdfs_client.exceptions.DataError: [-] Error: 2, No such file or directory报错问题
  11. 从零实现深度学习框架——深入浅出交叉熵
  12. Leetcode各种题型题目+思路+代码(共176道题及答案)
  13. coreldraw x8里线段显示尺寸_cdr工具使用技巧与方法,教你CorelDRAW X8图框精确剪裁使用方法...
  14. VC之获取计算机网卡mac地址
  15. ECharts大屏数据可视化展示
  16. 2019年上半年网络安全态势报告
  17. Halcon 3D 常见算子描述
  18. python 爬虫-(2)认识爬虫
  19. Register Form
  20. NDK JNI 变声器实现

热门文章

  1. ATL中窗口句柄与窗口过程的关联方法
  2. 如何阅读datasheet(数据手册)(1)
  3. 第八课:条件判断语句
  4. SpringBoot_Themeleaf的配置
  5. Javascript数组补充
  6. ESYE2021上海快递物流展,物流业高质量服务与全新解决方案
  7. 网络舆情监控平台用TOOM,网络舆情监控记录表?
  8. 这几个好玩的APP分享给你
  9. 2、Py进制转换:荣耀机试题,任意2-64进制转10进制(自定义函数转换)
  10. 用python写一段天然气管道的仿真程序