Active Shape Models 的拟合过程与统计模型拟合函数不收敛
Posted
技术标签:
【中文标题】Active Shape Models 的拟合过程与统计模型拟合函数不收敛【英文标题】:Active Shape Models' fitting procedure doesn't converge with Statistical Model fitting function 【发布时间】:2014-07-07 10:17:08 【问题描述】:我遵循了 Tim Cootes 在 textbook 和 original paper。到目前为止一切顺利(Procrustes 分析、主成分分析、图像预处理(对比度、噪声))。只有拟合过程本身似乎没有收敛。
我使用textbook (p. 13) 中描述的灰度结构方法的统计模型为 8 个门牙中的每一个、40 个地标中的每一个创建一个拟合函数(因此 320 个不同的拟合函数总共创建)每个门牙通过沿剖面垂直于边界的两侧采样 5 个 (=k
) 点,通过 8 个门牙中的每一个的 40 个地标中的每一个。这些函数等于马氏距离 (textbook 第 14 页)。
在拟合过程中,我通过当前近似牙齿的 40 个界标中的每一个沿垂直于边界的轮廓在两侧采样 10 个 (=m>k
) 点。这样我必须使用相应的拟合函数评估2(m-k)+1
样本。
这些样本中的每一个都包含2k+1
点的梯度值。选择最小化函数的样本,并将相应的界标定位在那些2k+1
点的中间点。这是针对 40 个地标中的每一个完成的。这会产生一个新的(尚未验证的)牙齿近似值。
图像坐标系中的这种近似与图像坐标系中的牙齿模型对齐。然后计算主成分分析的系数(bi
)并检查|bi|<3*sqrt(eigenvalue_i)
是否与模型的形状有太大的偏差。必要时限制系数 (bi
),然后我们转换回图像坐标系并开始一些新的迭代。
显示我们想要找到左上门牙的图像。
在第 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)
显示第 19 次迭代中模型坐标系中牙齿的近似值。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)正如我们所看到的,我们仍然接近模型的形状。
在模型坐标系中显示 19 次迭代的牙齿近似值。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)正如我们所看到的,在所有这些迭代过程中,我们都保持接近模型的形状
所以我们保持接近形状(由主成分分析保护),但不接近地标周围的强度行为(由拟合函数保护)。
【问题讨论】:
【参考方案1】:梯度图像错误或更好没有任何用处,因为需要沿轮廓法线而不是水平和垂直方向求导。
【讨论】:
以上是关于Active Shape Models 的拟合过程与统计模型拟合函数不收敛的主要内容,如果未能解决你的问题,请参考以下文章
综述:Active Appearance Models——2001
论文笔记 Shape and Time Distortion Loss for Training DeepTime Series Forecasting Models