主动形状模型

机器学习

常见使用场景

ASM 模型是一种基于统计形变模型的分割算法。在分割图像时,综合考虑了图像的大小、灰度、大致位置和图像形状等先验知识。它使用从训练样本得到的统计模型作为初始位置,然后通过不断迭代寻找目标图像的最佳轮廓。在迭代过程中通过更新模型的姿态参数和形状参数,使模型逐渐搜索到目标图像的边界。

ASM算法

ASM 是一种基于统计学的模型。通过选取一组训练样本作为训练集,然后用一组标记点来描述训练集中各个样本的轮廓。在算法中,这组标记点将以向量形式使用,称为形状向量。然后对训练集中各样本的形状进行对齐、配准(使得形状消除由于旋转、大小、位置因素造成的差异),使训练集各个样本统一于同一个坐标系。对这些配准后的形状利用主分量分析方法进行降维和统计分析,最后ASM在初始位置的邻近区域进行搜索得到目标形状。由于ASM训练得到的平均形状模型能基本覆盖各种肺部几何外形子空间,具有较高的定位精度,从而可以较准确定位出目标物体。

主动形状模型分为两个步骤:

1. 我们需要训练样本图像得到形状模型和灰度模型。首先,我们需要对训练集样本进行对齐、配准消除因为旋转、拉伸等因素带来的形状差异,然后建立统计形状模型和灰度模型。

2. 我们会使用第一步得到的形状模型和灰度模型去搜索目标图像的轮廓。首先对于测试样本图像,我们需要给出一个初始位置,然后通过灰度模型在初始位置附近进行标记点搜索。当每一个标记点都搜索完毕后会得到新的形状位置,再通过修改主动形状模型的姿态参数进行姿态修正,得到姿态修正的形状向量。最后需要判断形状是否收敛,若否,则返回到标记点搜索这一步进行重新循环直到最后收敛。若收敛,得到的形状就是所求的目标形状。具体流程如下图所示。

建立点分布模型

我们用一组标记点逐一标记训练集中的每一个样本的形状,这样一来,每个样本就可以通过一组标记点来描述,

这组标记点也称为形状向量。Cootes 提出,在ASM 中,标记点可以分为三类:

第一类是解剖学标记点:是由专家指定的,具有某种生物学意义的点,例如心室膜或瓣膜;

第二类是数学标记点:是在目标对象上依靠某些数学或几何学特性确定的点,例如高曲率点,极值点,角点等;

第三类是伪标记点:是在目标对象轮廓上或者标记点直接构造的点,例如前两类点的等距插值点。

下图说明了一般图像中标记点选择方法。

训练样本对齐

ASM 方法通过对样本训练集中的形状进行统计分析,获得形状模型。但是,由于形状在物体的位置,尺寸和角度的影响下,会发生变化。因此,我们需要消除训练集中有关旋转,伸缩和位移因素对形状的影响。我们需要将训练集的每个样本都转化到一个统一的坐标系进行配准,最常用的形状配准方法是Procrustes方法。这个方法通过使训练集中每个样本形状和训练集平均形状之间的距离达到最小来进行配准,其中平均形状可以从整个样本集合中计算得到。假设两个图像的形状向量分别为x1和x2,则两个图像之间的Procrustes 距离为:

P2d=∑j=1n[(x1j−x2j)2+(y1j−y2j)2]

为了使x2对齐x1,我们可通过调整x2 的旋转角度θ,尺度大小s 和位移t 使其与x1 间的Procrustes 距离最小,即让(1)式中E 无限接近于0:

E=(x1−M(s,θ)[x2]−t)TW(x1−M(s,θ)[x2]−t)(1)

其中

M(s,θ)[x2jy2j]=[(scosθ)x2j−(ssinθ)y2j(scosθ)x2j+(ssinθ)y2j]

W 是一个包含每个标记点权重的对角矩阵。权值的选择应该使变化较少的、稳定性高的点权值较大,相反,变化较大的,稳定性差的点使其权值较小,这样做可以更好的保障生成的平均形状的有效性。

点k 权值的计算方法:首先需要计算同一个形状中点k 和点l 之间的距离Rki,然后在整个训练集中计算这个距离的方差VRkl,然后求点k 上到所有点的距离方

差的和,将这个和求倒数就得到了点k 的权值:

wk=(∑l=1nVRkl)−1

通过以上步骤我们已经使训练集中的样本对齐,然后我们需要对对齐后的样本计算平均形状:

X¯¯¯=1N∑n=1Nxi

有了以上对两个样本的对齐操作后,就可以对整个训练集采用上述操作,对齐有N个样本训练集的算法如下:

1. 旋转、缩放和平移训练集中每个形状以对齐第一个形状。

2. 计算平均形状。

3. 归一化平均形状的方向、尺度和原点。

4. 重新将每个形状与当前平均形状对齐。

5. 如果过程收敛或者到指定循环次数则退出,否则转到2

形状模型的建立

配准训练集样本后,我们可以很容易求出平均形状,下面对训练集计算协方差S:

S=1N∑n=1N(x−x¯)(x−x¯)T

求出S的特征值p 和特征向量λ :

Sp=λp

如果我们有p,其中 pi来自前 2n个特征值最大的特征向量。对于任何向量x,存在向量b 满足:

x=x¯+Pb

这里向量b 的分量表示向量x 在每一个特征向量方向上与平均形状的差异大小。根据PCA我们将选取前t个特征值最大的特征向量,来拟合真实的形状,达到降维的目的。

灰度模型的建立

为了使形状模型可以自主地搜索目标图像中肺部的轮廓,我们还需要对训练集中每幅图像标记点附近区域的灰度信息进行采用。首先,对样本中的每个标记点做垂线,再取垂线内外两侧各k个像素点的灰度微分,然后对其进行标准化。

为了减少各个样本的整体灰度值差异,我们采样的是标记点的微分而非灰度值。这样我们得到2k+1个样本点向量,记作gij=[gij1,gij2,...,gij(2k+1)],即第i个训练样本形状中第j个标记点的轮廓法线向量。如下图所示,图中红线就是第11 个训练样本中第11 个标记点的轮廓法线。

对每个训练样本形状的轮廓法线向量进行标准化,得的第j 个标记点的一个标准轮廓法线向量集。计算关键点的样本平均值g¯ 和样本协方差矩阵Sg

g¯=1N∑i=1NgijSj=1N∑i=1N(gij−g¯ij)(gij−g¯ij)T

初始位置的确定

初始位置是由平均形状经过适当的平移,选择,缩放和形变得到。设平移参数为t⃗=[tx1,ty1,tx2,ty2,...,txn,tyn],选择和缩放参数分别为S 和θ ,形变参数为b ,平均形状的形状向量为X¯¯¯ ,则初始位置Xi 有:

Xi=M(S,θ)[X¯¯¯+Pb]+t

初始化时,设S=1,θ=0,b=0,t⃗=0⃗,即使用平均形状作为初始位置。

新位置的确定

在前面我们已经得到了模型的初始位置,但是得到的初始位置未必就与目标图像的形状吻合,因此,我们需要调整初始形状的形状参数和姿态参数使其逼近目标形状。在前面我们已经建立了每个标记点的灰度模型,这可以使我们能搜索到每个标记点的最佳位置。

灰度模型是利用从训练集统计出来的标记点在法线方向上的灰度信息来搜索目标样本的的最佳位置,在搜索过程中,标记点在当前位置的法线两侧上各取m

个像素点(m>k)的轮廓法线向量,然后在2(m−k)+1个可能位置进行比较,其中,马氏距离最小的那个位置被认为最合适的位置,定义一个函数:

f(d)=(h(d)−g¯)TS−1g(h(d)−g¯)

这个函数实际上是表示向量h(d)和模型均值g¯ 之间的马氏距离,通过最小化f(d)就相当于找到一个和训练集的灰度信息最相似的位置。在上面的 2m+1 个像素中分别取其中连续的 2k+1 个像素的灰度值,记为h(d),计算 f(d)的值,经过2(m−k)+1次计算得到,2(m−k)+1个马氏距离,选择其中最小的候选点作为标记点的最佳位置。

计算形状和姿态参数

设当前形状向量为X,通过标记点的灰度模型搜索到的新的位置为X+dX,我们需要调整当前模型的姿态和形状参数,以便使 X 尽可能的靠近

X+dX ,设姿态参数旋转,缩放,平移分别为θ,s,t,我们可以得到dθ,ds,dt,

其中X=M(S,θ)[X¯¯¯+Pb]+t 给出,则X+dX 可以表示为:

M(S(1+ds),θ+dθ)[X¯¯¯+P(b+db)]+(t+dt)=X+dX

更新形状和姿态参数

由上节我们可以得到姿态参数改变量dθ,ds,dt以及形状参数改变量db,我们需要更新这些参数,然后再进行迭代来靠近目标图像的形状。

t=t+dtθ=θ+dθS=S(1+dS)b=b+db

算法流程

形状模型和灰度模型建模结束后,便可利用灰度模型收集当前形状下各个标记点的轮廓法线向量,然后选择马氏距离最小的点作为当前标记点的最佳候选点。然后利用形状模型,向最佳候选点构成的形状向量对齐,同时保持形状模型对形状的约束。接着,检查新形状相对于原形状是否收敛。如果没有,则算法结束,搜索完成;否则,继续以新形状的位置寻找最佳候选点,如此反复进行下去,直到定位完成或者算法循环次数达到限定次数。流程图如下图所示:

参考资料

判刑形状模型_主动形状模型 - 作业部落 Cmd Markdown 编辑阅读器相关推荐

  1. java当线程离开临界区时_第2章 - 作业部落 Cmd Markdown 编辑阅读器

    第2章 translation 同步 线程交互通常是通过共享变量完成的,当线程之间没有交互,开发多线程的应用程序会变得简单许多.一旦交互发生了,很多诱发线程不安全(在多线程环境下不正确)的因素就会暴露 ...

  2. poi word转html 根号,根号算法 - 作业部落 Cmd Markdown 编辑阅读器

    根号算法 --如何让复杂度去掉维 数据结构 算法 By 分块 一般分块 板子&原理 SIZ=(int)sqrt(n);//块大小 for(inti=(x-1)*SIZ+1;i<=x*SI ...

  3. 文档服务器搭建markdown,服务器部署 - 作业部落 Cmd Markdown 编辑阅读器

    1.整个项目重新部署: 删除原有程序 将打包好的ROOT.war包copy到服务器的webapps目录下,执行前需要配置好相关的适用服务器配置文件: WEB-INF下的web.xml文件 WEB-IN ...

  4. 作业部落 Cmd Markdown 编辑阅读器

    Cmd Markdown 编辑阅读器 Cmd Markdown 编辑阅读器 WindowsMacLinux 全平台客户端 什么是 Markdown 书写一个质能守恒公式1 高亮一段代码2 高效绘制 流 ...

  5. ppp协议提供服务器,ppp协议 - 作业部落 Cmd Markdown 编辑阅读器

    ppp协议 blog 归档 网络协议 ppp协议 ppp协议详解 1.概述 ppp协议分为几个部分:LCP(链路控制协议).NCP(网络控制协议).认证协议(包括PAP协议和CHAP协议).另外还有C ...

  6. c语言编程实现二维数组的蛇形矩阵,蛇形矩阵 - 作业部落 Cmd Markdown 编辑阅读器...

    蛇形矩阵 C-study-code Erin最近学习了数组,她想通过数组实现一个蛇形方阵的打印,你可以帮她实现这个程序吗? input:整数n(2 output:n*n的方阵,从方阵右上角开始以顺时针 ...

  7. Mq测试仪c语言版,mq? - 作业部落 Cmd Markdown 编辑阅读器

    mq? 翻阅了一些资料,目前市面上流行的消息队列大概有zeroMQ,robbitMQ, kafka, activeMQ. zeroMQ feature:可以使用任意语言,在任何平台上. 信息可以负载在 ...

  8. php根据阅读记录推荐内容,php记录 - 作业部落 Cmd Markdown 编辑阅读器

    php记录 20151209 联系人管理 获取列表,获取单个列表(查看详情),添加和移除分组 设置显示字段,编辑筛选条件 sbase 项目 protected - handler-account-ch ...

  9. 计算机ps计划,PS学习计划 - 作业部落 Cmd Markdown 编辑阅读器

    PS学习计划作者:汐夜 时间:2016/03/18 一.了解阶段 PS的定义:Adobe Photoshop,简称"PS",是由Adobe Systems开发和发行的图像处理软件. ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
  2. oracle字符集与客户端
  3. Leetcode 217. 存在重复元素 (每日一题 20210913)
  4. html worker api,worker_threads 工作线程
  5. post方法就返回了一个string字符串前台怎么接_LoadRunner脚本编写教程Getamp;Post
  6. 框架源码专题:Mybatis的一级缓存、二级缓存是什么?有什么作用?
  7. Spring框架学习[IoC容器高级特性]
  8. 关于JavaScript 中的变量
  9. 线性判别分析(LDA), 主成分分析(PCA)
  10. 语义噪声 | 语义网:重新发明轮子,创新者的窘境
  11. graphpad做折线图_GraphPad 折线图要这样玩
  12. Windows NT/2000/XP下不用驱动的Ring0代码实现
  13. ruckus telnet java_ruckus常用配置方法.pdf
  14. Vue组件化|通用组件开发——Notification通知组件
  15. 武汉有哪些牛逼的互联网公司?
  16. css中“~”(波浪号)、“,”(逗号)、 “ + ”(加号)和 “ ”(大于号)是什么意思?
  17. windows xp 打开文件夹慢的解决
  18. MFC如何添加bmp文件和ICO文件
  19. 普通人如何通过积分落户北京? 2021北京积分落户分析必看
  20. XP系统IE浏览器无法访问https

热门文章

  1. 利用JAVA中HashSet制作三人斗地主
  2. 第十二周任务一(多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部))
  3. 方舟生存进化怎么开最新服务器,方舟生存进化正版开服怎么 设定服务器
  4. CANoe的安装及打开
  5. argparse简要用法总结
  6. 射频电路与天线(华南理工金品公开课)学习笔记--绪论
  7. 元气森林讲出新的“可乐味”故事?
  8. 拳魂觉醒服务器维护怎么办,拳魂觉醒传承馆在哪,开启条件和进入操作介绍
  9. 轩尼诗成为NBA首个全球烈酒合作伙伴
  10. Linux系统安装Redis以及报错解决方法