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

4 投票
1 回答
1250 浏览
提问于 2025-04-18 06:59

我按照Tim Cootes在教科书原始论文中描述的主动形状模型的方法进行操作。到目前为止,一切都很顺利(包括Procrustes分析、主成分分析、图像预处理(对比度、噪声))。但只有拟合过程似乎没有收敛。

我使用了教科书中描述的灰度结构统计模型(第13页),为每个8颗门牙的40个关键点创建拟合函数(总共创建320个不同的拟合函数)。我通过在每个门牙的40个关键点的边界法线两侧采样5个点(即k)来实现这些函数。这些函数等同于马哈拉诺比斯距离(见教科书第14页)。

在拟合过程中,我在当前牙齿的40个关键点的边界法线两侧采样10个点(即m>k)。这样我必须评估2(m-k)+1个样本,并使用相应的拟合函数。每个样本包含2k+1个点的梯度值。选择使函数最小化的样本,并将相应的关键点放置在这2k+1个点的中间位置。这个过程对每个关键点都进行一次,最终得到一个新的(尚未验证)牙齿近似。

这个近似在图像坐标系中与牙齿模型对齐。然后计算主成分分析的系数(bi),并检查是否满足|bi|<3*sqrt(eigenvalue_i),以确保不偏离模型的形状。如果有必要,会限制这些系数,然后再转换回图像坐标系,开始新的迭代。

下面的图片是我们想要找到的左上方门牙。

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 个回答

4

这个梯度图像是错误的,或者说没什么用,因为我们需要沿着轮廓的法线方向来计算导数,而不是简单地沿着水平和垂直方向。

撰写回答