基于稀疏表示字典学习的磁共振图像重建算法

基于稀疏表示字典学习的磁共振图像重建

  • 基于稀疏表示字典学习的磁共振图像重建算法
    • 基本假设
    • 稀疏表示算法
      • 正交匹配追踪(OMP)算法
    • 字典学习算法
    • 稀疏表示的一致性

基于稀疏表示字典学习的磁共振图像重建算法

最近在关注磁共振图像重建的算法,也涉及到磁共振图像超分辨率相关的内容,做一些基础知识和原理的整理,在此总结。

基本假设

以字典学习为基础的图像重建算法,基本假设认为图像块是可以被稀疏编码为过完备字典中少量原子的稀疏组合。也就是说,对于低分辨率图像 Y Y Y和高分辨率(原图) X X X(展平一维向量方便表述),有:
Y = D l α l X = D h α h Y ∈ R M , D l ∈ R M × C , X ∈ R N , D h ∈ R N × C Y=D_l\alpha_l \\ X=D_h\alpha_h \\ Y \in R^M, D_l \in R^{M\times C}, X \in R^N, D_h \in R^{N\times C} Y=DlαlX=DhαhYRM,DlRM×C,XRN,DhRN×C
这两个式子中的 D l D_l Dl D h D_h Dh,即假设中的过完备字典,其中每一列都是一个字典元素,之所以叫过完备字典,正是因为 M , N ≪ C M,N\ll C M,NC,即字典的元素的维数远小于字典元素的数量。而由于稀疏性,假设认为图像在下采样过程中发生的下采样,模糊和形变(统一表示为 H H H)的变化对于稀疏 α \alpha α几乎没有影响,因此假设 α h ≈ α l \alpha_h\approx \alpha_l αhαl,后文可以统一表示为 α \alpha α。(这部分之后这里还会讨论)

因此,整个基于稀疏表示的重建问题可以分解为:

  1. 寻找稀疏表示 α \alpha α,其满足稀疏条件 ∥ α ∥ 0 < s p \Vert \alpha \Vert_0α0<sp,sp为稀疏度,整个式子表示 α \alpha α中不为0的元素个数少于 s p sp sp个。这部分的算法为稀疏编码算法,比如OMP算法等。(给定过完备字典,寻找稀疏的表示)
  2. 寻找合适的过完备字典 D l D_l Dl D h D_h Dh,这部分算法就是过字典学习算法,比如k-SVD算法等。

稀疏表示算法

所谓稀疏表示算法,即为在给定了过完备字典 D D D的情况下,寻找一个尽量稀疏向量 α \alpha α,满足 y = D α y=D\alpha y=Dα,形式化表述为
∥ α ∥ 0 α , s . t . y = D α \underset{\alpha}{\Vert \alpha \Vert_0}, s.t. y=D\alpha αα0,s.t.y=Dα
由于直接对0范数进行求解很困难(NP-hard问题),因此在实际过程中往往将条件松弛到1范数,也就是
∥ α ∥ 1 α , s . t . y = D α \underset{\alpha}{\Vert \alpha \Vert_1}, s.t. y=D\alpha αα1,s.t.y=Dα
对于该问题的求解,多种算法被提出,比较经典的算法是启发式的贪婪算法,下面以OMP算法为例,介绍相关算法的思路。

正交匹配追踪(OMP)算法

正交匹配追踪(OMP,Orthogonal Matching Pursuit)算法改进自匹配追踪算法(MP)。MP算法的思路是,在每一次迭代中,选择能够最大减少目标图像和当前表示( y − D α c u r r e n t y-D\alpha_{current} yDαcurrent)之间差值的原子(字典项),这样就能够不断逼近 y y y。但是这样的思路存在一个问题:每次迭代的结果并不是最优的,所以迭代次数会很多。该方法虽然考虑到了选择减小和当前表示之间的插值,但是对于当前表示的正交性没有考虑,也就是说,很有可能所选的原子(字典项)本身已经被选择过了,或者可以由被选择过的元素线性表出,那么这样的选择实际上是浪费的,可以避免的。OMP算法就是从正交性的角度,对MP算法做了改进,其基本流程伪代码如下:

'''
params:D:NxC 过完备字典y:N 目标图像sp:scalar 稀疏度
returnalphas
'''
res=y
atoms=[]
do:index=argmax(res*N)  # 和N中的每一个原子做内积atoms+=N[index,:]alphas=(atoms.T*atoms)^(-1)atoms.T*y  # 使用最小二乘法(可以改用其它方法),寻找使用atoms表出y的最优组合res=y-atoms.T*alphas
while p(alphas,0)<sp  # 0范数少于sp

字典学习算法

和稀疏表示算法不同,字典学习算法的目的是为了构造过完备的字典 D D D。不过实际上,过完备字典 D D D的构造未必需要通过学习来完成,通过离散余弦变换、小波变换等也可以构造出字典,而且更加简单,但相对来说不够丰富和有针对性。使用学习方法构造字典可以分为综模型和解析模型,前者是研究重点。综合模型在给定字典 D ∈ R N × C D\in R^{N\times C} DRN×C的情况下,其学习问题可以表示为如下的优化问题:
m i n D , α ( ∥ B − D α ∥ + λ ∥ α ∥ 0 ) \underset{D,\alpha}{min}(\Vert B-D\alpha \Vert+\lambda\Vert \alpha \Vert_0) D,αmin(BDα+λα0)
其中 D = [ b 1 , b 2 , . . . , b Q ] ∈ R N × Q D=[b_1,b_2,...,b_Q]\in R^{N\times Q} D=[b1,b2,...,bQ]RN×Q,表示Q个训练样本(和前一节不同,这里用 b b b来表示图像块)。
对于该问题的求解主要采用交替优化,依次(固定另一项)优化 D D D α \alpha α,其中优化 α \alpha α的部分就是采用之前提到的稀疏表示算法,可以任意选择。而优化 D D D的部分就是不同字典学习算法的主要区别,经典算法如K-SVD,可以参考这篇博客等。

稀疏表示的一致性

基于稀疏表示的重建算法的假设就是 α l = α h \alpha_l=\alpha_h αl=αh,但是想也知道不可能单纯地通过分别学习字典就自动能够得到这个结果,在实际应用中,需要有一些方法来确保这一点,举几个例子。

通过(k-SVD等方法)进行字典学习时一开始就共用相同的稀疏编码 α \alpha α

在对 D h D_h Dh进行构造的时候,直接采用 D l D_l Dl构建过程中获得的稀疏编码,通过对应的低分辨率和高分辨率样本采用同样稀疏编码这一约束,通过解析或者学习的方式生成 D h D_h Dh


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部