在处理二维图像时,卷积神经网络(CNN)是不可或缺的基础工具。
然而,应用于三维模型时,CNN的表现就不那么理想了。
这主要是因为三维模型通常以网格数据的形式呈现,例如:

这些三角形由点、边、面三种元素构成,缺乏规则的结构与层次化表示,这让传统的CNN难以应对。
那么,像VGG和ResNet这样的成熟CNN架构,是否就无法用于三维模型的深度学习呢?
答案是否定的。
最近,清华大学的计图团队(JITTor)首次提出了一种专门针对三角网格面片的卷积神经网络,名为SubdivNet。
通过SubdivNet,可以将成熟的图像网络架构有效地迁移到三维几何学习中。
而且,相关的研究论文和代码都已经开源。
细分结构的网格卷积网络
那么,SubdivNet是如何打破二维与三维之间的界限的呢?
具体来说,它是一种基于细分结构的网格卷积网络。
对于输入的网格数据,首先进行重网格化(ReMesh),构建细分结构,从而获得多分辨率的网格表示;接下来,重点在于面片卷积方法和上下采样方法。
面片卷积方法
传统的网格深度学习方法通常将特征存储在点或边上,这导致了一个问题:点的度数不固定,边的卷积灵活性不足。
因此,计图团队提出了一种基于面片的网格卷积方法,以充分利用每个面片与相邻三个面片之间的规则特性。
基于这样的特性,研究团队还根据面片间的距离设计了多种不同的卷积模式。
由于三维数据中的面片顺序并不固定,SubdivNet在计算卷积结果时,通过取邻域均值、差分均值等方法,使得计算结果不受面片顺序的影响,从而实现排列不变性。
接下来是上下采样部分。
SubdivNet受到了传统Loop细分曲面建模的启发,构建了一种基于细分结构的上下采样方法。
也就是说,在池化(下采样)过程中,经过重网格化处理的网格数据,其面片具有细分连接结构,能够实现4片变1片,从高分辨率转换为低分辨率,完成面片特征的池化操作。
而在上采样过程中,则实现面片的反向细分,将一片变为四片。
这样,上下采样的方法既规则又均匀,同时也能够满足双线性插值等需求。
结合面片卷积方法和上下采样方法,像VGG、ResNet、DeepLabV3+等经典的二维卷积网络可以轻松迁移到三维模型的深度学习中。
值得一提的是,SubdivNet方法是基于清华大学的深度学习框架计图(JITTor)实现的。该框架提供了高效的重索引算子,无需额外的C++代码即可实现邻域索引。
实验结果
那么,SubdivNet的效果如何呢?不妨看看实验结果。
首先,在网格分类数据集上,SubdivNet在SHREC11和Cube EngRaving两个数据集中首次达到了100%的分类正确率。
在网格分割方面,SubdivNet的分割准确率在量化指标上均高于对比的点云和网格方法。
在形状对应实验中,SubdivNet同样达到了SOTA水平。
这项研究的论文来自清华大学计算机系胡事民教授的团队,作者包括胡事民及其博士生刘政宁、国孟昊、黄家辉等,以及卡迪夫大学的Ralph Martin教授。
同时,他们也是清华“计图”框架团队的成员。
计图是首个由中国高校开源的深度学习框架,开发团队均来自清华大学计算机系图形学实验室,负责人是胡事民教授。
该实验室的主要研究方向包括计算机图形学、计算机视觉、智能信息处理、智能机器人和系统软件等,已经在ACM TOG、IEEE TVCG、IEEE PAMI、ACM SIGGRAPH、IEEE CVPR、IEEE ICRA、useNIX ATC等重要国际期刊上发表了100余篇论文。
目前,计图的开发主要由该实验室的博士生梁盾、杨国烨、杨国炜、周文洋、刘政宁、李相利、国孟昊和辛杭高等人负责。
与TensoRFlow、PyTorch不同,计图是一个完全基于动态编译的深度学习框架,使用元算子和统一计算图。
此前,在可微渲染和动态图推理等领域,计图的表现已经超越了PyTorch。
论文地址:
https://aRxiv.oRg/abs/2106.02285
项目地址:
https://Github.coM/lzhengning/SubdivNet
参考链接:
