首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

内存计算显著降低,平均7倍实测加速,MIT提出高效、硬件友好的三维深度学习方法

2019-12-19

网站:http://pvcnn.mit.edu

论文:   https://arxiv.org/pdf/1907.03739.pdf

跟着传感器技能的开展和许多新式运用场景的呈现,三维深度学习成为了近期的研讨热门。三维数据往往以点云的办法存储,近年来,研讨人员抑或是挑选先将点云离散化成结构化的、规整的栅格办法,再运用体素卷积神经网络对栅格数据进行处理;抑或是挑选直接在点云数据上进行卷积核算。

依据栅格化数据的处理办法往往受限于其在高分辨率下巨大的内存和核算开支:从杂乱度的含义上说,volumetric CNNs 的运算量和内存占用都和栅格的分辨率的三次方成正比,导致 volumetric CNNs 无法和 2D CNN 相同处理高分辨率的输入。而关于直接在点云上进行深度学习的办法,尽管点云表明大大减少了存储空间上的占用,但要在稀少的、非结构化的点云数据上进行卷积却绝非易事。

咱们发现之前的作业竟需求花 80% 以上的时刻进行对数据的不规矩拜访以作为卷积运算的准备作业,而实践核算所占的时刻份额却十分低,这无疑造成了依据点云的深度学习办法往往比较低效。为处理这样的问题,咱们提出了 Point-Voxel CNN来完成高效的三维深度学习。PVCNN 运用点云的办法来存储数据,以减小内存的耗费,而又挑选栅格化的办法进行卷积,这样能够防止处理点云稀少性所带来的巨大的非规矩数据拜访开支,很好地提高部分性。这种扬长避短的规划使咱们的 PVCNN 在内存和核算上都十分高效:咱们只用十分之一的内存就能够取得远高于 volumetric CNN baseline 的准确率,而比照于多个依据点云直接进行深度学习的办法,咱们又能够得到均匀 7 倍的实测加快。

PVCNN 一起展现了在嵌入式、端核算设备上布置的潜力:经过缩小 PVCNN 的通道数得到的小模型往往能够在三维语义切割使命上比 PointNet快两倍,却到达它功能愈加强壮的续作 PointNet++的精确度。咱们也在与自动驾驶密切相关的三维物体检测使命中验证了咱们办法的有效性。依据咱们 Frustum-PVCNN 的模型均匀相对 Frustum-PointNet++有 2.4% 的 mAP 提高,一起还有 1.5 倍的加快与内存节约。相关作业现已被 Neural Information Processing Systems 2019 接纳为 Spotlight Presentation,咱们将在 12 月 10 日于温哥华宣讲咱们的作业。

三维深度学习在近期研讨中取得很大发展。但是,之前的作业更重视怎么提高三维深度学习核算子的表征才能,却鲜有研讨致力于提高三维深度学习办法的功率。

从核算机硬件的视点看,关于存储器的拜访往往对算法的功率有着决议性的影响。下面的左图显现,在硬件上,片下的 DRAM 访存能量耗费比片上的 SRAM 拜访或许一次浮点乘加核算贵两个数量级,而 DRAM 拜访的带宽也远小于片上资源或是运算资源;另一方面,下面的右图提醒了在 DDR 内存中非规矩访存带来的损害:频频的板块抵触导致数据无法在一个时钟周期内被接连从不同内存板块中读出,然后进一步提高访存带来的延时。

因此,为使得三维深度学习办法愈加高效,咱们需求防止 许多访存 和 不规矩访存 。

关于 2016 年前后被许多研讨的依据栅格的三维深度学习办法,限制其功率的掣肘是随分辨率三次方添加的内存/核算渐进杂乱度。栅格作为一种相似二维像素的离散化表征办法,其不可防止的困难是落在同一个格中的两个点将在栅格化后变得无法区别,然后导致信息丢掉。咱们在 ShapeNet 数据集上做了核算,发现假如要在一块 Titan Xp 上练习体素卷积神经网络,只能包容分辨率为 64x64x64 的栅格输入,此刻会有 42% 的信息丢掉,而添加七倍的核算资源也仅仅能让可区别的点数牵强逾越 90%。如前所述,这样的内存耗费是由栅格表征办法本身的杂乱度所决议的。

依据点云的深度学习办法则不同,影响其功率的实践上是不规矩访存。咱们知道,点云上的每个点在三维空间里接连散布,而在内存上相邻的点在真实的三维空间里并不一定相邻。这就给卷积运算,这种界说在每个点邻域上的运算带来应战。一方面,取得每个点的邻域需求许多的非规矩数据拜访;另一方面,由于三维空间的接连性,咱们无法简略地经过相似 2D CNN 或 Volumetric CNN 的办法去界说一个依据查找表的卷积核,只能去动态界说卷积滤波器,这又会带来一些核算开支。

下图显现了咱们的发现:之前最先进的依据点云的深度学习办法 DGCNN, PointCNN 和 SpiderCNN,往往需求 50%-80% 的时刻进行非规矩数据拜访和动态卷积核核算,而实践核算的时刻乃至或许低至 20% 以下。很显着,从运转时刻的视点,依据点云的办法也具有极大的优化空间。

为此咱们提出 Point-Voxel Convolution作为一种全新的、高效的三维深度学习核算子。如前所述,PVConv 仍运用点云办法存储数据,因此内存占用小,全体的访存量也小;另一方面,咱们的 PVConv 在栅格表征下进行卷积;这样,咱们大大省去了传统的依据点云的三维深度学习办法在进行卷积时难以防止的非规矩内存拜访及动态卷积核生成价值,然后取得上图所示的极高的实践核算比。

经过 2D CNN 般地重复 PVConv,咱们能够得到 PVCNN——一个可用于多种三维核算机视觉使命的强壮而高效的深度学习网络。咱们在多个物体等级、室内场景等级以及室外场景中物体检测的使命中展现了 PVCNN 的有效性。

咱们选用两种 Irregular Access Cost 和 Dynamic Kernel Computation Cost 为零的子操作:多层感知机和栅格化卷积。下面咱们将展现怎么以很低的价值将两者有机结合并得到咱们的 Point-Voxel Convolution 这种核算子。上图中上面的分支为依据栅格的信息聚合分支,其分辨率相对较低:

归一化:

输入点云的标准往往会有一些差异,而咱们期望在进行进行栅格化卷积时特征图的标准是相同的,这就需求进行归一化。在咱们的办法中,咱们只在栅格分支部分地进行这种归一化操作:将输入点云缩放到单位球中,并经过 [-1, 1] 到 [0, r-1] 的坐标线性映射把点云坐标转成栅格坐标。

栅格化:

咱们将点云表明部分地转化成栅格表明以便进行栅格化卷积。直观地,咱们运用 Charles Qi 等人提出的对称函数建模同一栅格内的所有点:咱们挑选将栅格内所有点进行均匀池化以得到代表某个栅格的终究特征。

信息整合:

咱们在得到的栅格特征图上进行栅格卷积,以到达信息整合的意图。相似于 2D CNN 和一般的 Volumetric CNN,咱们在每次栅格卷积后也经过批归一化和非线性激活函数。

反栅格化/点云化:

如前所述,栅格表征无可防止地会丢掉一部分信息。为了坚持点云一直处于高分辨率,咱们需求经过反栅格化操作将栅格数据从头转化为点云。一个朴素的主意是直接给落在每个栅格内的点赋上其地点栅格的特征,但是,这样会导致同一栅格内点的特征完全相同。咱们也能够挑选三线性插值来依据每个点到相邻栅格格点的方位来决议其特征。这样,咱们能够确保每个点在反栅格化后的特征一般不相同。

上图中的下面分支为依据多层感知机的特征转化分支,它经过一层全衔接层坚持了点云处于高分辨率,这样的高分辨率信息能够为来自栅格化分支的低分辨率、邻域信息供给重要的弥补。当咱们得到了两个分支的信息后,咱们能够简略地经过 elementwise addition 将它们整合起来,这便是一个完好的 PVConv 操作。

值得注意的是,PVConv 是一个十分高效的核算子。如前述,PVConv 显着得益于两个分支本身不存在非规矩访存以及动态卷积核核算。而仅有引进额定开支的栅格化和反栅格化进程,其非接连访存的价值都是 O 次,由于每个点只需求被拜访一次;而关于一般的依据点云的三维深度学习核算子,进行一次邻域信息聚合首要要把每个点的邻域信息取来,这儿就有 O 次的非接连内存拜访,k 是邻域中的点数,往往在 16 到 64。很显着,PVConv 大大减小了非接连内存拜访。别的一方面,PVConv 并不需求像依据点云的三维深度学习核算子那样去核算每个点的邻域,这也大大下降了额定开支。

从微观上看,咱们的 PVConv 中每个过程都是可导的,而且它的输入和输出都是点云。所以从梯度流的视点看,PVConv 和一般的直接依据点云的三维深度学习核算子相同,既能够经过本身堆叠构成比较深的神经网络,也容易地被整合进任何端到端可练习的三维深度学习网络中。

咱们在具有代表性的三维视觉数据集:ShapeNet,S3DIS和 KITTI中验证了 PVCNN 的体现。

在 ShapeNet 数据集上,咱们的完好通道数模型能够以 2.7 倍的实测加快到达略好于 PointCNN 的功能,一起咱们的内存占用也减小了 1.6 倍;而即使咱们将通道数缩小四倍,咱们的模型也能够在到达 PointNet++, DGCNN 等杂乱办法功能的一起比 PointNet快 1.9 倍、省 1.9 倍内存。

咱们一起展现咱们的四分之一宽度小模型和咱们的完好模型在端核算设备上布置的状况:

完好的 PVCNN 能够在 NVIDIA Jetson AGX Xaviers 上以每秒 20.2 个物体的速度运转,而四分之一宽度版别的小模型在价格仅 99 美元的 NVIDIA Jetson Nano 上也能够到达挨近每秒 20 个物体的速度。

经过下图中对 PVConv 两个分支特征的可视化,咱们不难发现两个分支的确学到了互补的特征:

依据栅格的分支往往愈加重视大而接连的区域,依据点云 MLP 的特征转化分支往往愈加重视独立的,不接连的区域。

在 S3DIS 数据集上,咱们的办法也具有先进的功能,一起极为高效:只需求七分之一左右的运转时刻就能够逾越此前优异的办法 PointCNN。当然,咱们的内存耗费也比 PointCNN 小了许多。此外,咱们的 0.25 倍通道数小模型均在运转时刻比 PointNet 快 1.8 倍的状况下功能逾越了更为杂乱的 DGCNN 和 RSNet。Tradeoff 曲线更直观地反映了这一点。

在 KITTI 数据集上,咱们用 PVConv 替换 Frustum PointNet 系列中三维部分的核算子,并到达显着更优的功能:省 1.5 倍内存和运转时刻的条件下,均匀检测 mAP 比 Frustum PointNet++高 2.4%。

热门文章

随机推荐

推荐文章