发明名称 基于初始轮廓预测模型的并行图像分割方法
摘要 本发明公开了一种基于初始轮廓预测模型的并行图像分割方法,它采用多级结点计算机系统,将总机节点接收需要处理的三维断层序列医学CT图像,将这些序列图像分成组派送到二级节点;每个二级节点接受分组图像后,利用初始轮廓预测模型预测图像的初始轮廓曲线,再分配给三级节点;三级节点的主处理机接收需要处理的图像,将的分割问题分为不同的子任务通过MPICH发送到各个三级节点的从处理机上,从处理机将子任务计算完成之后,再将各个处理结果发送给主处理机进行合成,也即三级节点的主、从处理机系统完成单幅图像的分割。本发明同时解决了活动轮廓模型的轮廓曲线初始化问题和提高图像分割算法计算速度问题。
申请公布号 CN103886604A 申请公布日期 2014.06.25
申请号 CN201410126329.2 申请日期 2014.03.31
申请人 山东科技大学 发明人 彭延军;王元红;张帅;山君良;贾瑞生
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 济南金迪知识产权代理有限公司 37219 代理人 段毅凡
主权项 1.一种基于初始轮廓预测模型的并行图像分割方法,其特征在于,它是在基于初始轮廓预测模型的基础上,由计算机集群系统利用并行算法实现的,其中:所述的计算机集群系统是由总机节点、二级节点和三级节点构成的多级结点计算机系统;每个二级节点包含一台处理机,每个三级节点又包含一台主处理机、多台从处理机,各个处理机之间通过消息传递机制通讯;所述的基于平滑项的测地活动轮廓模型,是在现有测地活动轮廓模型的基础上添加了一个图像平滑项,模型建立过程如下:<maths num="0001"><![CDATA[<math><mrow><mfrac><mrow><mo>&PartialD;</mo><mi>&phi;</mi></mrow><mrow><mo>&PartialD;</mo><mi>t</mi></mrow></mfrac><mo>=</mo><mi>g</mi><mrow><mo>(</mo><mo>&dtri;</mo><mi>I</mi><mo>)</mo></mrow><mo>|</mo><mo>&dtri;</mo><mi>&phi;</mi><mo>|</mo><mrow><mo>(</mo><mi>v</mi><mo>+</mo><mi>&epsiv;k</mi><mo>)</mo></mrow><mo>-</mo><mo>&dtri;</mo><mi>g</mi><mo>&CenterDot;</mo><mo>&dtri;</mo><mi>&phi;</mi><mo>+</mo><mi>&lambda;</mi><mfrac><mrow><mi>&phi;</mi><mo>-</mo><mi>I</mi></mrow><mrow><mo>|</mo><mi>&phi;</mi><mo>-</mo><mi>I</mi><mo>|</mo></mrow></mfrac><mo>+</mo><msup><mo>&dtri;</mo><mn>2</mn></msup><mi>&phi;</mi><mo>-</mo><mi>div</mi><mrow><mo>(</mo><mfrac><mrow><mo>&dtri;</mo><mi>&phi;</mi></mrow><mrow><mo>|</mo><mo>&dtri;</mo><mi>&phi;</mi><mo>|</mo></mrow></mfrac><mo>)</mo></mrow></mrow></math>]]></maths>    式(1)式(1)中,φ表示为水平集函数,t表示时间,g函数定义为二维高斯滤波器,v、ε和λ为调节常量值;对于式(1)中的第一项和第二项采用迎风差分方案来计算,后三项则采用简单的中心差分来计算,计算后得到完整数值方案如下:<maths num="0002"><![CDATA[<math><mfenced open='' close=''><mtable><mtr><mtd><msubsup><mi>&phi;</mi><mi>ij</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>&phi;</mi><mi>ij</mi><mi>n</mi></msubsup><mo>+</mo><mi>&Delta;t</mi><mo>{</mo><mi>v</mi><mo>[</mo><mi>max</mi><mrow><mo>(</mo><msub><mi>g</mi><mi>ij</mi></msub><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msup><mo>&dtri;</mo><mo>+</mo></msup><mi>min</mi><mrow><mo>(</mo><msub><mi>g</mi><mi>ij</mi></msub><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msup><mo>&dtri;</mo><mo>-</mo></msup><mo>]</mo><mo>+</mo><msubsup><mi>&epsiv;k</mi><mi>ij</mi><mi>n</mi></msubsup><msup><mrow><mo>[</mo><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup></mtd></mtr><mtr><mtd><mo>-</mo><mo>[</mo><mi>max</mi><mrow><mo>(</mo><msubsup><mi>g</mi><mi>ij</mi><mi>x</mi></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>x</mi></mrow></msubsup><mo>+</mo><mi>min</mi><mrow><mo>(</mo><msubsup><mi>g</mi><mi>ij</mi><mi>x</mi></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>x</mi></mrow></msubsup><mo>+</mo><mi>max</mi><mrow><mo>(</mo><msubsup><mi>g</mi><mi>ij</mi><mi>y</mi></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>y</mi></mrow></msubsup><mo>+</mo><mi>min</mi><mrow><mo>(</mo><msubsup><mi>g</mi><mi>ij</mi><mi>y</mi></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>y</mi></mrow></msubsup><mo>]</mo></mtd></mtr><mtr><mtd><mo>+</mo><mi>&lambda;</mi><mrow><mo>(</mo><msubsup><mi>&phi;</mi><mi>ij</mi><mi>n</mi></msubsup><mo>-</mo><msub><mi>I</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>/</mo><mo>|</mo><msubsup><mi>&phi;</mi><mi>ij</mi><mi>n</mi></msubsup><mo>-</mo><msub><mi>I</mi><mi>ij</mi></msub><mo>|</mo><mo>+</mo><msup><mrow><mo>[</mo><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><mo>)</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo><mo>-</mo><msubsup><mi>k</mi><mi>ij</mi><mi>n</mi></msubsup></mtd></mtr></mtable></mfenced></math>]]></maths>    式(2)式(2)中<img file="FDA0000485128650000018.GIF" wi="1228" he="84" />g<sub>ij</sub>、<img file="FDA0000485128650000014.GIF" wi="61" he="77" />和<img file="FDA0000485128650000015.GIF" wi="60" he="77" />分别由下列式子计算:<maths num="0003"><![CDATA[<math><mrow><msup><mo>&dtri;</mo><mo>+</mo></msup><mo>=</mo><msup><mrow><mo>[</mo><mi>max</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>x</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>min</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>x</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>max</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>y</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>min</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>y</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup></mrow></math>]]></maths>    式(3)<maths num="0004"><![CDATA[<math><mrow><msup><mo>&dtri;</mo><mo>-</mo></msup><mo>=</mo><msup><mrow><mo>[</mo><mi>max</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>x</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>min</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>x</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>max</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>+</mo><mi>y</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mi>min</mi><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mo>-</mo><mi>y</mi></mrow></msubsup><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup></mrow></math>]]></maths>    式(4)<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>k</mi><mi>ij</mi><mi>n</mi></msubsup><mo>=</mo><mfrac><mrow><msub><mi>&phi;</mi><mi>xx</mi></msub><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mn>2</mn><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><msub><mi>&phi;</mi><mi>xy</mi></msub><mo>+</mo><msub><mi>&phi;</mi><mi>yy</mi></msub><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup></mrow><msup><mrow><mo>(</mo><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><mo>)</mo></mrow><mtext>2</mtext></msup><mo>)</mo></mrow><mrow><mn>3</mn><mo>/</mo><mn>2</mn></mrow></msup></mfrac></mrow></math>]]></maths>    式(5)<maths num="0006"><![CDATA[<math><mrow><msub><mi>&phi;</mi><mi>xx</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>-</mo><mn>2</mn><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup></mrow><msup><mrow><mo>(</mo><mi>&Delta;x</mi><mo>)</mo></mrow><mn>2</mn></msup></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>&phi;</mi><mi>xx</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><mn>2</mn><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup></mrow><msup><mrow><mo>(</mo><mi>&Delta;y</mi><mo>)</mo></mrow><mn>2</mn></msup></mfrac></mrow></math>]]></maths>    式(6)<maths num="0008"><![CDATA[<math><mrow><msub><mi>&phi;</mi><mi>xy</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>+</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup></mrow><mrow><mn>4</mn><mi>&Delta;x&Delta;y</mi></mrow></mfrac></mrow></math>]]></maths>    式(7)<maths num="0009"><![CDATA[<math><mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>x</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup></mrow><mrow><mn>2</mn><mi>&Delta;x</mi></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><msubsup><mi>D</mi><mi>ij</mi><mrow><mn>0</mn><mi>y</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup></mrow><mrow><mn>2</mn><mi>&Delta;y</mi></mrow></mfrac></mrow></math>]]></maths>    式(8)<maths num="0011"><![CDATA[<math><mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>+</mo><mi>x</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup></mrow><mi>&Delta;x</mi></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0012"><![CDATA[<math><mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>-</mo><mi>x</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup></mrow><mi>&Delta;x</mi></mfrac></mrow></math>]]></maths>    式(9)<maths num="0013"><![CDATA[<math><mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>+</mo><mi>y</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup></mrow><mi>&Delta;y</mi></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0014"><![CDATA[<math><mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>-</mo><mi>y</mi></mrow></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>n</mi></msubsup><mo>-</mo><msubsup><mi>&phi;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup></mrow><mi>&Delta;y</mi></mfrac></mrow></math>]]></maths>    式(10)<maths num="0015"><![CDATA[<math><mrow><msub><mi>g</mi><mi>ij</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mrow><mo>|</mo><mo>&dtri;</mo><msub><mi>G</mi><mi>&sigma;</mi></msub><mo>*</mo><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>|</mo></mrow><mn>2</mn></msup></mrow></mfrac></mrow></math>]]></maths>    式(11)<maths num="0016"><![CDATA[<math><mrow><msubsup><mi>g</mi><mi>ij</mi><mi>x</mi></msubsup><mo>=</mo><mfrac><mrow><mo>&PartialD;</mo><mi>g</mi><mrow><mo>(</mo><mo>&dtri;</mo><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mrow><mo>&PartialD;</mo><mi>x</mi></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0017"><![CDATA[<math><mrow><msubsup><mi>g</mi><mi>ij</mi><mi>y</mi></msubsup><mo>=</mo><mfrac><mrow><mo>&PartialD;</mo><mi>g</mi><mrow><mo>(</mo><mo>&dtri;</mo><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>)</mo></mrow></mrow><mrow><mo>&PartialD;</mo><mi>y</mi></mrow></mfrac></mrow></math>]]></maths>    式(12)式(12)即为水平集数值迭代公式,只需要给出初始轮廓曲线,便可以使得轮廓曲线不断演化到目标边界处;对于初始轮廓曲线的水平集函数φ<sub>0</sub>,定义为图像平面上点(x,y)到初始轮廓曲线C的带符号的距离:<maths num="0018"><![CDATA[<math><mrow><mi>&phi;</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>d</mi><mo>[</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mo>]</mo><mo>,</mo></mtd><mtd><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>outsideofthecurveC</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>onthecurveC</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>d</mi><mo>[</mo><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mo>]</mo><mo>,</mo></mtd><mtd><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>insideofthecurveC</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>    式(13)式(13)中d[(x,y),C]为点(x,y)到曲线C的距离;利用上述计算机群集系统对图像并行分割的方法具体描述如下:第一步:总机节点接收需要处理的三维断层序列医学CT图像后,将这些序列图像分成若干组,分别派送到二级节点,图像分组方法如下:设三维医学序列断层图像的个数为N,计算机集群系统的节点的数量为M,假设二级节点的数量即划分的序列图像的组的数量为x,三级节点的数量为y,每个三级节点中并行处理机的数量为k,定义为k=5;则用以下线性规划方程组描述此问题:<maths num="0019"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><mi>N</mi><mo>></mo><mi>M</mi></mtd></mtr><mtr><mtd><mi>N</mi><mo>/</mo><mi>x</mi><mo>&GreaterEqual;</mo><mn>3</mn></mtd></mtr><mtr><mtd><mn>2</mn><mi>x</mi><mo>&le;</mo><mi>y</mi><mo>&le;</mo><mn>3</mn><mi>x</mi></mtd></mtr><mtr><mtd><mi>x</mi><mo>+</mo><mi>ky</mi><mo>&le;</mo><mi>M</mi></mtd></mtr><mtr><mtd><mi>min</mi><mrow><mo>(</mo><mi>y</mi><mo>-</mo><mn>2</mn><mi>x</mi><mo>,</mo><mn>3</mn><mi>x</mi><mo>-</mo><mi>y</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></math>]]></maths>    式(14)公式(14)为序列图像分组时应同时满足的条件,具体解释如下:(1)为了达到原本串行分割的效果和速度,并同时保证并行算法的并行性,规定一个二级节点之下最多只能有3个三级节点,最少不能少于2个三级节点。(2)二级节点所接收到的序列图像的图像数量不能小于3张,即N/x≥3;(3)每个二级节点下的三级节点的数量应最大可能的保证相同;(4)序列图像的数值需要大于集群系统的节点的数量,即N&gt;M,否则,减少集群节点的数量;(5)二级节点和三级节点中所有PC机的总数应小于集群节点的数量,即x+ky≤M;(6)min(y-2x,3x-y)表示为了满足方程组取这两个中的最小值;通过求解线性规划方程组,得到二级节点x值和三级节点y值,总机节点首先将序列图像划分为x组,分别发送给每个二级节点;第二步:每个二级节点接受各自的分组图像后,利用初始轮廓预测模型预测图像的初始轮廓曲线,并将带有初始轮廓曲线的图像分配给三级节点;初始轮廓曲线预测方法如下:将相邻两幅断层图像轮廓线上点的位移分解为轮廓线平移位移与法方向上的位移,也就是说将点的位移转化为轮廓线质心的位移与各个点法方向上的位移;分别计算已有轮廓线的质心,记为集合C={c<sub>1</sub>,c<sub>2</sub>,…c<sub>k-1</sub>,c<sub>k</sub>},其中c<sub>i</sub>={x<sub>i</sub>,y<sub>i</sub>},i=1,2,3,…,k;已知前几幅轮廓线的质心,采用曲线拟合的方法来预测下一幅轮廓线的质心c<sub>k+1</sub>;对于质心c<sub>k+1</sub>的横坐标与纵坐标,分别建立拟合多项式如下:x(i)=a<sub>0</sub>+a<sub>1</sub>i+…+a<sub>m</sub>i<sup>m</sup>    式(15)y(i)=b<sub>0</sub>+b<sub>1</sub>i+…+b<sub>m</sub>i<sup>m</sup>    式(16)式中m为拟合多项式的次数,采用何种曲线拟合需要根据实际情况来定,可以采用一次线性拟合、二次曲线拟合或者三次曲线拟合;在使用曲线拟合的方法预测出质心c<sub>k+1</sub>之后,便可以求出相邻轮廓线上的相关点,接着对各个相关点之间法方向上的位移做曲线拟合,预测轮廓线上的点,最后再将预测出的这些点连接起来,组成预测轮廓曲线;第三步:三级节点对单幅图像进行分割,并将分割子结果返给二级节点;分割方法是:首先三级结点主处理机要对图像进行任务划分,要求子任务区域为近似正方形,子任务区域的大小要满足以下条件:m·n·p=L·W    式(17)式(17)中,m×n为划分的子任务区域的尺寸大小,p为从处理机的数量,并且<img file="FDA0000485128650000051.GIF" wi="206" he="99" />L×W为分割图像的尺寸大小;当式(17)是有多组解时,取m和n为正整数的那组解,为了保证子任务区域为近似正方形,取满足所有可能的解中|m-n|的绝对值最小的那组解;三级节点的主处理机计算出分割图像的尺寸大小后,将子任务发送给三级节点的从处理机,从处理机利用上述的基于平滑项的测地活动轮廓模型对图像进行分割;第四步:二级节点检测所有分组图像是否已经分割完成。如果没有完成,则继续根据已有分割结果预测剩余图像的初始轮廓线,对三级结点进行任务分配。如果已经完成,则将所有分组图像的分割结果返回给总机结点,总机节点将各分割子结果汇总起来进行合成,得到整个三维图像的分割结果。
地址 266590 山东省青岛市经济技术开发区前湾港路579号山东科技大学