英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库

Python与机器学习 徐 自远 812℃

由于大多数现实环境是三维的,因此理想情况下,应针对3D数据训练旨在分析视频或现实环境中的完整任务的深度学习模型。诸如机器人,自动驾驶汽车,智能手机和其他设备之类的技术工具目前正在产生越来越多的3-D数据,最终可以由深度学习算法对其进行处理。

但是,到目前为止,在如此大量的3D数据上训练深度学习算法一直相对困难,因为某些人工智能(AI)研究人员只能访问必要的工具和平台。为了解决缺乏现成的工具的不足,NVIDIA的一个研究人员团队最近创建了Kaolin,这是一个PyTorch开源库,旨在推进和促进3-D深度学习研究。

目前,还没有一个单一的开源软件库可以支持3-D数据的多种表示形式,多种任务和评估标准。” “我们决定通过创建第一个全面的3D深度学习库Kaolin来弥补文献中的这一空白。”

由Jatavallabhula和他的同事提出的PyTorch库Kaolin包含各种工具,可用于构建可分析3-D数据的深度学习架构,这些架构既高效又易于使用。它还允许研究人员在用于训练深度学习算法之前加载,预处理和操纵3D数据。

它包括多个图形模块,可编辑3D图像,并具有渲染,照明,阴影和视图变形等功能。此外,它支持广泛的损失函数和评估指标,使研究人员可以轻松评估其深度学习算法。

功能性

当前,该版本包含多个处理功能,用于在网格,体素,有符号距离功能和点云上进行3D深度学习。开箱即用地支持加载几个流行的数据集(例如ShapeNet,ModelNet,SHREC)。我们还实现了几种3D转换和变换操作(在上述表示形式之内和之间)。

kaolin支持多种3D任务,例如:

  • 可区分的渲染(请参见神经网格渲染器,其PyTorch端口,Soft Rasterizer,基于可区分插值的渲染器以及模块化和可扩展的抽象DifferentiableRenderer规范)。
  • 基于单图像的网格重建(Pixel2Mesh,GEOMetrics,OccupancyNets等)
  • Pointcloud分类和细分(PointNet,PoinNet ++,DGCNN ……)
  • 网格分类和分割(MeshCNN,GCN)
  • 三维像素网格上的3D超分辨率(ODM,VoxelUNet等)
  • 基本的图形实用程序(照明,阴影等)

模型动物园

kaolin策划了一个大型模型动物园,其中包含流行的3D DL体系结构的参考实现。

注意:对于其中的某些模型,实现是由原始作者完成的。我们架起了通往图书馆的桥梁,并在可能的地方引入了优化。如果您使用模型动物园中的任何模型或图形包(例如,可区分的渲染器,例如NMR,SoftRas,DIB-R),请引用高岭土之外的原始论文。为了方便起见,每种提供的模型的文档中均包含了每篇原始论文的BibTeX引用格式。

支持平台

在Linux平台上受到正式支持,并已在Ubuntu 18上进行了构建和测试。Windows和Mac支持也将全面支持。

安装kaolin

我们强烈建议在虚拟环境(例如使用conda或virtualenv创建的虚拟环境)中安装高岭土。Kaolin期望使用Python 3.6以上版本,并且当前需要使用支持CUDA的计算机(即安装了nvcc的计算机)进行构建。

首先创建一个虚拟环境。在这个例子中,我们展示了如何创建一个conda虚拟环境来安装kaolin。

安装依赖项(numpy和Torch)。请注意,安装文件不会自动安装这些依赖项。

现在,您可以安装该库。从此存储库的根目录(即包含此自述文件的目录)中运行

在安装过程中,packman软件包管理器会将nv-usd软件包下载到〜/ packman-repo /,其中包含用于读取和写入通用场景描述(USD)文件的必要软件包。

验证安装

要验证是否已安装kaolin,请启动您的python解释器,然后执行以下命令

主要模块

rep:支持的3D资产表示包括:三角形网格,四边形网格,体素网格,点云,符号距离函数(SDF)。

conversions:支持所有流行3D表示形式之间的转换。

models:提供的型号包括以下。对于每个实现,我们还提供了指向其移植的原始实现的链接。

  • DGCNN
  • DIB-R
  • GEOMetrics
  • Image2Mesh
  • Occupancy Network
  • Pixel2Mesh
  • PointNet
  • PointNet++
  • MeshEncoder
  • GraphResNet:
  • OccupancyNetworks
  • MeshCNN
  • VoxelGAN
  • AtlasNet
  • And many more to come!

演示

kaolin训练3D DL模型变得简单, 我们以5行代码说明了训练和测试用于汽车与飞机的PointNet ++分类器所需的代码:

支持的格式

  • Polygon meshes
  • Pointclouds
  • Voxel grids
  • Signed distance functions and level sets
  • Depth images (2.5D)


kaolin提供了有效的PyTorch操作,可在3D表示形式之间进行转换。尽管网格,点云和体素网格仍然是最流行的3D表示形式,但高岭土广泛支持符号距离函数(SDF),正交深度图(ODM)和RGB-D图像。

Kaolin将为加快3D DL研究的重要一步,但研发人员并不打算止于此。他们打算在Kaolin周边建立一个强大的开源社区,并欢迎其他3D深度学习研究人员和实践者的贡献。

论文地址:

https://arxiv.org/pdf/1911.05063.pdf

 

 

英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库http://t.zijieimg.com/X2Fqq2/

转载请注明:徐自远的乱七八糟小站 » 英伟达发布kaolin:一个用于加速3D深度学习研究的PyTorch库

喜欢 (1)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号