点云

A point cloud is a set of data points in space. The points represent a 3D shape or object. Each point has its set of X, Y and Z coordinates.
——摘自 Wikipedia: Point cloud

点云 (PointCloud) 即一种空间中点的集合,它一般指通过扫描设备得到的物体表面的点集,这些点有自己的位置信息和一些附属信息。

其中,位置信息的直接呈现一般是深度信息,通过激光雷达等设备获得,它通过一定的转换后,可以变为空间中的 xyz 坐标信息。同时,附属信息包含了点的色彩信息 (RGB)、激光反射强度 (Intensity) 等等。

由于点云具有一定的空间特性,它相较于平面二维化的视频数据、图片数据有着天然的对空间描述的优势,从而基于点云进行的三维重建、物体识别和目标搜索等等处理都具有着广泛的应用空间。

点云语义及实例分割概述

由于一些原因,我首先接触的方向是点云的语义分割。总体而言,通图像处理领域的语义分割一样,这个方向的工作是通过点云的原始数据,使用一些方法使得机器可以识别出“每一坨点到底是什么东西”。

FCN 与语义分割

进入 21 世纪,为实现人工智能而诞生的机器学习算法呈现出爆发性增长,同时深度学习的研究也为诸多的领域注入了新鲜的血液,在搜索引擎、机器翻译、自然语言处理、推荐算法等领域产生了极强的推动力,也结出了极多的果实。

机器学习以训练数据通过学习算法得到模型,再以模型去处理新数据进而得到预期结果。神经网络通过模拟神经元之间的信息交互,成为了一种可行的数据处理方式,同时也作为一种解决问题的思路推动了机器学习的发展。而对于其算法的科普层面,3Blue1Brown的视频是我曾经的敲门砖,质量很高。

卷积神经网络 (CNN) 的年龄大约和我这代人相仿,主要应用于图像处理层面,通过卷积提取特征的方式解决了全连接网络的运算量过大、参数量过大的矛盾,可以解决对图片的分类问题。而对于怎么样才能识别图片中特定部分的物体,在 2015 年之前还是一个世界难题。

全卷积网络 (FCN) 的提出对于这一领域是革命性的进步,通过对图像进行像素级的分类,从而解决了语义级别的图像分割 (semantic segmentation) 问题。它通过将 CNN 后期的全连接层替换为反卷积层进而能得到和输入同样大小和规模的输出。

encoder-decoder 架构

摘自知乎 encoder-decoder 是基于 FCN 的架构。encoder 由于 pooling 逐渐减少空间维度,而 decoder 逐渐恢复空间维度和细节信息。通常从 encoder 到 decoder 还有 shortcut connetction(捷径连接,也就是跨层连接)。其中 U-net 就是这种架构很流行的一种,如下图:

U-Net

这种架构下的难点在于下采样的过程如何更好的保留特征和信息。同图像处理本身不同,点云的处理需要决策的是“保留哪些点”和“怎么聚合周围点的信息到这个点上”,由于相较于图片的像素点的离散化,点云具有一定的连续性特征,于是这也是一个值得考虑的课题。

语义分割评估指标 MIoU

MIoU(Mean Intersection over Union,均交并比):为语义分割的标准度量。其计算两个集合的交并比,在语义分割的问题中,这两个集合为真实值 (ground truth) 和预测值 (predicted segmentation)。

IoU(Intersection over Union) 计算的是计算 A 与 B 的交集 (橙色部分) 与 A 与 B 的并集 (红色 + 橙色 + 黄色) 之间的比例,在理想状态下 A 与 B 重合,两者比例为 1。

MIoU 则是针对每一个可能的类别识别的准确度取平均值,进而得到语义分割方案的准确度,从而作为多种方案之间评估的指标之一。

假设如下:共有k+1k+1个类(从L0L_0LkL_k,其中包含一个空类或背景),pijp_{ij}表示本属于类 i 但被预测为类 j 的像素数量。即,piip_{ii}表示真正的数量,而pij,pjip_{ij},p_{ji}则分别被解释为假正和假负,尽管两者都是假正与假负之和。

MIoU=1k+1i=0kpiij=0kpij+j=0kpjipiiMIoU = \frac{1}{k + 1} \sum_{i=0}^k \frac{p_{ii}}{\sum_{j = 0}^k p_{ij} + \sum_{j = 0}^k p_{ji} - p_{ii}}

名词解释

  • MLP:Muti-Layer Perception,多层感知器。神经网络的核心结构。
  • Sampling:采样。分为下采样 (downsampling) 和上采样 (upsampling),对于数据处理则对应着减少数据量和增加数据量的操作。
  • Pooling:池化。其本质属于一种下采样,一定程度上控制了过拟合。

Reference

  1. Point cloud - Wikipedia
  2. 点云 - 百度百科
  3. 点云数据处理概要 - 知乎
  4. 深度学习 Deep Learning - 3Blue1Brown
  5. 图像语义分割综述 - 知乎
  6. 机器学习概述 - 简书
  7. CNN 发展史 - 知乎
  8. 全卷积网络 FCN 详解 - 知乎
  9. 于深度学习的图像语义分割技术概述之 5.1 度量标准 - CSDN