StructureNet: Hierarchical Graph Networks for 3D Shape Generation
分层的图卷积网络,发表在2019年的siggraph asia上,论文的创新性比较强,可以说是一个标杆性质的工作(PS:又大大加大了shape genenration的工作难度o(╥﹏╥)o)。
抱怨归抱怨,还是来细细解析研读一下本篇论文,毕竟是比较经典的工作。
本菜鸡的工作方向也是shape generation,这个领域内的工作大致都是,为了避免geometry 本身的复杂性,会将geometry映射或者投影到一个高维空间中,形成空间的一个相互的联系,通过对高维空间中的简单的操作,改变正常的三维空间中,shape的geometry信息。进来,大家的工作的中心都在寻找一种具有优势的shape representation,用来表达geometry,并利用这几年来的DL的方法,进行生成,并主要有以下的一些方法:
voxel是二维的pixel到三维的一种直接推广,目前这种方法受到的最主要的限制是分辨率的影响,由于是的复杂度,在分辨率在256的情况下,内存开销就能够达到10G,因此计算开销非常的大,虽然微软亚洲研究院的研究者们尝试使用OCTREE这种数据结构去解决这个问题,但是其复杂的数据结构和计算方式为这种方式的拓展和实现带来了一定的困难,因此voxel目前不少一种特别主流的研究热点。
point cloud 是目前的一种主要的研究热点,得益于其计算方便,计算开销小,并且可以进行后期的渲染工作,但是,缺点是,首先点云的计算一般需要固定shape的点云的数量,这对物体来说,shape的形状变化会造成一定的困难,只能进行所谓的拆东墙补西墙的方式来满足形状的变换过程,之后是一堆散点,对于shape的结构信息不能进行一个特别好的表达。
mesh 是三维的物体在计算机领域的一种直接表示方式,但是这种表达方式用来直接做几何计算是有困难的,不利于深度学习的大规模计算(主要原因是一个点周围的点的数量不固定),因此虽然有不少的学者完善这个工作,但是依旧不上一种主流的方式
19年以来,兴起了一种方法交隐式函数的方式,逐渐成为目前的主流方式,key idea就一条,用一个函数来隐式表达曲面,即区别在空间中采样的点哪些处于shape的里面,哪些处于shape的外面,然后对处于shape里面的点进行渲染,从而得到一个shape。这种方式成为主流,能够表达非常精细的模型,但是我个人认为这种表达方式依旧有可能存在一些缺点,首先,在隐式函数的学习只是一个分类问题,而不是一个回归问题,是否会存在信息缺失的情况。其次,表达的依然是几何信息,对于结构的信息,依然缺乏有效的表达,针对以上问题,已经有学者提出了解决方法,并发表在2020的CVPR上面,但是我觉得依旧存在改进的工作,目前,找个文章的工作提出了一个对于结构信息的学习和表达,对于完善shape信息的学习有重要的帮助。
在文章的工作中,对物体的结构的划分非常的细节化,细节到了椅子的坐垫被划分未来边框和里面的填充内容(请允许我自创这个词语),实在是佩服作者做这个工作的耐心程度,对数据集的预处理真是不容易。
在此之前,不得不提一下对物体结构进行DL学习的鼻祖GRASS论文,属于国防科技大学徐凯老师组的论文
上图来自论文GRASS,核心的思想是,因为我们的物体可以分解为很多的part,将part的结构变换为树形的结构,树的节点存储part之间的信息,Encode的过程,就是用RvNN不断合并两个节点,最后到根节点。而对于Decode的过程来说,即增加了一个NodeClassifier,用于判断该节点是leaf节点,还是adjacent组合的节点or symmetry节点,判断之后,再用对应的decoder来处理feature。
对于StructureNet来说,用到的是今年来比较热的GNN这种网络来处理各个part直接的相互关系
上图是StructureNet的整体pipeline的图,encoder是一个至上而下的过程,decoder是一个至下而上的过程,对于encoder来说,先对geometry 信息进行编码,再对各个part之间的相互关系进行学习(part直接的相互关系已经在最开始的数据集中进行了标注),decoder的过程则稍微复杂一些,首先将父节点的信息传递到子节点,之后将不存在的子节点去掉,最后得到边之间的相互关系,之后进行encoder的逆过程。
loss如下所示:
分别是重建loss,结构的loss还有变分的loss来做一个整合。
下面上一下效果:
效果来看非常的好,但是也有一些失败的生成效果:
解决这个问题的思路是对于物体的整体估计,目前来看解决困难。
说说这篇论文对我的提供的思路:
使用GNN的思路去处理结构信息,并且我感觉并不需要对物体进行如此细致的标注(虽然越细节越好),应该也能实现一些不错的效果,个人也提出一个问题,即:part直接的关系越细化,是不是整体的关系就越薄弱。