关于ide:继-Facebook-开源-PyTorch3D-后谷歌开源-TensorFlow-3D-场景理解库

4次阅读

共计 2344 个字符,预计需要花费 6 分钟才能阅读完成。

转自:机器之心

【导语】:继 2020 年初 Facebook 开源基于 PyTorch 的 3D 计算机视觉库 PyTorch3D 之后,谷歌也于近日开源了一个基于 TF 框架的高度模块化和高效解决库 TensorFlow 3D。目前,该库曾经开源。

3D 计算机视觉是一个十分重要的研究课题,抉择适合的计算框架对解决成果将会产生很大的影响。此前,机器之心曾介绍过 Facebook 开源的基于 PyTorch 框架的 3D 计算机视觉解决库 PyTorch3D,该库在 3D 建模、渲染等多方面解决操作上体现出了更好的成果。

最近,另一个罕用的深度学习框架 TensorFlow 也有了本人的高度模块化和高效解决库。它就是谷歌 AI 推出的 TensorFlow 3D(TF 3D),将 3D 深度学习能力引入到了 TensorFlow 框架中。TF 3D 库基于 TensorFlow 2 和 Keras 构建,使得更易于构建、训练和部署 3D 语义宰割、3D 实例宰割和 3D 指标检测模型。目前,TF 3D 库曾经开源。

GitHub 我的项目地址:

https://github.com/google-res…

TF 3D 提供了一系列风行的运算、损失函数、数据处理工具、模型和指标,使得更宽泛的钻研社区不便地开发、训练和部署 SOTA 3D 场景了解模型。TF 3D 还蕴含用于 SOTA 3D 语义宰割、3D 指标检测和 3D 实例宰割的训练和评估 pipeline,并反对分布式训练。该库还反对 3D 物体形态预测、点云配准和点云加密等潜在利用。

此外,TF 3D 提供了用于训练和评估规范 3D 场景了解数据集的对立数据集布局和配置,目前反对 Waymo Open、ScanNet 和 Rio 三个数据集。不过,用户能够自在地将 NuScenes 和 Kitti 等其余风行数据集转化为相似格局,并在事后存在或自定义创立的 pipeline 中应用它们。最初,用户能够将 TF 3D 用于多种 3D 深度学习钻研和利用,比方疾速原型设计以及尝试新思路来部署实时推理零碎。

下图(左)为 TF 3D 库中 3D 指标检测模型在 Waymo Open 数据集帧上的输入示例;下图(右)为 TF 3D 库中 3D 实例宰割模型在 ScanNet 数据集场景上的输入示例。

3D 稠密卷积网络

谷歌具体介绍了 TF 3D 库中提供的高效和可配置稠密卷积骨干网络,该网络是在各种 3D 场景了解工作上获得 SOTA 后果的要害。

在 TF 3D 库中,谷歌应用子流形稠密卷积和池化操作,这两者被设计用于更高效地解决 3D 稠密数据。稠密卷积模型是大多数户外主动驾驶(如 Waymo 和 NuScenes)和室内基准(如 ScanNet)中应用的 SOTA 办法的外围。

谷歌还应用各种 CUDA 技术来减速计算(如哈希算法、共享内存中宰割 / 缓存滤波器以及位操作)。在 Waymo Open 数据集上的试验表明,这种实现的速度约是利用事后存在 TensorFlow 操作的实现的 20 倍。

TF 3D 库中应用 3D 子流形稠密 U-Net 架构来提取每个体素(voxel)的特色。通过令网络提取稠密和轻微特色并联合它们以做出预测,U-Net 架构已被证实十分无效。在结构上,U-Net 网络蕴含三个模块:编码器、瓶颈层和解码器,它们均是由大量具备潜在池化或非池化操作的稠密卷积块组成的。

下图为 3D 稠密体素 U-Net 架构:

稠密卷积网络是 TF 3D 中所提供 3D 场景了解 pipeline 的骨干。并且,3D 语义宰割、3D 实例宰割和 3D 指标检测模型应用稠密卷积网络来提取稠密体素的特色,而后增加一个或多个额定的预测头(head)来推理感兴趣的工作。用户能够通过扭转编码器或解码器层数和每个层的卷积数,以及调整卷积滤波器大小来配置 U-Net 网络,从而摸索不同骨干网络配置下各种速度或准确率的衡量。

TF 3D 反对的三个 pipeline

目前,TF 3D 反对三个 pipeline,别离是 3D 语义宰割、3D 实例宰割和 3D 指标检测。

3D 语义宰割

3D 语义宰割模型仅有一个用于预测每体素(per-voxel)语义分数的输入头,这些语义被映射回点以预测每点的语义标签。

下图为 ScanNet 数据集中室内场景的 3D 语义宰割后果:

3D 实例宰割

除了预测语义之外,3D 实例宰割的另一目标是将属于同一物体的体素集中分组在一起。TF 3D 中应用的 3D 实例宰割算法基于谷歌之前基于深度度量学习的 2D 图像宰割。模型预测每体素的实例嵌入向量和每体素的语义分数。实例嵌入向量将这些体素嵌入至一个嵌入空间,在此空间中,属于同一物体实例的体素严密聚拢,而属于不同物体的体素彼此远离。在这种状况下,输出的是点云而不是图像,并且应用了 3D 稠密网络而不是 2D 图像网络。在推理时,贪心算法每次抉择一个实例种子,并利用体素嵌入之间的间隔将它们分组为片段。

3D 指标检测

3D 指标检测模型预测每体素大小、核心、旋转矩阵和指标语义分数。在推理时应用 box proposal 机制,将成千上万个每体素 box 预测缩减为数个精确的 box 倡议;在训练时将 box 预测和分类损失利用于每体素预测。

谷歌在预测和真值 box 角(box corner)之间的间隔上利用到了 Huber 损失。因为 Huer 函数依据 box 大小、核心和旋转矩阵来预计 box 角并且它是可微的,因而该函数将主动传回这些预测的指标个性。此外,谷歌应用了一个动静的 box 分类损失,它将与真值强烈重叠的 box 分类为正(positive),将与真值不重叠的 box 分类为负(negative)。

下图为 ScanNet 数据集上的 3D 指标检测后果:

参考链接:https://ai.googleblog.com/202…

– EOF – 

开源前哨 日常分享热门、乏味和实用的开源我的项目。参加保护 10 万 + Star 的开源技术资源库,包含:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

正文完
 0