Facebook 开源 3D 深度学习函数库 PyTorch3D
Facebook近日开源了将PyTorch用于3D深度学习的函数库 PyTorch3D,这是一个高度模块化且经过优化的库,具备独有的功能,旨在通过PyTorch简化3D深度学习。PyTorch3D为3D数据提供了一组常用的3D运算符和快速且可微分的损失函数(loss function),以及模块化的可微分渲染API。通过上述的功能,研究人员可以立即将这些函数导入至当前最先进的深度学习系统中。
研究人员和工程师可以利用PyTorch3D进行各种3D深度学习研究(无论是3D重构、集束调整,乃至3D推理),以及改进在二维空间下的识别任务。
对三维空间的认知,在人工智能与真实世界的互动过程中扮演着十分重要的角色。例如机器人在物理空间中的导航、改进虚拟现实体验,以及识别2D内容中被遮挡的物体等。不过即便有丰富深度学习技术积累的Facebook,在面对3D的深度学习问题时依然会被困扰。Facebook表示,之所以深度学习技术较少用于3D场景,是因为缺乏足够的工具和资源来支撑神经网络与3D数据结合使用的复杂性,这种场景要求更多的内存与更高的算力,不像2D图像可以使用张量表示,而且许多传统图形运算符不可微分,3D深度学习技术的研究受到了限制。
为此,Facebook构建了PyTorch3D函数库以推动3D深度学习研究,与PyTorch为2D识别任务提供高度优化的函数库一样,PyTorch3D通过提供批处理以及对3D运算符和损失函数的支持来优化训练和推理。为了简化3D模型批处理的复杂度,Facebook创建了Meshes格式,这是一种专为深度学习应用程序设计,用于批处理的异构网格模型数据结构。
这种数据结构可以让研究人员轻松地将基础网格模型数据快速转换成不同的视图,以使运算符与数据的最有效表示方式相匹配。更重要的是,PyTorch3D为研究人员和工程师提供了能够灵活地在不同的表示视图之间进行有效切换的方式,并访问不同的网格属性。
渲染是计算机图形学中的核心内容,它可将3D模型转换为2D图像。这也是在3D场景属性(scene properties)和2D图像像素之间建立桥接的常规手段。不过传统渲染引擎无法进行微分,它们不能被合并至深度学习工作管道中。所以,Facebook在PyTorch3D内置了高度模块化的可微分渲染器,能用来处理可微分的3D数据。此功能的实现由可组合单元组成,允许用户轻松扩展渲染器以支持自定义照明或阴影效果。
Facebook将这些功能打包成工具包,并提供了运算符、异构批处理功能和模块化可微分的渲染API等,帮助研究人员进行复杂的3D神经网络应用研究。
查看 PyTorch3d 文档https://pytorch3d./docs/hy_pytorch3d.htm
特别提醒本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。