Python 活动形状模型:将模型点与目标点匹配
我有一个关于活动形状模型的问题。我使用的是T.库茨的论文(可以找到) 我已经完成了所有的初始步骤(Procrustes分析来计算平均形状,PCA来减少尺寸),但我仍然坚持拟合 这就是我现在所处的情况:我已经用点X计算了平均形状,还计算了一组新的点Y,该点X应该移动,以更好地适合我的图像 我使用的算法如下,可在先前链接的论文第23页找到:Python 活动形状模型:将模型点与目标点匹配,python,algorithm,opencv,image-processing,matching,Python,Algorithm,Opencv,Image Processing,Matching,我有一个关于活动形状模型的问题。我使用的是T.库茨的论文(可以找到) 我已经完成了所有的初始步骤(Procrustes分析来计算平均形状,PCA来减少尺寸),但我仍然坚持拟合 这就是我现在所处的情况:我已经用点X计算了平均形状,还计算了一组新的点Y,该点X应该移动,以更好地适合我的图像 我使用的算法如下,可在先前链接的论文第23页找到: 澄清:是使用Procrustes分析计算的平均形状,是包含使用PCA计算的特征向量的矩阵 到第4步,一切都进展顺利。我可以计算姿势参数并将变换反转到点Y
澄清:是使用Procrustes分析计算的平均形状,是包含使用PCA计算的特征向量的矩阵 到第4步,一切都进展顺利。我可以计算姿势参数并将变换反转到点Y 然而,在STAP5中,发生了一些奇怪的事情。无论在stap 3中计算并应用于stap 4中的姿势参数是什么,stap 5总是产生几乎完全相同的向量y',且值非常低(例如,其中一个为1.17747114e-05)。(所以无论我计算的是1/10还是1000,y'几乎没有变化) 这导致算法总是收敛到相同的值b,因此在相同的输出形状x,无论目标点Y的输入集是什么,我都希望模型点x匹配 这当然不是算法的目标。。。有人能解释这种奇怪的行为吗?不知何故,将步骤5中计算出的向量y投影到“切平面”中并不考虑步骤4中所做的任何更改
编辑:我有更多的理由,虽然没有解释或解决办法。如果在步骤5中,我手动将y'设置为仅由零组成,则在步骤6中,b等于特征向量与均值形状相乘的矩阵。这导致了我总是得到相同的b(因为y'总是一个值很低的向量) 但这些特征向量是使用PCA从平均形状计算出来的。。。所以我们期望的是,不应该发生任何变化,对吗
您可以检查的是您的坐标是否正确缩放:该算法假设所有坐标都已缩放,以便平均形状向量具有欧几里德范数1。如果不是这样(特别是如果它比一大得多,你会得到非常小的y分量)