点云 | #00 | 机器学习与语义分割
点云
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就是这种架构很流行的一种,如下图:
这种架构下的难点在于下采样的过程如何更好的保留特征和信息。同图像处理本身不同,点云的处理需要决策的是“保留哪些点”和“怎么聚合周围点的信息到这个点上”,由于相较于图片的像素点的离散化,点云具有一定的连续性特征,于是这也是一个值得考虑的课题。
语义分割评估指标MIoU
MIoU(Mean Intersection over Union,均交并比):为语义分割的标准度量。其计算两个集合的交并比,在语义分割的问题中,这两个集合为真实值(ground truth)和预测值(predicted segmentation)。
IoU(Intersection over Union)计算的是计算A与B的交集(橙色部分)与A与B的并集(红色+橙色+黄色)之间的比例,在理想状态下A与B重合,两者比例为1 。
MIoU则是针对每一个可能的类别识别的准确度取平均值,进而得到语义分割方案的准确度,从而作为多种方案之间评估的指标之一。
假设如下:共有个类(从到,其中包含一个空类或背景),表示本属于类i但被预测为类j的像素数量。即,表示真正的数量,而则分别被解释为假正和假负,尽管两者都是假正与假负之和。
名词解释
- MLP:Muti-Layer Perception,多层感知器。神经网络的核心结构。
- Sampling:采样。分为下采样(downsampling)和上采样(upsampling),对于数据处理则对应着减少数据量和增加数据量的操作。
- Pooling:池化。其本质属于一种下采样,一定程度上控制了过拟合。