局部切割操作。作为一个初始解,最大的内核通常是对整体物体模型的过拟合,并且有大量的不规则边界。因此,我们采用目标函数作为引导来迭代地修改内核,在F増加最少的情况下来减少N和W。这意味着,每一个优化迭代的步骤都不应该过大地增加7,同时,应该修改简化内核以降低N和W。另外,由于我们需要搜索评估大量的内核修改选择,内核的修改操作应该可以简单快速进行。带着这些准则,我们设计了如下几种内核的局部切割操作,以在每个迭代过程中对内核进行切割产生候选内核:
- 1.边界切割,以一个内核边界上的直边来进行切割操作,切割后将从当前内核中移除所产生的最小连通件。
- 2.内边界切割,将一个内核边界上的直边往物体内部平移一个单位的距离并进行切割操作,然后移除所产生的最小连通部件。
- 3.内角切割,将一个边界切割在内核上的一个角处往物体内部平移一个单位的距离并进行切割操作,然后移除所产生的最小连通部件。
- 4.组合切割,可以移除位于凹陷处的微笑部件,因此可能大幅降低N。为了进行组合切割,我们从上述几个切割操作中寻找处邻近的两个切割操作进行组合,然后移除这两个切割操作所移除的连通部件的交集。
迭代修改。我们从一个最大化的内核和最小化的7开始,在目标函数的引导下,使用集束搜索和局部切割操作来对内核(记作P)进行修改。
对于一个内核,我们在内核边界上的每个直边上执行一个边界切割和一个内边界切割,在内核边界上的每一个角处执行一个内角切割,由此产生了一个局部切割操作的候选集合。此外,如果一堆邻近的切割操作所组成的组合切割所移除的部件不为空,此组合切割操作也将进入局部切割操作的候选集合。在对于三维模型的实际操作中,这个候选集合将会包含有几千个候选切割操作,因此我们滤除那些移除掉超过内核体积10%的切割操作。对每一个候选切割所产生的候选内核,并计算其目标函数的增益值,和V分别为N和W的增益值。在集束搜索的每一个迭代中,我们对当前候选内核集合4中的所有内核的所有候选切割操作所对应的目标函数的正增益值进行排序,并选择最好的欠个局部切割操作来生成更新如此直至候选内核集合为空。
由于最大的内核是通过最小化K生成的,因此初始的最大内核所对应的分解结果即为当目标函数中的优化结果。实际探索中,我们发现如果我们从迭代优化的一开始就将a设置称一个期望的目标值,往往会造成优化搜索的过程会过早地陷入局部极小点。因此,我们将a初始化为0并且逐渐增大a,每当我们无法在R中找到具有正增益值的候选局部切割操作的时候,我们以5a的步长增加a。这个策略与权重衰减的思想相似。本质上,当我们逐步増加a的时候,我们逐渐降低F在优化过程中的影响。