这一篇文章着重的贡献体现在几个方面,第一,该网络可以处理large-scale的无规则输入,并且在内部转化为有规则的结构进行处理。其二,提出了一种新的任务,即在未知环境中,通过语言描述来表达所处的环境。结构上我觉得和poinnet++比较相似,都是采用pointnet作为局部特征提取器,采用分层结构,不过这里重点有一个multi-scale的点在这里。第三:Hybrid (point-to-voxel) network architecture capable of processing arbitrarily large point clouds in a single pass。
这里是 paper,ECCV18年的文章
这里是 code
此工作在于对于高效的处理大规模的3D数据提出了一个通用的,全卷积的结构。我们工作的一个stricking的特点在于对于例如点云这种无规则的输入,也能在内部将它们转化为有序结构,再通过3D卷积进行处理。和传统的采用有组织或者无组织的方法相比,从输入到输出,我们的方法的优点是在充分利用卷积运算的自然结构的同时,对输入数据进行高效存储,避免了网络中空间信息的冗余计算和存储。这个网络消除了对原始传感器数据的预处理或者后处理的需要。优势一:再加上该网络的性质,使得端到端方法可意处理大场景下的点云,甚至一次处理高达200K的整个房间的点云。优势二:我们的网络可以直接输出一个规则的输出或者是对输入点云的映射,使其能够成为很多3D任务的通用点云descriptor。我们通过在语义体素分割,语义细粒分割和3D scene captioning的标准数据集上做的评估。证明我们的网络在low-level features和复杂合成关系上的学习有效性。
在3D视觉,虚拟现实,场景理解和机器人及自动驾驶领域,处理由3D扫描仪或者深度相机获得的3D数据对很对应用是一个很基础的问题。对3D场景的可信赖语义信息的提出是十分有用的,例如,可以在我们周围场景添加虚拟的3D内容或者描述给给视力受损的人。Analogously,在机器人领域,处理来自深度相机的3D数据是要求机器人处理复杂的任务,避免碰撞,这需要在现实环境中进行智能交互。
最新的一些研究已经开始设计高效的处理3d数据,例如点云数据,体素和mesh结构的网络了.为了能被引入例如基于体素的场景语义分割任务、3D特征匹配和3D分割任务。这些模型的一个主要目标是在处理真实世界数据时对典型问题的鲁棒性,例如,噪声、洞、遮挡和部分扫描,以及视点变化和3D转换(旋转和平移)。另一个和场景分析相关的任务是处理大量的描述真实世界场景特性的类,这些类传统上具有很大的类内方差。
为了可以设计出一个通用的3D架构,可以运用于大和小的输入任务,不仅仅要考虑到对3D输入的多尺度特征提取,更要考虑到一次性处理大输入的能力。 就此,FCN最近由于它对参数的激烈的减少和对输入面积的灵活性,导致了其的快速发展。然而,从最低层次开始学习这些分层统计分布需要大量的数据。为了做到这些,一些方法在综合的数据集上进行训练,但是应用在真实世界上时存在很大的差距。缩小该差距的很大一步由 ScanNet 来完成,这是一个大规模室内扫描数据集。那些在这些挑战任务上具有最优秀表现的方法很快由于3D数据附加维度导致的GPU内存不足而受到限制。尽管前面提到的FCN具有降低参数为作用,但是它要求数据的输入是有序的。为了避免把输入无序的点云转化为有序的作为输入,PointNet可以直接处理无序的点云数据。但是由于Pointnet仅仅是学习的全局的局部特征,该作者后续引入的多层次点网络,称作Pointnet++,来应对这个问题。尽管pointnet++在一些任务上表现不错,但是由于其完全基于点的特性,pointnet++不能很好的利用3D卷积所提供的menory和performance benefits。
我们提出一个处理3D数据的全卷积,通用的网络结构(PFCN):我们的网络是混合的,输入为3D数据无规则的表达式,内部处理是通过3D卷积把他们按照一种规律的方式去处理。这和那些要求内部数据和输入数据均是规则或者不规则的方法有很大的不同。 我们混合方法的优势就在于结合了二者的优势,我们的网络运行在menory efficient input representations上,可以很好的适应场景或则对象的大小,并且通过全卷积网络将其转化为有组织的内部数据 。我们的方法的一个优点在于可以通过处理一次点云时扩展到大容量。他也能够在小区域上被训练,例如 2.4 ∗ 204 ∗ 2.4 米 2.4*204*2.4米 2.4∗204∗2.4米,然后在推理过程中应用于较大的点云。一个通过我们网路训练的三个不同规模大小的可视化的输出如图:,
尽管该方法最初用于处理大规模真实场景下的场景理解,但是被语义体素标签化和3D场景captioning tasks demonstrated,该方法也在语义分割上进行的评估以证明它作为一个feature descripture在处理一大类空间规模时的的通用性。
我们的主要贡献在于:
深度学习已经对3D视觉产生了很深的实质的影响,这些3D的方法可以被分为:
众多的基于体素的方法在一系列任务中证实了其的有效性[论文引用],这些方法采用卷积机构来处理数据,这需要数据的数据是规则的,正好他们的数据是在预先定义好的密集网格中存储,每一个单元格的信息都是被标上一个语义信息的,规则的3D信息的优势在于查找领域信息时的时间负责度为O(1),这种表达式经常显示的models empty space使得空间为密集型空间。由于3D数据的稀疏特性导致了这不是很高效,进一步的,体素对数据展示了准确的像素信息。为了将稀疏的3D数据转化为密集表达的体素需要预处理:要么使用简单的占用网格或则是对它进行编码,例如,在 truncated signed-distance filed(TSDF)中,这意味中模型并不能看见数据本身而是对它进行下采样编码。
**Voxnet**是使用该方法的先驱,类似的,Wu等人学习deep 体素表达式来学习shape和对应的shape是被及补全,另外一个比较有意思的网络是3D-Unet,它处理相对较高的分辨率,然后输出这个体素的中心点。由于目前内存的限制,大规模的数据体素需要更低的采样密度上进行labeling,这意味着像素的损失。可选择的,如果使用较小的context去inform每一个体素的预测值,也可以实现更高的密度。例如Scannet根据体素的领域的occupancy 特性对每大约5cm的体素列进行语义体素标定。SSCNet对共同的语义信息达到了一个更大的空间范围为 2.26 m 2 2.26m^2 2.26m2,然鹅,一样的,这些的输出都是经过了降维的。
为了解决这个限制,OctNet采用了Octtree,以其在octants中有效的划分3维空间而出名。kd-trees。
pointnet是该无序三维数据输入的先驱。该方法展示了直接处理点云的优势,在连续区域中学习了更多准确的分布,因此避免了需要对输入进行分辨率采样。pointnet在很多分类,场景分割等任务中都取得了最好的结果,但是却只能在同一纬度上进行处理。并且,他们宣称了该网络对点密度的变化和outlier的鲁棒性。然而,由于Pointnet不能提取局部特征,Pointnet++使用pointnet作为其局部特征提取器提出了多层结构用于语义分割。在语义分割任务中,point contexts是最先被提取出来的,接着通过3NN插值的方传播到潜在区域。对这种大尺度的场景分割任务,pointnet++储存整个网络中的context of points和冗余处理是相关的,这导致pointnet++一次性处理大面积输入存在阻碍。代替的是哦,在语义信息的场景分割任务中,它处理由8192个点表示的 1.5 ∗ 1.5 ∗ 3 m 3 1.5*1.5*3m^3 1.5∗1.5∗3m3的区域。
我们的工作是第一个这种混合体素和point的工作,因此定位在二者之间。同样的(as such),就是可以处理使用3D卷积编码的多尺度强特征和直接处理原始点。
我们的网络处理无规则输入并且采用pointnet作为底层特征描述符,和pointnet++不同的是,我们使用的是均匀采样。这一步在每一个局部领域都捕捉到了局部精确的local geometry 这怎么处理不均匀分布问题? 以及将无序的输入进一步转化为有序的表示等待进一步处理。这一步的转变是根据3D卷积接着进一步的处理是进行多尺度组合,我们的网络提取的空间有三种大小分别是: S 1 , S 2 , S 3 S_1,S_2,S_3 S1,S2,S3。在每个scale下采用的skip connections的大小分别是 1 ∗ 1 ∗ 1 和 3 ∗ 3 ∗ 3 1*1*1和3*3*3 1∗1∗1和3∗3∗3,可以使得网络捕获的特征比例总数翻倍Skip connections with 1×1×1 and 3×3×3 convolutions at each scale inexpensively double the total number of feature scales the network captures,这里的动词的double,表示翻倍
,在最高的提取层,这些特征还根据他们到每一个体素的距离加权平均汇总特征。At the highest abstraction scale, the features are additionally average pooled together weighted by their distance to each voxel.
,一旦每一个scale的特征提取完后,同一个size的特征就汇集在一起接着进一步的通过3D反卷积进行上采样以致于达到理想的输出采样密度。下图给了一个我们方法的overview,根据场景的不同,可以分别应用额外的卷积、潜在的最近邻居插值或全连接层来生成有序的端到端映射或单值输出。在下面的部分中,我们将更详细地描述网络的不同架构。
FCPN包含了四个主要的模块:
三个abstraction层被使用来做到空间上和概念上的划分,第一层提取到例如边角这种基础的geometric特征,第二层是对复杂的结构响应,最高层在其他机构的上下文中。The first level captures basic geometric features like edges and corners, the second level responds to complex structure and the highest level to structure in context of other structures
第一层采用一个简化的pointnet,用于高效的提取局部区域的geometric 特征,它包含有 r a d i u s s e a r c h 和 g r o u p i n g , 1 ∗ 1 ∗ 1 radius search和grouping,1*1*1 radiussearch和grouping,1∗1∗1的卷积,紧接着是最大池化层,采用pointnet在均匀的3D网格中产生代表最底层物理特征的3D特征volume。这个feature volume接着喂给下一个的abstraction layer。更高层次的abstraction 层采用内核和步长都是2的3D卷积进行实现。**它们被设计成以非重叠的方式抽象空间,前面的抽象层的8个特征(八分圆)由后续层中的单个单元表示,就像OctTree一样,**这种非重叠的空间分区方式很大程度上减少了在每个abstraction level上对空间的占用。
根据三种不同scale的特征提取层,我们现在应用 1 ∗ 1 ∗ 1 和 3 ∗ 3 ∗ 3 1*1*1和3*3*3 1∗1∗1和3∗3∗3的卷积再更多尺度上来提取有意义的特征,如下图所示。对每一个的abstraction 层次,跳跃连接在level的固有的空间尺寸上进行特征传播,同样 3 ∗ i t 3* it 3∗it的网络将会在后续的网络中被合并。这允许对更大尺度的识别,该网络可以成为更好的recognise 结构,以及客服在abstraction layer的严格非重叠分区。
加权平均池化层经济有效的cost-efectively
汇集了long-range的上下文信息。对最高层次的abstraction的每一个cell来说,在这个区域中其他所有cells的响应都通过他们到周围1米的球体的欧式距离加权。For every cell in the highest abstraction level, the responses of all other cells in the space are averaged together weighted by their euclidean distance to a 1m sphere around the cell.
因此,离球面最近的带你具有最大的权重值。这强调了远程上下文信息,而不是那些直接相邻已经被 3 ∗ 3 ∗ 3 3*3*3 3∗3∗3的跳跃连接所捕获的单元格的信息。通过允许邻接语义信息影响预测提升了网络 的判别能力。这里很不懂????,如何解释
例如,例如,通过考虑附近是否有书桌,或者更确切地说,是否有水池,来区分椅子和厕所。该层的无参数特性不仅非常划算,而且提供了更有用的信号。平均空间池化高效的移除了附近结构的精确配置,但是保留了他们的语义ID。这是十分理想的特性,因为临近物体的语义ID可以帮助区分边界情况,而不是他们所处的配置。继续拿椅子和厕所来讲,知道附近有一个水池比知道水池在厕所中的朝向是左边更有意义,我们也避免固定的挑战:更大的空间上下文 > 1 m >1m >1m鼓励模型学习空间的所有配置,这导致了不通用性。最终,平均加权池化层展示了在推理阶段将网络扩展到更大space所需要的flexibility。这一个层好懵逼
在mergeing阶段,对abstraction层所对应的跳跃连接第一希被整合,接着通过3D反卷积进行 2 ∗ 2* 2∗的上采样。这允许每个abstraction level的特征进一步互相融合。 1 ∗ 1 ∗ 1 1*1*1 1∗1∗1的卷积在反卷积层之间展现了很好的性能。
网络的结果变种可以适用于不同的场景:为了产生规则的输出,该网络加入了一个额外的反卷积层来得到想要的点密度,潜在的最近邻插值被应用在有语义信息覆盖的区域,对于end-to-end的过程,对每个输入点云的点而言。全卷积层用于总结整个输入是恰当的。例如scene captioning.
由于最远点采样对数据空间分布没有预先的假设,所以最远点采样在描述occupied space的特性时,是十分高效的。然而,为了描述整个空间(occupied 和 unoccupied),只能是采用均匀采样的。
问:为啥要采样unoccupied space? 因为整个房间都是输入。
Fully-convolutional Point Network 给作为输入的整个空间容积打上label。这是通过在执行 3 ∗ 3 ∗ 3 3*3*3 3∗3∗3的卷积之前,将特征图上采样达到原始密度以及对称填充体积来实现的。由于occupancy characteristocs 表达在volume的边界有可能延伸出去,因此对于在input volume之外的区域最有可能被label为离它最近的cell。
该网络是可以变化的,在训练时输入为比较小的采样,但是在测试时可以扩展到输入的好几倍大小。该网络成功一次测试了 80 m 2 80m^2 80m2大小,且包含了200k个点。甚至在更加稀疏的情形下,该网络还能测量更多的空间。这进一步延伸了该网络的通用性,比如自动驾驶。
我们引入了一个新的称作为3D Captioning的任务。对空间产生有意义的文本描述。我们设想一下该任务作为辅助科技是有意义的,对于那些要导航或者在不熟悉环境中的视力受损的人来说。为了测试该网络的专业性,我们基于ScanNet做了一个人工标记的caption数据集。我们选取最能描述ScanNet的空间多样性的前25个句子。他们被设计回答3中问题,“我所处的地方的功能价值是啥?”,“我应该怎么走?”,“我应该如何和该空间互动?”。一个场景的100帧都会有0或者更多可适用的captions。接下来,该数据集被验证用于去除异常值。为了实现这个,一个Scene caption annotion tool 被设计出来用于给近一半的Scannet数据进行标记。
在small-scal的3D分割和large-scale的3D分割上进行了测试,在Scacnnet上测试了语义分割,这是一个包含有1513个RGB-D的室内扫描且含有对应的表面重建和语义分割。这允许我们和基于体素的分割网络和pointnet++网络的分割进行对比,我们达到了具有竞争力的表现,但是由于我们的网络可以处理各种大小的输入,因此在5.2中我们在一个model-based的分割上标准数据集上,展示了我们网络扩展到其他数据任务和较小scale的能力。为了进一步展示我们网络在更高场景理解任务上的有用性,我们训练我们的网路来预测没见过的场景的captions,结果在5.3.
这个体素Label任务是训练一个网络来预测被占用空间的语义信息,一共有20类。我们提供了语义体素标签网络的变体以及实验设置。We present a variant of the network for Semantic Voxel Labeling along with the experimental setup.
按照ScanNet中的相同步骤生成训练样本,根据已公布的ScanNet train/set split,我们从1201个场景中提取至少占2%的占用率和70%的有效注释。训练样本为2.4m3,均匀点间距为5cm3。这产生了一个75k volume的培训集。在训练期间,样本被重新采样到一个固定的基数16k点。增强是动态执行的:沿上下轴随机旋转增强,抖动增强在+/- 2cm范围内,point dropout在0-80%之间。输入中只有点的X、Y、Z坐标.ground truth是由20个对象类和一个表示unoccupied的类组成。对312个场景测试集中的每个场景进行预测2.4m3的场景裁剪处理.每个语义类都由其在数据集中每点频率的逆对数加权.
语义体素标记网络的空间尺度S1、S2、S3分别为15cm、30cm、60cm。因此,该网络在15cm、30cm、45cm、60cm、90cm、180cm尺度下提取特征why?
,并在60cm空间尺度下汇聚特征.每个抽象、特征学习和上采样层都有3个1×1×1层。一个额外的反褶积层达到最终的输出密度为5cm3。在这层之前应用Dropout(50%)。我们还在最后一层使用了最后的3×3×3卷积来加强相邻预测的空间连续性,避免了单点分类错误。使用ADAM优化器训练网络,学习速率为0.01,每个时期衰减一半,持续5个时期。
表1给出了基于体素的20个类的语义分割的定量结果。该方法的加权精度为82.6%,非加权精度为54.2%;相比之下,ScanNet只有73%的标签(加权)或50.8%(未加权)的体素正确。三个PointNet++变体(MSG+DP)的最佳性能报告为84.5%(加权)或60.2%
(无关紧要的)。我们的方法在很大程度上优于ScanNet,尤其是在课桌、厕所、椅子和书架上。请注意,我们的方法具有能够处理所有场景的优势,从小浴室到整个公寓,与将滑动量的预测与多数投票相结合的PointNet ++相比。图5显示了一些具有相应基础事实注释的定性结果。
我们还在一个较小规模的点云处理任务上评估了我们的方法–基于模型的语义部分分割。为了评估这一点,Yi等人[19]提供了一个基于ShapeNet的基准分割数据集。它由16种类型的对象组成的50个部分类别组成。例如,汽车类别具有零件类别:引擎盖,车顶,车轮和车身。 (见表2)。
对于这个任务,我们直接对提供的数据进行培训,而不进行任何预处理。在训练过程中,首先对输入云进行重新标定,使其最大程度地拟合在单位球(2m直径)内,然后像前一项任务一样,增加点缺失和抖动,随机移动(+/- 5cm)并缩放(+/- 10%)。
网络的输入空间范围为2.8m,使每个点都具有完整有效的上下文。空间尺度S1 S2 S3为10cm,20厘米,40厘米。三个1×1×1层紧跟在每个sbstraction,feature learning 和upsampleing后。在上采样特征恢复到原始采样分辨率后,在潜在空间中进行三近邻插值。然后,像我们比较的方法一样,将一个独热编码的对象类连接到每个点的特征向量上,然后是三个最后的1×1×1层,它们之间有50%的dropout。
该方法在16个对象类别中有12个类别的性能优于基准数据集上的最新技术。图6给出了可视化示例。
为了演示空间有序输出的有用性,我们基于FCPN网络评估3D字幕任务的基线方法。 为了训练字幕模型,我们采用语义体素标记网络并用三个全连接层替换最终的上采样层和随后的卷积层。 我们冻结语义体素标签网络的权重,并仅在此任务上训练完全连接的层。 再一次,字幕由其在训练集中的频率的倒数对数加权。 我们考虑网络产生的前3个最自信的字幕。 示例在图7中示出。与标准的基于图像的字幕不同,所提供的结果暗示3D字幕输出与所提出的网络一起如何有效地总结关于特定视点的相关场景几何形状以辅助导航和交互任务。 补充材料中提供了其他结果。