在增强现实(AR)与自动驾驶的时代来临之际,3D数据呈现爆炸式增长。在不久的将来,处理3D数据的算法将应用于像机器人自动巡航、基于AR的智能用户界面等应用程序上。受此启发,我们在Matroid公司所著的论文提出了FusionNet,这一框架用于在一个名为Princeton ModelNet的标准数据集上做3D CAD物体分类。
FusionNet的核心是全新的、应用于3D物体的三维卷积神经网络(Convolutional Neural Networks, CNN)。我们必须在多个方面调整传统的CNN以使其有效。为了解释得清楚些,我们不妨先看一下用于图像分类的二维CNN。这个思路是,机器学习研究者会构建数个隐层形成的模型,每一层与前一层都以不同的形式连接。在第一层,你会拥有一个在二维图像上滑动的一块窗口区域作为输入。因为这个区域执行了卷积操作——在窗口滑动时它交叠其上,因此它被称为卷积层。其后还有几层不同形式的隐层,最后一层用于预测潜在的输出;每一种输出对应着图像标注中的某种分类。在ModelNet40 Challenge数据集中,存在40个分类,因此模型中最后一层有40个神经元。第一类可能是『猫』,第二类可能是『车辆』,以此类推遍历数据集包含的所有分类。如果第一个神经元在40个中激发的最厉害,那么输入样本就会被判别为第一类,一只猫。
整个模型假设输入是图片形式,即二维数据。你该如何将它拓展到三维呢?一种可能的方法是,就像显示器显示三维物体那样,先把物体通过投影处理成二维图像,然后在其上运行标准的二维CNN算法。实际上,现在在Princeton ModelNet Challenge数据集上已提交的最优算法的思路是,把任何3D物体在多个角度上对物体进行一组2D投影进行『像素表达』,然后使用卷积神经网络。F