本文提出了采用光顺–变形–映射–修正四个步骤来解决特征复制的问题,先给出了离散曲线的Gauss光顺算法,再通过曲线演化算法实现了多线外形的变形,然后建立两个多线外形间的映射得到特征曲线网,最后对特征曲线网进行局部修正。本文在自主设计的图形图像处理软件DateSet上验证了算法正确性,该方法适用范围广,解决了快速、准确地实现特征曲线网复制的问题。 This paper is put forward to use smooth-deformation-mapping-fixed four steps to solve the problem of feature replication. First, it gives the Gauss smoothing algorithm of discrete curve. Then, it realizes the deformation of multi-line shape by the curve evolution algorithm. Next, it establishes a map-ping between two multi-line shapes to get the feature curve network. Finally, it fixes the feature curve network locally. The paper verifies the correctness of the algorithm on DateSet, which is a self- designed graphic and image processing software. This algorithm has a wide range of application and solves the problem of realizing the replication of the feature curve network rapidly and accurately.
董倩倩,唐月红*,何姗姗
南京航空航天大学理学院,江苏 南京
收稿日期:2018年11月8日;录用日期:2018年11月21日;发布日期:2018年11月28日
本文提出了采用光顺–变形–映射–修正四个步骤来解决特征复制的问题,先给出了离散曲线的Gauss光顺算法,再通过曲线演化算法实现了多线外形的变形,然后建立两个多线外形间的映射得到特征曲线网,最后对特征曲线网进行局部修正。本文在自主设计的图形图像处理软件DateSet上验证了算法正确性,该方法适用范围广,解决了快速、准确地实现特征曲线网复制的问题。
关键词 :多线外形,特征曲线网,高斯光顺,ICP,曲线演化,收缩包围
Copyright © 2018 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
随着计算机和数字化处理技术的快速发展,CAD技术在医学影像研究中越来越占据着重要地位,并已在医学诊断中充分展示出了其临床价值。通过计算机将影像学获得的数据导入医学图形图像处理软件,经过计算机的数值计算分析,帮助医师找出病灶,从而能够提高诊断的准确效率。Taubin在1995年提出了一种基于Laplacian流的网格信号处理方法 [
离散曲线是由像素坐标链而形成的代码序列,在滤掉噪声的同时保持曲线的基本形状特征是选择滤波器的关键。高斯滤波器是根据高斯函数的形状来选择权值的线性平滑滤波器,高斯平滑滤波器对去除服从正态分布的噪声有很好的效果。图像轮廓曲线S在数字化处理(对初始图像进行轮廓提
取和跟踪)后可被表述为平面上一列坐标为整数的有序点集合: S = { p i : ( x i , y i ) , i = 1 , 2 , ⋯ , n } ,对于一般的简单闭曲线(首位相连的曲线),其参数方程记作 r ( s ) = ( x ( s ) , y ( s ) ) ,其中s为弧长参数, s ∈ [ 0 , L ] 。L为曲线的长度。则离散曲线用到的Gauss函数为:
g ( s , σ ) = 1 σ 2 π e − s 2 2 σ 2 ,
其中 σ 代表高斯分布的均方差。
曲线S经过Gauss核函数演化后为 S σ = ( x ( s , σ ) , y ( s , σ ) ) ,其中
g w = g ( w , σ ) = 1 σ 2 π e − w 2 2 σ 2 , w ∈ [ − L , L ] , w ∈ Z
其中L的最大值可以取到曲线上点数目的一半,Z是整数。如果L足够大,那么 ,高斯函数中的尺度因子 σ 是决定光滑效果的重要因素。对曲线进行光滑时,光滑函数 g ( s , σ ) 采用的尺度不一样,得到的光顺效果就不一样。因此,可以设定一个阈值 δ ,令 g ( w , σ ) ≤ δ ,对于不同的光顺要求给定不同的阈值。
本文将变形分为初始变形和配准变形两部分:初始变形利用基于ICP算法的刚体变换和纵向缩放实现两个相似个体的初始对齐;配准变形通过收缩包围算法实现两个平面曲线的演化,从而完成多线外形的变形,并建立映射函数,最后把基于多线外形的特征曲线网通过映射函数投影,得到新个体上的特征曲线网。
最近点迭代(ICP)算法 [
首先引入了刚体变换,对于点集A中一个数据点 X = [ x , y , z ] ,写成齐次坐标的形式 X = [ x , y , z , 1 ] T ,通过刚体变换矩阵H,可以变换成点集B中一点 X ′ = [ x ′ , y ′ , z ′ , 1 ] T ,变化关系式为
X ′ = H X , H = [ R T 0 1 ]
其中H可以写成4*4的矩阵, | H | = 1 ,R为旋转矩阵,T为平移向量。
对于数据集 P = { P 1 , P 2 , ⋯ , P N } , Q = { Q 1 , Q 2 , ⋯ , Q N } ,若数据集P经过变换矩阵H与数据集Q的误差表示为 f ( H ) ,我们以 f ( H ) 为目标函数,来求解非线性最优化问题 min ( f ( H ) ) 。根据误差度量选取点到点距离平方和作为目标函数:
f ( H ) = f ( R , T ) = ∑ i = 1 N ‖ Q i − R P i − T ‖ 2 2
那么,点云配准的目标误差函数可表示为:
min ( f ( H ) ) = min ( f ( R , T ) ) = min ( ∑ i = 1 N ‖ Q i − R P i − T ‖ 2 ) (1)
运用四元数法求解刚体变换矩阵R,T。
然后,采用ICP算法进行点云配准,假设源点集和目标点集分别为S和G,令 P 0 = S , R 0 = I , T 0 = 0 , T 0 = 0 。本文利用ICP的迭代算法分五步实现两个多线外形的对齐。Step 1:分别计算源点集和目标点集的质心 S c , G c , T = G c − S c ;Step 2:计算出最近点,对于 P k 中的每个数据点,计算在目标点集G中的最近点 Q k ,此处选取距离最近点;Step 3:通过式(1)最小化目标函数,估计配准参数 H k = [ R k T k 0 1 ] ,并计算误差 d k ;Step 4:对源集更新,使用估计得到的变换矩阵 H k 对源点集 P k 进行更新, P k + 1 = H k ( P 0 ) = R k P 0 + T k ;Step 5:重复迭代,直到两次计算的误差变化小于阈值,即 | d k + 1 − d k | < τ ,停止迭代。
ICP算法能够保证得到的解局部最小,通过本节算法验证实例,得到了较好的初始配准结果,图4.6演示了通过ICP迭代进行初始变形的过程,其中图1(a)为三维变换后的两个多线外形,蓝色表示目标个体,红色表示经过ICP变形后的个体,图1(b)~(f)分别为迭代1,2,4,8,10次后的两个多线外形,可以看出,随着迭代次数的增大,两个多线外形越来越接近,表1给出了迭代过程中两个多线外形的平均误差。经过多次试验,本文将迭代终止条件设定为两个多线外形的平均距离小于5 mm,如表1所给个体需要迭代10次满足迭代终止条件。
图1. 经过初始变形后的两个股骨多线外形。(a) 迭代前;(b) 迭代1次;(c) 迭代2次;(d) 迭代4次;(e) 迭代8次;(f) 迭代10次
迭代次数 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
平均误差(mm) | 22.7011 | 16.8339 | 13.2454 | 10.6096 | 8.6193 |
迭代次数 | 6 | 7 | 8 | 9 | 10 |
平均误差(mm) | 7.1460 | 6.1264 | 5.4368 | 5.0154 | 4.7602 |
表1. ICP迭代过程中的平均误差
通过2.1节的初始变形后,建立两个截面线间的特征对应关系,对截面间距做平均化处理,通过插入和删除截面线,建立多线外形A和多线外形B间对应曲线的一一对应。本节通过收缩包围算法实现平面曲线的演化。收缩包围算法的主要思路就是每次细分后将吸引力和松弛力共同作用于网格顶点,其中吸引力将顶点拉向初始网格上的顶点最近点;松弛力保证顶点移动时局部变形能量最小,在平面曲线的演化过程中,利用此算法的思想,提出了基于曲线参数化的变形算法。
对于两条截面线,记做 Γ k − 1 和 Γ k ∞ ,其中 Γ k − 1 为原曲线, Γ k ∞ 为目标曲线,为使原曲线变形成目标曲线,我们把 Γ k − 1 看做 Γ k 0 ,截面线 Γ k 0 向 Γ k ∞ 演化,演化的过程中不断产生过程曲线 Γ ′ k r ( r > 1 ,第r次演化),如果 Γ ′ k r 存在断裂,也就是 Γ ′ k r 上两个点的索引号是相邻的,这两个点在相关联的图像中像素不是相邻的,这个时候就需要使用线段离散化成像素点来修补轮廓线,修补后的轮廓线为 Γ k r , Γ k r 作为下一个演化的轮廓线接着向 Γ k ∞ 演化,最终演化得到目标曲线。曲线演化的过程可分为五步进行:
Step 1:对于 Γ k r 上任一点 P i , k r ,首先在 Γ k ∞ 上寻找最近点 P j , k ∞ ,设定距离阈值 d δ ,通过判断 | P i , k r P j , k ∞ | ≤ d δ 来决定Step 2还是Step 3,若满足 | P i , k r P j , k ∞ | ≤ d δ 转Step 2,否则转Step 3;
Step 2:通过计算 P i , k r P j , k ∞ 在各自曲线上的法向 n i , k r , n j , k ∞ ,若 ( n i , k r , n j , k ∞ ) ≥ 0 ,说明该点是有效点,将该点传给 Γ ′ k r ;
Step 3:L是连接 Γ k r 上的所有点 P i , k r 构成的多边形, P k ∞ 也是连接曲线 Γ k ∞ 上所有点构成的闭合的多边形。通过法向进行线段投影,将L上的点 P i , k r − 1 投影到 P k ∞ ,如果同时有好几个交点,选择到点 P i , k r 距离最短的交点,设交点在所在曲线上的法向为 n ,同时这个交点要满足 ( n , n i , k r − 1 ) > 0 由于像素点都是整数点,求出的交点可能不是整数,要把交点整数化,这样就能获得了 Γ k ∞ 上的点 P j , k ∞ 。如果此点 P j , k ∞ 满足Step 1中的条件,那么说明 P j , k ∞ 是有效的,同时把这点传递到 Γ k r ,以便进行下一次的曲线投影;
Step 4:在演化过程中,检查
Step 5:计算两曲线距离 N move (演化后的曲线与目标曲线的距离,通过两条曲线上点的距离和计算)
如果 N move = 0 ,停止迭代,否则 Γ ′ k r = Γ ′ k r + 1 ,转1。
上述算法的步骤Step1~Step3是曲线的变形部分,相当于收缩包围算法中的吸引力,Step4是曲线的离散部分,是用线段离散化成像素的方法来修补断裂的部分,相当于松弛力,在这两个力的作用下,使原曲线不断向目标曲线演化。
图2给出了本节曲线演化的示例,其中距离阈值
图2. 曲线演化。(a) 曲线演化示例1;(b) 曲线演化示例2
为了实现多线外形的变形,由于多线外形是由截面线数据组成,而所有截面都在平行于xoy坐标面的平面上,经过初始对齐的两个个体,都是由一组平行于xoy坐标面的平面组成,因此,只需采用分层映射的思想,对两个个体的Z坐标建立映射,则可以建立两个截面间的映射,对这两条截面线进行曲线演化,就可以实现截面线的变形。
在对两个个体的Z坐标建立映射时,有两个需要注意的问题,1) 两个多线外形的截面线条数可能有多有少,2) 两个多线外形的截面间距可能不同。对于两个多线外形A,B,设它们的截面线条数分别为 N 1 , N 2 ,由于CT切片提取截面线时并不一定逐片提取,因此截面间距不一定是一个固定值,但是为了完成多线外形间的映射,我们需要把每个多线外形的截面间距固定,同时确保截面线条数相同是必要前提。解决上述两个问题主要分四步进行:
Step 1:对于两个多线外形,设截面线条数分别为 N 1 , N 2 ,若
Step 2:将 N 2 精简到与 N 1 相同,从第一条到 条,隔行删除 ( N 2 − N 1 ) 条截面线,直到
Step 3:将 N 2 插值得到与 N 1 相同,从第一条到 N 2 条,隔行插入 ( N 2 − N 1 ) 条截面线,直到 N 1 = N 2 。插值的方法采用 λ ∈ [ 0 , 1 ] ,其中 Q i − 1 表示前一层截面线上的点集, Q i − 1 表示后一层截面线上的点集, ( 1 − λ ) Q i − 1 + λ Q i 表示插值后得到的截面线上的点集.
Step 4:设两个多线外形统一截面线条数后共有 N = N 1 条,平均截面间隔为dis,设多线外形的高度(z轴方向长度)为 D = | z N − z 1 | ( z N 表示截面线上最大z坐标,
由于特征曲线网是由位于多线外形上的特征点组成,通过曲线演化后的前后两条曲线根据参数具有一一对应关系,因此通过多线外形的变形和特征曲线网的索引号我们得到了映射后的特征点集,同样具有特征点所在层号,特征点所在层的点序号,特征点所述的特征线号等几何信息。将映射后的特征点集按照特征线的顺序连接起来,得到如图3的映射后的特征曲线网,其中红线部分表示映射后特征线连接成的特征曲线网。
图3. 股骨的特征曲线网。(a) 股骨个体1的特征曲线网;(b) 股骨个体2的特征曲线网
通过映射后得到的特征曲线网会出现三种不满足二维流形网规则的情况:1) 多余点2) 缺失点3) 不是特征点。多余点表现为误差明显偏大点或孤立点,这种点严重影响了曲线网的拓扑结构,因此需要把这种点从特征点集中剔除。缺失点表现为在特征线建立时,在曲率较大处缺乏描述弯曲的点,前两种点严重影响了曲线的光顺性,表现为坏点。不是特征点表现为即使特征线具有明显的光顺性,但是特征线上的点并没有在曲率极值处,该问题转化为如何把大曲率特征回归到原来位置。
图4描述了不满足二维流形规则的上述三种情况,在图4(a),类型1的点指多余点,这些多余点造成了曲线的错误连接,在图4(b)中,类型2指缺失点,可以看出该处两条曲线缺少结点连接,类型3指在股骨小转子处,虽然有条光顺的特征线,但是这条特征线没有较好的描述到小转子的特征。如图4所示。
针对映射后特征曲线网出现的上述三种情况,可以通过设计算法和交互式变换,完成特征曲线网的修正,使修正后的特征曲线网具有良好的拓扑结构和较好的光顺性。对于多余点和缺失点本文通过修改法和优化法 [
图5绘制了髋关节的多线外形及特征曲线网,在医学图形图像处理软件DateSet上对髋关节进行三维重建,图6给出了三维重建的髋关节股骨和髋骨及其上的特征曲线网。
本文以髋关节为应用对象,研究多线外形的特征曲线网复制方法。本文绕开复杂的特征曲线网
图4. 映射后需要修正的特征曲线网。(a) 类型1表示多余点;(b) 类型2表示缺失点;类型3表示不是特征点
图5. 修正后的特征曲线网。(a) 股骨个体1的修正;(b) 股骨个体2的修正;(c) 髋骨个体1的修正;(d) 髋骨个体2的修正
图6. 髋关节三维重建. (a) 股骨三维重建;(b) 髋骨三维重建
构造,而选用特征复制的方法,将已有的特征曲线网复制到具有相似外形的个体上,对多线外形进行高斯光顺,采用基于收缩包围算法的平面曲线演化,进行配准变形,实现了多线外形之间的映射,获得了映射后的特征曲线网,通过坏点修正和曲率点修正得到满足二维流形的二维曲线网。解决了医学图像领域的三维重建问题。
国家自然科学基金(51175248/E050603);南京航空航天大学基本科研业务费资助(NZ2013201)。
董倩倩,唐月红,何姗姗. 相似多线外形之间特征曲线网的复制The Copy of Feature Curve Network among Similar Multiline Shapes[J]. 计算机科学与应用, 2018, 08(11): 1782-1790. https://doi.org/10.12677/CSA.2018.811197