活动形状模型的拟合过程不与统计模型拟合函数收敛

时间:2014-05-19 12:39:39

标签: python computer-vision model-fitting

我遵循了Tim Cootes所描述的Active Shape Models方法 textbookoriginal paper。到目前为止一切顺利(Procrustes分析,主成分分析,图像预处理(对比度,噪声))。只有拟合程序本身似乎不会收敛。

我使用textbook(第13页)中描述的灰度结构方法的统计模型,为40个地标中的每一个创建8个门牙中的每一个的拟合函数(所以320个不同通过对8个门牙中的每一个的40个界标中的每一个沿着垂直于边界的轮廓的任一侧上的5(= k个)点采样每个门齿的拟合函数。这些函数等于马哈拉诺比斯距离(textbook p.14)。

在拟合过程中,我通过当前近似牙齿的40个标志中的每一个沿着垂直于边界的轮廓在任一侧上采样10(= m>k)点。这样我就必须用相应的拟合函数来评估2(m-k)+1个样本。 这些样本中的每一个都包含2k+1点的梯度值。选择最小化函数的样本,并将相应的界标定位在那些2k+1点的中点。这是针对40个地标中的每一个进行的。这导致了一种新的(未经验证的)牙齿近似。

图像坐标系中的这种近似与图像坐标系中的牙齿模型对齐。然后计算主成分分析的系数(bi)并检查|bi|<3*sqrt(eigenvalue_i)是否为了不偏离模型的形状太多。如果需要,系数(bi)会受到限制,我们会转换回图像坐标系并开始一些新的迭代。

显示我们想要找到左上门牙的图像。

enter image description here

在迭代19中显示具有图像坐标系中的牙齿近似的梯度图像。 (红色:验证前 - 绿色:验证后)我们可以看到我们与最佳解决方案不同。

def create_gradient(img):
    temp = cv2.Scharr(img, ddepth=-1, dx=1, dy=0)
    return cv2.Scharr(temp, ddepth=-1, dx=0, dy=1)

enter image description here

在迭代19中显示模型坐标系中牙齿的近似值。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)我们可以看到我们仍然接近模型的形状。

enter image description here

显示模型坐标系中牙齿的近似值,持续19次迭代。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)在所有这些迭代中,我们可以看到我们保持接近模型的形状

enter image description here

所以我们保持接近形状(由主成分分析保护),但不接近地标周围的强度行为(由拟合函数保护)。

1 个答案:

答案 0 :(得分:3)

渐变图像错误或更好没有任何用处,因为需要沿剖面法线而不是水平和垂直方向取导数。