热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3D语义分割、目标检测、实例分割是什么神仙操作?TF3D技术让你一目了然

文研究员AlirezaFathi和AI实习生RuiHuang,GoogleResearch过去几年里,3D传感器(如激光雷达、深度传感摄像

文 / 研究员 Alireza Fathi 和 AI 实习生 Rui Huang,Google Research

 

过去几年里,3D 传感器(如激光雷达、深度传感摄像头和雷达)越发普及,对于能够处理这些设备所捕获数据的场景理解技术,相应需求也在不断增加。此类技术可以让使用这些传感器的机器学习 (ML) 系统,如无人驾驶汽车和机器人,在现实世界中导航和运作,并在移动设备上创建改进的增强现实体验。

最近,计算机视觉领域开始在 3D 场景理解方面取得良好进展,包括用于移动 3D 目标检测、透明目标检测等的模型,但由于可应用于 3D 数据的可用工具和资源有限,进入该领域本身可能具有挑战性。

为了进一步提高 3D 场景理解能力,降低感兴趣的研究人员的入门门槛,我们发布了 TensorFlow 3D (TF 3D),这一高度模块化的高效库旨在将 3D 深度学习功能引入 TensorFlow。TF 3D 提供了一组流行的运算、损失函数、数据处理工具、模型和指标,使更广泛的研究社区能够开发、训练和部署最先进的 3D 场景理解模型。

TF 3D 包含用于最先进 3D 语义分割、3D 目标检测和 3D 实例分割的训练和评估流水线,并支持分布式训练。它也可实现其他潜在应用,如 3D 目标形状预测、点云配准和点云密化。此外,它还提供了统一的数据集规范和配置,用于训练和评估标准 3D 场景理解数据集。目前支持 Waymo Open、ScanNet 和 Rio 数据集。不过,用户可以将 NuScenes 和 Kitti 等其他流行数据集自由转换为相似格式,并将其用于预先存在或自定义创建的流水线,也可以通过利用 TF 3D 进行各种 3D 深度学习研究和应用,包括快速原型设计以及试验新想法的方式来部署实时推断系统。

图片

左侧为 TF 3D 中 3D 目标检测模型在来自 Waymo Open 数据集的一帧画面上的示例输出。右侧为 3D 实例分割模型在来自 ScanNet 数据集 的场景上的示例输出

我们将介绍 TF 3D 提供的高效可配置的稀疏卷积主干,它是在各种 3D 场景理解任务上取得最先进结果的关键。此外,我们将分别介绍 TF 3D 目前支持的三种流水线:3D 语义分割、3D 目标检测和 3D 实例分割。

 


3D 稀疏卷积网络

传感器捕获的 3D 数据通常具有一个场景,其中包含一组感兴趣的目标(如汽车、行人等),其周围大多是有限(或无)兴趣的开放空间。因此,3D 数据本质上是稀疏的。在这样的环境下,卷积的标准实现将需要大量计算并消耗大量内存。因此,在 TF 3D 中,我们使用子流形稀疏卷积和池化运算,旨在更有效地处理 3D 稀疏数据。稀疏卷积模型是大多数户外自动驾驶(如 Waymo、NuScenes)和室内基准(如 ScanNet)中应用的最先进方法的核心。


  • 子流形稀疏卷积
    https://arxiv.org/abs/1706.01307

我们还使用多种 CUDA 技术来加快计算速度(例如,哈希处理、在共享内存中分区/缓存过滤器,以及使用位运算)。Waymo Open 数据集上的实验表明,该实现比使用预先存在的 TensorFlow 运算的精心设计实现快约 20 倍。

TF 3D 然后使用 3D 子流形稀疏 U-Net 架构为每个体素 (Voxel) 提取特征。通过让网络同时提取粗略特征和精细特征并将其组合以进行预测,事实证明 U-Net 架构是有效的。U-Net 网络包括编码器、瓶颈和解码器三个模块,每个模块都由许多稀疏卷积块组成,并可能进行池化或解池化运算。

图片

3D 稀疏体素 U-Net 架构。请注意,水平箭头接收体素特征并对其应用子流形稀疏卷积。下移箭头执行子流形稀疏池化。上移箭头将回收池化的特征,与来自水平箭头的特征合并,并对合并后的特征进行子流形稀疏卷积

上述稀疏卷积网络是 TF 3D 中提供的 3D 场景理解流水线的主干。下面描述的每个模型都使用此主干网络提取稀疏体素的特征,然后添加一个或多个附加预测头来推断感兴趣的任务。用户可以更改编码器/解码器层数和每层中卷积的数量以及修改卷积过滤器的大小来配置 U-Net 网络,从而通过不同的主干配置探索大范围的速度/准确率权衡。

 


3D 语义分割

3D 语义分割模型只有一个输出头,用于预测每个体素的语义分数,语义分数映射回点以预测每个点的语义标签。

图片

来自 ScanNet 数据集的室内场景的 3D 语义分割


  • 3D 语义分割模型
    https://arxiv.org/abs/1711.10275

 


3D 实例分割

在 3D 实例分割中,除了预测语义外,目标是将属于同一目标的体素归于一组。TF 3D 中使用的 3D 实例分割算法基于我们先前的使用深度指标学习的 2D 图像分割研究工作。该模型预测每个体素的实例嵌入向量以及每个体素的语义分数。实例嵌入向量将体素映射到一个嵌入向量空间,其中对应同一目标实例的体素靠得很近,而对应不同目标的体素则相距很远。在这种情况下,输入是点云而不是图像,并使用 3D 稀疏网络而不是 2D 图像网络。在推断时,贪婪的算法每次挑选一个实例种子,并使用体素嵌入向量之间的距离将其分组为段。


  • 深度指标学习的 2D 图像分割研究
    https://arxiv.org/abs/1703.10277

 


3D 目标检测

3D 目标检测模型预测每个体素的大小、中心、旋转矩阵以及目标语义分数。在推断时,采用盒建议机制 (Box proposal mechanism) 将成千上万的各体素的盒预测减少为几个准确的盒建议,然后在训练时,将盒预测和分类损失应用于各体素的预测。我们对预测和基本事实盒顶角之间的距离应用 Huber 损失。由于从其大小、中心和旋转矩阵估计盒顶角的函数是可微的,因此损失将自动传播回这些预测的目标属性。我们采用动态盒分类损失,将与基本事实强烈重合的盒分类为正,将不重合的盒分类为负。

图片

我们在 ScanNet 数据集上的 3D 目标检测结果

在我们最近的论文《DOPS: Learning to Detect 3D Objects and Predict their 3D Shapes》中,我们详细描述了 TF 3D 中用于目标检测的单阶段弱监督学习算法。此外,在后续工作中,我们提出基于 LSTM 的稀疏多帧模型,扩展了 3D 目标检测模型以利用时间信息。我们进一步证明,在 Waymo Open 数据集中,这种时间模型比逐帧方法的性能高出 7.5%。

图片

DOPS 论文中介绍的 3D 目标检测和形状预测模型。3D 稀疏 U-Net 用于提取每个体素的特征向量。目标检测模块使用这些特征建议 3D 盒和语义分数。同时,网络的另一个分支预测形状嵌入向量,用于输出每个目标的网格


  • DOPS:Learning to Detect 3D Objects and Predict their 3D Shapes
    https://arxiv.org/abs/2004.01170

 


准备好了吗?

这个代码库在我们的 3D 计算机视觉项目中发挥了明显的作用,我们希望对您也一样。我们欢迎对代码库的贡献,也请继续关注我们对框架的进一步更新。要开始使用,请访问我们的 GitHub 仓库。


  • GitHub 仓库
    https://github.com/google-research/google-research/tree/master/tf3d

 


致谢

TensorFlow 3D 代码库和模型的发布是 Google 研究人员在产品组的反馈和测试下广泛合作的结果。我们要特别强调 Alireza Fathi 和 Rui Huang(在 Google 期间完成的工作)的核心贡献,另外还要特别感谢 Guangda Lai、Abhijit Kundu、Pei Sun、Thomas Funkhouser、David Ross、Caroline Pantofaru、Johanna Wald、Angela Dai 和 Matthias Niessner。

 

想深入了解 TensorFlow 3D 实操技术,请访问 TensorFlow 官方网站。想了解 TensorFlow 最新资讯,请扫描下方二维码,关注 TensorFlow 官方公众号。

 


推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
author-avatar
筱杰丶Jevon_879
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有