长期以来,大多数机器学习模型主要集中在二维图像识别和理解上。然而,随着技术的发展,这些模型逐渐扩展到了三维领域,包括识别三维物体、将二维草图转化为三维模型等方面。
类似于互联网媒体的发展路径,机器学习模型也在向三维图像处理转型,涵盖三维图像的理解、还原和分析等内容。
毫无疑问,具备三维感知能力的模型将有助于机器更好地理解和适应现实世界,例如在复杂的三维空间中导航,识别被遮挡的物体,以及提升增强现实(AR)、虚拟现实(VR)和游戏等领域的用户体验。
尽管如此,三维领域的机器学习模型此前一直缺乏必要的工具和资源。得益于Facebook在增强现实(AR)和虚拟现实(VR)领域的大力投资,他们推出了专门针对三维环境的深度学习平台——PyTorch3D。
实际上,PyTorch3D的设计灵感来源于Mesh R-CNN模型。Mesh R-CNN是Facebook去年发布的一个模型,旨在从二维图像中重建三维模型,能够还原出包含遮挡物体的三维场景。
在PyTorch3D中,结合了高度优化的二维图像识别库Detectron2,使得物体识别能力得以延伸至三维空间。研究人员和工程师可以通过PyTorch3D进行各种三维深度学习研究,包括三维重建和推理等任务,甚至可以辅助二维识别的应用。
PyTorch3D的主要特性和功能如下:
引入新型三维网格数据格式
三维网格系统由顶点坐标和面索引组成,处理大小不一的三维网格数据是一项挑战。为此,Facebook开发了一种新的三维网格格式Meshes,这种格式能快速转换基础网格数据,使运算符和数据匹配更加高效。同时,它还允许研究人员灵活地在不同视角之间切换。
高效处理三维网格
基于新的三维网格格式,PyTorch3D优化了一系列通用运算符和三维数据损失函数,支持异构数据的导入。这意味着研究人员可以对三维网格进行投影变换、图卷积、采样和损失函数等操作。
可微分网格渲染
渲染引擎是将三维模型转换成二维图像的核心部分,传统渲染方法通常不支持微分。但像OpenDR和redner这样的渲染器可以构建支持深度学习的可微分图形渲染器。由于PyTorch3D旨在与各种深度学习算法集成,因此所有运算符都具备以下特点:兼容PyTorch算子;支持异构批数据;可微分;支持GPU加速。