PointGroup
Backbone Network
场景以点云的形式输入进网络,每个点包括三维坐标和三维颜色信息。
网络形式是一个U-Net(先对点体素化后,使用稀疏卷积SC和submanifold稀疏卷积SSC进行,得到的结果再从体素化生成回点值形式(Submanifold sparse convolutional networks, 2019)),通过网络后,每个点被提取出K维特征。
Clustering
然后再从这K维特征中得到两样东西,(通过一个MLP得到)用于语义分割的一维标签S(同一类的标签值相同)和(通过同类点求位置的均值得到)用于预测目标中心位置的三维向量o(offset),指示对于该点,其所属的分割类的中心的方向。
由于这种分类让每个点按类聚在一起,就可以根据点聚类之间的空位距离对点进行聚类。
由于这种offset不总准确,论文将原位置p采得一个聚类结果,再由加上offset的新位置q采得一个聚类结果,将两个结果取并集,输入到ScoreNet中
Score Net
对于每个聚类,该聚类i的Ni个点先前提取的K维特征信息构成NiK维聚类特征,位置构成Ni3维位置特征,和之前类似的方法体素化(每个体素特征求平均)后输入SC和SSC的较小U-Net进一步提取特征后经过max-pooling得到一个聚类特征,进而输入MLP后经过Sigmoid函数得到最终分数Si
最后用先前的聚类信息和得到的分数信息输入NMS输出最终聚类信息。
GRL (*Gradient Reversal Layer)*
GRL层
梯度下降是最小化目标函数,而GRL这一层的目的是“向负方向梯度上升”,其实就是最大化目标函数。
模型说明
上图绿色部分是特征提取,对应GAParts就是那个Sparse U-Net,提取特征F用的
蓝色部分是处理分类任务用的,对应GAParts就是后续的聚类和score模块等
粉色部分就是重点的domain classifier,是一个域分类器,本质上是一个判别器。
GRL和domain classifier的意义
在训练中,绿色部分和粉色部分构成了一种类似GAN的结构,绿色部分作为生成器,粉色部分作为判别器,目标是让生成出来的feature趋于域自适应(域分类器尝试将feature进行分类,如果这种分类越来越难以进行,说明提取出来的feature就是共通的feature,也就趋向于域自适应了)
GAParts中的Domain-invariant Feature Learning
总共提出了三种方法,均是对于domain-classifier的改进,用于使模型更加适应不同类型,能准确提取不同物体的特征。
Part-oriented Feature Query
由于GAParts是对Parts的分类,因此实际上做分类器是对点向不同的结果label(即parts/clusters的编号i)分类。因此采用对于分数大于某阈值s的所有parts,计算分类器对其的loss再求均值的方法
Multi-Resolution
由于部件大小不一,为了能适应多种大小,向Domain Classifier输入的feature来自三个不同大小的U-Net层,最后loss取加权总和。这样能让网络适应不同大小的部件。
Distribution-Balancing
为了能使训练中对于不同类型不同种类的Parts训练成果比较均匀,采用了一种均匀分布的方法,具体来说是对前述Part-oriented Feature Query在求均值前加了一个权重,对于准确率更高的部分,los计算的就更小一些,同时对于域分布量更大的计算的更小一些。