【发布时间】:2015-08-12 05:30:07
【问题描述】:
我有一个关于 Active Shape 模型的问题。我正在使用 T. Coots 的论文(可以找到 here。)
我已经完成了所有的初始步骤(Procrustes 分析来计算平均形状,PCA 来减小尺寸),但是我一直在试穿。
这就是我现在所处的情况:我已经用点 X 计算了平均形状,并且还计算了 X 的一组新点 Y 应该移动到,以更好地适应我的形象。
我正在使用以下算法,可以在之前链接的论文的第 23 页找到:
澄清一下: 是使用 Procrustes 分析计算的平均形状, 是包含使用 PCA 计算的特征向量的矩阵。
第 4 步一切顺利。我可以计算姿势参数并将变换反转到点 Y。
但是,在第 5 步中,发生了一些奇怪的事情。无论在步骤 3 中计算姿势参数并在步骤 4 中应用,步骤 5 总是产生几乎完全相同的向量 y' 具有非常低的值(例如,其中一个是 1.17747114e-05) . (所以无论我计算的比例是 1/10 还是 1000,y' 几乎没有变化)。
这导致算法总是收敛到相同的 b 值,因此无论输入的目标点集是什么,都具有相同的输出形状 x Y 是我希望模型点 X 与之匹配的。
这肯定不是算法的目标......谁能解释这种奇怪的行为?不知何故,将我在步骤 5 中计算出的向量 y 投影到“切平面”并没有考虑到步骤 4 中所做的任何更改.
编辑:我有更多的推理,虽然没有解释或解决方案。如果在第 5 步中,我手动将 y' 设置为仅包含零,那么在第 6 步中,b 等于 特征向量乘以均值形状的矩阵。这导致我总是得到相同的 b (因为 y' 总是一个具有非常低值的向量)。
但是这些特征向量是使用 PCA 从均值形状计算出来的......所以可以预期的是,不会发生任何变化,对吧?
【问题讨论】:
标签: python algorithm opencv image-processing matching