python - 事件形状模型的拟合过程不与统计模型拟合函数收敛

标签 python computer-vision model-fitting

我遵循了 Tim Cootes 在 textbookoriginal paper .到目前为止一切顺利(Procrustes 分析、主成分分析、图像预处理(对比度、噪声))。只有拟合程序本身似乎没有收敛。

我使用灰度结构方法的统计模型,如 textbook 中所述(p. 13) 为 8 个切牙中的每一个创建拟合函数,为每个切牙的 40 个地标中的每一个创建拟合函数(因此总共创建了 320 个不同的拟合函数),通过沿两侧采样 5 (= k) 点通过 8 个切牙中的每一个的 40 个界标中的每一个的边界的垂直轮廓。这些函数等于马氏距离(textbook 第 14 页)。

在拟合过程中,我在 dentry 当前近似值的 40 个地标中的每一个沿垂直于边界的轮廓的两侧采样 10 (= m>k) 点。这样我必须评估 2(m-k)+1具有相应拟合函数的样本。 这些样本中的每一个都包含 2k+1 的梯度值点。选择最小化函数的样本,并将相应的地标定位在那些 2k+1 的中间点。点。这是针对 40 个地标中的每一个完成的。这会导致新的(尚未验证)近似 dentry 。

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

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

enter image description here

在第 19 次迭代中显示图像坐标系中 dentry 近似值的梯度图像。 (红色:验证前 - 绿色:验证后)正如您所看到的,我们有点偏离了最佳解决方案。

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 中模型坐标系中 dentry 的近似值。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)正如你所看到的,我们仍然接近模型的形状。

enter image description here

在 19 次迭代的模型坐标系中显示 dentry 的近似值。 (蓝色:模型 - 红色:验证前 - 绿色:验证后)正如我们所见,在所有这些迭代过程中我们都保持接近模型的形状

enter image description here

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

最佳答案

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

关于python - 事件形状模型的拟合过程不与统计模型拟合函数收敛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738004/

相关文章:

python - 实时网络摄像头订阅源上的OCR:图像高度为零,无效的IHDR数据

r - 如何从 R 中的 GLM 调用中检索原始变量名称的列表?

r - 如何在 zelig 中获取多重插补数据的模型拟合度(AIC、F 统计量)度量?

python - Pandas 按时间分组,指定开始时间(非整数分钟)

python - 本地 Flask 服务器上的慢请求

opencv - 图像中的圆圈检测

python - 输入预测/估计给定变量趋势所需的数据

python - 如果索引包含重复值,为什么 pandas 在使用索引时合并速度较慢?

python - 如何将此字典转换为元组列表?

python - 如何将彩色像素更改为白色像素