Medical image registration(section5)

2024-06-01 01:32

本文主要是介绍Medical image registration(section5),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5. 使用几何特征的刚体配准算法

5.2. 表面匹配
        边界或物体表面,在医疗影像中往往是更明显的地标,大量的分割算法都可以成功找到这样的高对比度表面。在大多数成像方式中,人体和空气之间的边界是有着高对比度的,从中找到皮肤表面易如反掌。这完全不同于核医学发射断层扫描和一些回波平面磁共振影像的示踪剂。如果可以从两个影像中自动分割出能够组合的等效表面,那么我们就可以通过拟合这些表面来实现刚体配准(Rigid Body Registration)。下面所谈到的表面匹配算法通常只用于刚体配准。
5.2.1. head-and-hat算法
        Pelizzari和他的同事们(Pelizzari等人1989年,Levin等人1988年)提出了一种用于头部影像联运配准的曲面拟合技术, 这个技术因“head-and-hat”算法而广为人知。在影像中标识两个等效surface,其中一个surface来自于高分辨率模式,表示为一大堆圆盘,称为“head”,另一个surface表示为无关的 3D 点的列表。配准转换取决于hat surface相对于head surface的迭代转换,直至找到位于head上离它最近的hat。用于判断接近程度的度量是hat上的一点和head上沿head重心方向离这个点最近的一个点之间距离的平方。还有一种迭代优化技术叫Powell方法(Press等人1992年)。Powell优化算法执行一系列的一维优化,依次沿着六个自由度寻找最好的解决方案,然后返回到第一自由度。当找不到比当前最佳方案花销更低(由一个公差因子定义)的方案时就停止寻找。这个算法已经应用于脑部影响配准中并且相当成功(Levin等人1988年),同样也应用于心脏影像数据配准(Faber等人1991年)。最常用的surface是勾画自MR影像和PET透射影像的skin surface或是勾画自MR影像和PET放射影像的brain surface。对于卷曲复杂的surface,拟合优度(Goodness Of Fit)的度量很容易导致错误:由于head上最近的点并不总是在head的重心方向上(在卷曲的surface上更是如此),“head-and-hat”算法里的距离度量并不能总是测量出hat上的点与距离其最近的head上的点之间的距离。
5.2.2. 距离变换
        一个对“head-and-hat”算法做的修改就是通过距离变换来对头部影像进行预处理。距离变换应用于一个目标体的像素(或体素)为1其他体素都为0的二进制影像。他标注了影像中所有体素到surface的距离。通过这种方式预先标注所有的体素,使得每次遍历的花销大幅减少(潜在的单个地址的操作和每个变换的hat surface点的累积)。一个距离变换的广泛使用是在Borgefors于1984年提出的倒角过滤器(Chamfer filter)。这个方法被用于刚体医疗影像配准(如Jiang等人1992年,van den Elsen 1992年,van Herk和Kooy 1994年)。最近,精确的欧氏距离变换已经被用来替代倒角变换(Chamfer transform)(Huang和Mitchell 1994年)。鉴于对六自由度刚体变换的估算,hat points被转换,它们与head surface之间的距离从”距离变换”中相关体素的值计算出来。将这些值平方,求和,计算出当前变换关联开销。寻找局部最小值依然有风险,所以金字塔形的多尺度表示和离群排斥反应(Outlier rejection)是有必要的。
5.2.3. 迭代最近点(Interactive closest point)
        迭代最近点算法(ICP)是由Besl和McKay与1992年为3D形状配准而提出来的。它并不是为医疗影像而设计的,但最终却在医疗影像应用方面取得了巨大成功,应该是当前医疗影像应用中使用最为广泛的surface匹配算法(如Cuchet等人1995年,Declerck等人1997年,Maurer等人1998年)。原始的文章是依据指定的模型收集的数据的配准来写的。所收集的数据P可能来自于任何产生三维surface信息的传感器,包括激光扫描仪,立体视频等等。该模型数据X可能来自于一个计算机辅助设计模型。在医疗影像应用中,这两个surface数据集可能勾画自放射影像,或者这个模型来自于放射影像而数据来自于手术中生成的立体视频。该算法可以运用在surface数据的七种不同的格式上:点集、线段集(折线)、隐式曲线、参数曲线、三角集、隐式曲面和参数曲面。对于医疗影像配准相关性最强的应该是点集和三角集,医疗影像中有关这两种格式的勾画算法应用最为广泛。
        该算法有两个阶段、循环。第一阶段涉及确定模型中相对于每个数据点最近的点,第二阶段涉及寻找这些点集刚体转换的最小平方。然后在重新设定最近点集,并继续指导找到两个surface之间的局部最小匹配(由某些容差阈值来确定)。

        无论数据P的原始格式是什么,首先都要被转换为一组点{pi}。模型数据保留原始数据格式。第一阶段涉及到的就是确定每个点P上每个点pi,在模型X上找到与其距离最近的点。这个位于X上的点x与pi之间的距离d是最小的。

       

        这些最近的点组成的一组点就是{qi}。三角化surface是医疗影像数据中最有可能的模型,模型X就是由一组三角形{ti}组成。通过面的线性插值来找到模型中距离每个数据点最近的点。如果三角形ti有三个定点r1,r2和r3,那么点pi与三角形ti之间的距离就是

      

        距离pi最近的模型上的点qi = (ur1,vr2,wr3)。
        运用5.1中所描述的方法(实际上迭代最近点算法的作者使用的是等效的四元数法)可以对{pi}和{qi}进行最小二乘(Least squares)配准。通过计算出来的刚体转换{pi}就被转换成了{pi'},最近点再一次被确定。当两次迭代之间的均方差(Mean square error)变化低于指定阈值时,算法终止。
        通过跟踪每次迭代生成的结果,可以加速优化。如果有较为一致性的结果(在一定公差范围内),那么抛物线和直线都都在结果之中,为保证万无一失(Be on the safe side),配准估算将通过基于一个略有ad hoc的方法或者其他的估算方法进行更新。
        由于这个算法迭代计算起始点的局部最小最接近的点,它有可能找不到正确的匹配。Besl和Mckay提出一个解决方案,就是多次运行这个算法,每次选择一个不同的估算的旋转队列,最后选取最小结果中的最小值。
5.3. 波峰线配准
        除了使用表面匹配来做配准,我们还可以用表面上的区别性特征(Distinctive feature)来做配准。用这个方法的前提是表面必须是光滑的,that is possible to differentiate up to third order。利用微分几何(Differential geometry)工具,我们可以对表面上的每个点都定义两个主曲率(Principalcurvature)k1和k2(k1的强度大于k2)和相关的主方向。波峰线是surface的轨迹,k1是它主方向上的局部最大值(Monga和Benayoun 1995年)。在医疗影像中强度阈值可以确定等值面,利用这些等值面可以勾画自己感兴趣的结构(如CT扫描中的骨骼),这些波峰线可以直接由影像体素的数组生成。对于其他一些应用如MRI相关的配准,intensity shading使得等值面没有任何意义,而surface segmentation则是必须的了。在任何情况下,为降低对噪声的敏感度,对数据做差异化的光滑处理都是很有必要的。
        我们可以通过校准影像中确定的波峰线来做影像配准。尤其是当影像都很相似时,波峰线都高度一致(Gueziec和Ayache 1994年,Pennec和Thirion 1997年)。有两种可选择的办法,其一是通过Hough transform将每个曲线的几何不变性(Geometrical invariant)哈希表整合到一起(Gueziec等人1997年),另一个就是使用迭代最近点算法的变形(Gueziec和Ayache 1994年,Pennec和Thirion 1997年)。这个技术已经被应用在CT头骨影像和T1-weighted MR image volumes的配准中。

这篇关于Medical image registration(section5)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019611

相关文章

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

IMAGE LIST

   CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用。      要使用CImgeList首先要使用它的create函数:      一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn.       BOOL

【vscode】vscode paste image插件设置

本文首发于 ❄️慕雪的寒舍 vscode编辑md文件的时候,如果想插入图片,自带的粘贴只会粘贴到当前目录下,也没有文件重命名,很不友好。 在扩展商店里面有mushan的Paste Image插件,相比自带的,更加友好一点。但是它的配置把我弄糊涂了,简单测试了一下才明白处理的逻辑。 注意,本文编写的是对mushan的Paste Image插件的教程。 首先是安装这个插件,这个不多说

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)

pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二) pytorch时空数据处理4——图像转文本/字幕Image-Captionning(二)DatasetInputs to modelCaption LengthsData pipelineEncoderAttentionDecoder代码数据集初始化 create_input_files.py训练 tr

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi  docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、 源码、库文件、依赖、工具等一些

flutter Image

Flutter中,Image是一个用于显示图片的控件,可以显示网络图片、本地图片以及Asset中的图片。Image控件支持多种常见的图片格式,例如PNG、JPEG、GIF等。 const Image({super.key,required this.image,this.frameBuilder,this.loadingBuilder,this.errorBuilder,this.seman

C#Bitmap和Image之间的关系

Image 类 Image 是一个抽象基类,它定义了所有图像类型的共同属性和方法。它提供了图像处理的通用接口,比如获取图像的尺寸、像素格式、帧数等。Image 类本身不能被实例化,它只是提供了一个通用的框架,具体的图像类型(如位图、图标、元文件等)需要通过继承 Image 类来实现。Image 类提供了一些通用的方法,如 Save(保存图像到文件)、GetThumbnailImage(获取图像的

Image Transformation can make Neural Networks more robust against Adversarial Examples

Image Transformation can make Neural Networks more robust against Adversarial Examples 创新点 1.旋转解决误分类 总结 可以说简单粗暴有效

Fast Image Cache

https://github.com/path/FastImageCache   Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applica