来源:机器之心本文约2000字,建议阅读5分钟谷歌于近日开源了一个基于 TF 框架的高度模块化和高效处理库 TensorFlow 3D。

继 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-research/google-research/tree/master/tf3d

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/2021/02/3d-scene-understanding-with-tensorflow.html

编辑:文婧

继Facebook开源PyTorch3D后,谷歌开源TensorFlow 3D场景理解库相关推荐

  1. 继 Facebook 开源 PyTorch3D 后,谷歌开源 TensorFlow 3D 场景理解库

    转自:机器之心 [导语]:继 2020 年初 Facebook 开源基于 PyTorch 的 3D 计算机视觉库 PyTorch3D 之后,谷歌也于近日开源了一个基于 TF 框架的高度模块化和高效处理 ...

  2. 重磅!谷歌开源TensorFlow 3D场景理解库

    来源丨机器之心 编辑丨杜伟.陈萍 继 2020 年初 Facebook 开源基于 PyTorch 的 3D 计算机视觉库 PyTorch3D 之后,谷歌也于近日开源了一个基于 TF 框架的高度模块化和 ...

  3. 谷歌开源能翻译101种语言的AI模型,只比Facebook多一种

    大数据文摘出品 来源:VB 10月底,Facebook发布了一款可翻译100种语言的机器学习模型,微软发布了一款能翻译94种语言的模型,谷歌自然也不甘示弱. 继Facebook和微软后,谷歌开源了一种 ...

  4. 提速20倍!谷歌AI发布TensorFlow 3D

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨新智元 编辑丨极市平台 随着自动驾驶汽车与机器人的深入发展,激 ...

  5. 提速20倍!谷歌AI发布TensorFlow 3D,智能汽车场景亲测好用

    来源丨新智元 编辑丨极市平台 导读 Google AI发布了TensorFlow 3D,将3D深度学习能力引入TensorFlow,加入3D稀疏卷积网络,在Waymo Open数据集上的实验表明,这种 ...

  6. 疲劳驾驶样本集_谷歌AI最新3D数据集,1.5万张动图,让AR主宰你的生活

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 见过3D物体数据集,见过会动的3D物体数据集吗? 每段动态视频都以目标为中心拍摄,不仅自带标注整体的边界框,每个视频还附带相机位姿和稀疏点云 ...

  7. 谷歌AI最新3D数据集,1.5万张动图,让AR主宰你的生活

    谷歌AI最新3D数据集,1.5万张动图,让AR主宰你的生活 这是谷歌的开源3D物体数据集Objectron,包含15000份短视频样本,以及从五个大洲.十个国家里收集来的400多万张带注释的图像. 作 ...

  8. 一周焦点 | 李飞飞离职谷歌;Facebook推OCR神器Rosetta;TensorFlow开源新库TFDV

    ▌业界焦点 1.阿里从来不只属于马云,但马云会永远属于阿里 9 月 10 日教师节,阿里巴巴集团创始人马云发出题为"教师节快乐"的公开信宣布:一年后的阿里巴巴 20 周年之际,即 ...

  9. 谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解

    谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解 2017-05-23 16:13:11    TensorFlow    2 0 0 一年一度的谷歌开发者大会 Google I/ ...

最新文章

  1. js+css立体旋转
  2. javascript-引入-函数的定义与使用-多值传参-ao对象
  3. HDU1233——还是通常工程(最小生成树,并查集)
  4. [u]intN_t - uint8_t, uint16_t, uint32_t, uint64_t
  5. sf | 判断点线面等几何对象的空间位置关系
  6. 20 万台 QQ 服务器全面上云!
  7. C++17 fold expression
  8. python 装饰器常见场景与用法
  9. Java Web 前端页面 模板源码
  10. MCGS7.7嵌入版软件安装方法
  11. 如何找到想要的资源?
  12. 竞赛保研(自动化专业)
  13. 【CS学习笔记】26、杀毒软件
  14. [设备驱动] 最简单的内核设备驱动--字符驱动
  15. 2012总结之pcode.DefineClass
  16. IE和Outlook Express的翻译插件设计
  17. 7月火影忍者服务器维护,火影忍者手游7月8日更新到几点?7.8停服更新维护公告...
  18. EXCEL文件打开缓慢的问题解决
  19. Linux的userdel和deluser命令
  20. 两个处理IP好用的Python库ipaddr和netaddr

热门文章

  1. c语言中gets函数可以输入空格吗_C语言中printf和gets函数的实用技巧
  2. 微信小程序-自定义picker选择器
  3. 运维利器:钉钉机器人脚本告警(Linux Shell 篇)
  4. win7 cmd 操作mysql数据库
  5. 41、应用如何签名以及签名的意义(转载)
  6. ecshop 修改评论功能
  7. 2-5-PerformingMountsUnmounts
  8. Window.Show()和Window.ShowDialog()区别
  9. 在线CSS工具及相关资源收集
  10. 文件管理器_苹果超强文件管理器,秒变安卓?