【问题标题】:Point Cloud - Principal Axes - Use of Inertia点云 - 主轴 - 惯性的使用
【发布时间】:2015-04-15 12:44:29
【问题描述】:

我有不同原始对象(锥体、平面、圆环、圆柱体、球体、椭圆体)的点云。所有这些都在方向、位置和缩放方面有所不同。此外,所有这些都使用一组独特的参数(例如高度、半径等)进行初始化,以便它们的形状可以完全不同(有些圆锥体很高,有些圆锥体又小又胖)。

现在我的问题:

我正在尝试查找对象“主要组件”。使用 PCA 不会产生好的结果,因为旋转的图元可以在任何方向上都有它们的主要变化(不一定沿着对象的长度方向)。

我看到的唯一机会是以某种方式使用我的基元的对称性。没有基于惯性的方法吗?也许有办法找到主要的对称轴和其他两个垂直于它的对称轴?

您能给我一些建议或指出论文或实现(甚至可能是 python)吗?

非常感谢,梅林。

PS:如果我只申请 PCA,这就是我得到的。特别是对于锥体,这实际上不起作用。只有形状几乎相同的锥体具有相同的方向,但我需要它们都指向一个方向(例如向上)。

【问题讨论】:

    标签: components pca point-clouds axes


    【解决方案1】:

    所以你有圆锥体,只需要将它们全部朝同一个方向旋转? 如果是这样,您可以将三角形拟合到它们并将峰(例如,边的垂直平分线)指向您的主轴。

    【讨论】:

    • 我已经得到了所有提到的基元(球体、椭球体,...)。图片仅显示锥体的原因是,在这种情况下,PCA 失败最多(所有锥体或多或少指向不同的方向)。我刚刚找到了本教程,但我不确定它是否会有所帮助。它似乎是通过检查惯性而不是 PCA 来计算点云的主成分。 pointclouds.org/documentation/tutorials/moment_of_inertia.php你怎么看?
    【解决方案2】:

    你有一个有趣的问题。通常使用的形状描述符 (VFH) 对形状是不变的,但不是姿势(这正是你想要的,真的)不会对形状的拉伸保持不变。

    我认为要在这方面取得成功,您需要更清楚地了解在形状发生变化时要保持的不变量。它是拓扑不变量吗?如果是这样,那么这是一个很好的起点:https://www.google.com.tr/search?q=topologically+invariant+shape+descriptor

    【讨论】:

    • 整个项目的想法是将我的原语(经过一些小的预处理)输入深度学习器(堆叠去噪自动编码器),看看它是否能够学习有意义的特征。如果是这种情况,它应该能够正确分类大多数原语。所以定义形状描述符正是我想要避免的。在将数据提供给机器学习器之前,我不想应用任何特定领域的知识(特征工程)。它应该尽可能原始。我唯一想做的事就是对齐所有点云并将它们体素化。
    • 恐怕你打算做的对齐是领域知识。它当然不能立即从感官数据中获得。即使您使用 PCA,您也会对两种不同配置何时具有相同形状做出一些假设(因为您需要这些假设来激发对齐的选择 - 否则,您如何进行对齐?您可能有一个我没想到的答案的,但我的观点是,每个对齐方法背后都有这样一个假设)。
    • 因此,如果您真的不使用任何假设,我希望也能学习对齐方式 - 但是,有人告诉我,深度学习是神奇的。
    • 是的,这是真的。如果我想找到一个完美的对齐方式,我将不得不做出一些假设。对于原语,例如应该是,所有物体都具有旋转对称性。因此,我将坚持使用至少以类似方式定位类似对象的纯 PCA。这是完全通用的,可以应用于任何类型的输入(可能是更复杂的 CAD 模型,也可能是任何 n 维数据)。如果还有一些剩余的变化,机器学习器将不得不处理它。这就是它们的意义……解释一开始没有学过的输入。
    【解决方案3】:

    我决定只使用简单的 PCA,因为它是唯一完全通用且不依赖于数据的先验(专家)知识的方法。

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多