方形不可定向图像/数据的对齐

数据挖掘 数据清理 加工
2021-09-24 20:50:29

另一个帖子,我不知道足够的术语来有效地描述事物。对于评论,请提出一些标签和关键字,我可以添加到这篇文章中以使其更好。

假设我有一个“方向”无关紧要的二维数据结构。我遇到的例子:

  • 2048游戏的状态。就对称群而言,这将是 D 4 / D 8,除了一个操作不会产生相同的状态,它只会产生具有相同解的另一个状态。
  • 浮游生物星系的图像(无背景)。有点类似于上面,除了任何旋转(不仅仅是 90 o)都会产生同样有效的图像(并且可能会考虑比例,但让我们忘记这一点)。

在这两种情况下,我都想转换所有这些等效状态/图像以删除除一个等效图像之外的所有图像。为了说明两个有效的:

  • 我可以使用图像矩M 10和 M 01来转换水平和垂直镜像的等效数据。例如,如果它使 M 10更大,则应用水平镜像。这会将 2048 状态及其水平镜像转换为相同的状态。
  • 我可以使用具有最大特征值的协方差矩阵的特征向量作为方向。然后我可以旋转图像以将此特征向量与某个预定轴(例如水平)对齐。

尽管如此,这仍然留下了很多操作(对角线镜像,围绕中心旋转,反转)。并且这些操作不通勤(D 8是非阿贝尔)。有没有综合的办法?

我想这样做的原因是通过消除实际上没有意义的方差来帮助机器学习方法。希望这可以确保他们不必学习这些等价性,因此可能需要更少的训练数据(和时间)。

1个回答

群论的乐趣!

方阵只有 8 种独特的旋转反转操作。

四个旋转运算符是(0,90,180,270). 进一步旋转或反向旋转与这四个相同。两个连续的旋转只产生一个旋转算子,所以我们只考虑这四个旋转应用一次。

五个反演算子是(0,/,\,|,-). 两个连续的反转只会产生一个旋转,所以我们只允许一次反转。

因此,我们可以通过组合这两个向量来导出所有运算符,从而产生4*5=20可能的状态。

(0,90,180,270,0/,90/,180/,270/,0\,90\,180\,270\,0|,90|,180|,270|,0-,90-,180-,270-)

但是在反演算子中仍然存在需要利用的对称性。您可能会直觉到 4x4 矩阵只有 8 个最终状态:反转与否以及旋转 (0,90,180,270)。事实证明,您可以使用任何其他反演算子和其中一个旋转来达到涉及反演的任何可能状态。所以我们只需要保留一个反演算子!所以最后一组 8 个正交操作是:

(0,90,180,270,0|,90|,180|,270|)

如果矩阵成员中存在任何对称性,则某些结果状态可能是退化的。

在将可能状态映射到基态方面,应用一组连续的确定性规则来确定基态方向是有意义的。我建议找到最大的角落正方形并将其定位在右下角。如果角落正方形中有多个具有相同大值的候选者,则使用下一个最近的正方形作为决胜局。有 16 个方格,因此您最终可以打破所有关系或宣布退化。您可以决定应用剩余的一项\操作,以便找到与底部右下角相邻的两个正方形中较大的一个。同样,您可以使用与这些相邻的方格作为决胜局。