之前看PointCNN的时候,里面解释说点云进行Conv和DeConv的差别就是后者的输出比输入相比具有的维度更低(通道数更少),分辨率是从早期的Conv层转发的,遵循U-Net。当时就没有看懂这句话的含义,于是就去看了下U-Net这篇文章,这篇文章是利用卷积神经网络对生物医学图像进行分割,算是一种图像分割,其实它与三维点云分割的思想是一样的, 了解完这篇文章,对点云分割可能就会更加了解。
我们在深度学习中常见到的卷积神经网络,它的比较典型的用途是做分类,其过程就是对输入图像进行一系列卷积、池化等操作,将图像分辨率不断降低,但是其特征维度逐渐提升,最后利用FC和softmax进行一个多类别打分,输入图像是哪个的概率高就给它贴上那个标签。
U-Net的网络长相比较像一个U字,左半边称之为Encoder,就是提取特征(聚合特征)下采样的部分,其实也可以称之为编码的过程,右半边称之为Decoder,也是上采样解码的部分,得到我们的输出分割。这里面需要注意的是论文中给的输出的大小是388×388×2(一个是前景,一个是后景),而输入是572×572的,这就意味着我们分割的结果其实是取了中间部分的图像,网上Github很多博主对U-Net网络的编码并不是都是按照它的结构来的,它是在卷积的部分加上了一个Padding,导致卷积过程不会改变特征的长和宽,并且在卷积和ReLU之间加了bn层,致使图像只有在下采样之后分辨率才会减半。上采样部分其实就是一个反卷积的过程,将分辨率还原和降低维度的过程,完成分割。
上图U-Net的结构中有一个灰色的操作,这个是将上采样之后的feature map与下采样部分的进行拼接,但是因为上文的特征分辨率高,所以将上文的分辨率进行裁剪,裁剪完之后在与下文进行拼接,达到一个上下文特征信息结合的效果。
实验部分也证明了U-Net网络在当时的优势,再次不做说明,上文只是自己对U-Net的理解,详细源码和文章见链接,如有错误请多多指正!!!
论文:https://arxiv.org/abs/1505.04597