活动形状模型:将模型点与目标点匹配

Ad *_*dum 7 python algorithm opencv image-processing matching

我有一个关于Active Shape Models的问题.我正在使用T. Coots的论文(可以在这里找到.)

我已经完成了所有的初始步骤(Procrustes Analysis计算平均形状,PCA以减小尺寸),但我仍坚持使用.

这是我在现在的情况:我已经计算出平均形状点X和也计算了一组新的点ŸX应该搬到,以更好地满足我的形象.

我使用以下算法,可以在之前链接的论文的第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的均值来计算出来的...那么预期的是,不应该发生变化,对吧?


小智 0

您可以检查您的坐标是否已正确缩放:该算法假设所有坐标均已缩放,以便平均形状向量具有欧几里得范数 1。如果情况并非如此(尤其是当它远大于 1 时,您将得到 y 的极小的分量)。