【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation

3DGNN的RGBD语义分割

论文地址

https://ieeexplore.ieee.org/document/8237818

代码地址

https://github.com/yanx27/3DGNN_pytorch

摘要

RGBD语义分割需要2D外观和3D几何信息联合进行推理,文章中提出了三维图神经网络(3DGNN),对3D点云使用KNN构建K近邻图。图中的每个节点对应一组点,设计一个一元CNN来从2D图像提取外观特征作为其节点的隐藏表示向量。每个节点根据递归函数,根据当前自身状态和邻居传入的消息动态的更新隐藏表示。迭代一定的时间步长后,,每个节点被用于预测每个像素的语义类别,得到最终的语义分割结果。

出发点

传统的RGB语义分割由于二维图像设置,没有利用到真实世界的几何信息,RGBD语义分割可以通过利用深度信息来利用真实世界的几何信息。

在图1(A)中,在2D图像中,位于桌子上的红点局部邻域会包括微波和计数器像素。在3D点云中,加入了深度信息之后没有这样的混淆,如图1(B)所示。
【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation

实现细节

整体框架

【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation

图构建

通过2D像素图和深度图的结合,构造出一个有向图,[X,Y,Z]作为3D坐标,作为图中的结点,边的构造由KNN来完成,实验中K选取64,产生的图为不对称结构。

传播模型

每一个像素的初始隐藏值(CNN提取到的特征),更新模型为:
【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation
消息聚合函数G为多层感知机模型(MLP),使用ReLU作为**函数。

对于更新函数,文中提出了两种选择:

Vanilla RNN Update: 将隐藏消息h和聚合到的边信息连接后送入MLP中:【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation
LSTM Updata : 另一个选择就是使用LSTM进行更新。

预测模型

预测模型为:
【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic SegmentationS是所有节点共享的SoftMax做**函数的MLP,在进行MLP操作之前,将最终的隐藏状态与初始隐藏状态连接(提取特征CNN的输出)用以捕获2D外观信息。损失函数为Softmax交叉熵损失函数,并使用时间反向传播(BPTT)算法对模型进行训练。

实验结果

在 NYUD2数据集实验结果如下图所示:
【论文笔记(2)】3D Graph Neural Networks for RGBD Semantic Segmentation

个人总结

这篇文章是我大概半年前看过的,当时觉得没有什么可以采用的地方,在看了一些相关的图网络文献后,回过头来看,还是觉得有一些值得采纳的地方的。
1.首先区别于传统的RGB语义分割,文章加入了深度信息用来捕获真实世界中的几何信息。
2.在图像这些欧几里得数据中,想要应用图网络是一个挑战,文章中提出的图构建方案也可以当做一个参考点。
3.还是应该多读论文,有时候当你觉得一篇相关方向的论文的创新点不怎么吸引你的时候,很有可能是你论文文献读的不够多,导致你对他的创新点没有感觉。