读Multiscale Vessel Enhancement Filtering笔记

article/2025/8/26 13:07:20

1.Introduction

      通常对CTA和MRA的血管成像方法中,可视化3维血管结构的方法是MIP。但是MIP的缺点是会将非血管结构展现出来并且对于对比度比较低的小血管展现不太好。这也正是TOF-MRA的缺点。

      这篇论文的目的是为了增强血管结构,最终达到血管分割的目的。血管增强作为MIP和血管分割的预处理步骤,将会提升对于小血管的展示,并且减少器官的过度投影。

2.Method

      这篇论文的方法中,将血管增强设想成为一个过滤过程,搜索管状几何结构。由于血管尺寸不同,因此需要引入一个在一定范围内变化的尺度。

      在分析图像L信息时,通常是考虑图像中一个像素点x0附件的泰勒展开式。

上述公式表示了图像x0点处的二阶导数结构 。\triangledown o,sHo,s是s尺度下在图像中x0处计算得到的梯度向量和Hessian矩阵。

1.Hessian矩阵的由来和定义

由高等数学知识可知,若一元函数f(x)x=x^{(0)}点的某个领域内具有任意阶导数,则f(x)z在x^{^{(0)}}点处的泰勒展开式为:

f(x)=f(x^{(0)})+f^{'}(x^{(0)})\Delta x+1/2f^{''}(x^{(0)})(\Delta x)^{2}+....

其中,\Delta x=x-x^{(0)},\Delta x^{2}=(x-x^{(0)})^{2}

二元函数f(x1,x2)\left ( x_{1}^{(0)}, x_{2}^{(0)}\right )点处的泰勒展开式为:

其中,\Delta x_{1}=x_{_{1}}-x^{(0)}_{1},\Delta x_{2}=x_{2}-x_{2}^{^{(0)}},将上述泰勒展开式写成矩阵形式,则有:

 也就是:

 其中:

G\left ( X^{(0)} \right )f(x_{1},x_{2})\left ( x_{1} ^{(0)},x_{2}^{^{(0)}}\right )点处的Hessian矩阵 。可以将Hessian矩阵简写为:

为了以适当的方式计算图像L的这些微分算子,作者使用了线性尺度空间理论的概念。(尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓提取,并且以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取。尺度空间理论的特点是:将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中,更容易获取图像的本质特征。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程)在该理论下,对图像做偏导就等于对原图以特定的高斯核做卷积操作。这样对于图的Hessian运算将极大降低计算量如下:

D维的高斯被定义为:

2.基于尺度理论的Hessian简化算法

对于二维图像,Hessian矩阵描述每个像素点在主方向上的二维导数:

根据尺度空间理论,二阶导数可以通过图像和高斯函数的卷积获得,例如,在点(x,y)处有

 其中,G\left ( x,y;\sigma \right )为尺度为\sigma的高斯函数。

 参数\gamma定义了一组归一化导数。这种标准化对于在多个尺度上比较微分算子的响应特别重要。当没有首选的尺度时, \gamma应该设置为1。

分析二阶导数信息 (Hessian ) 在检测血管的情景中有一个直观的依据。尺度 s 下,高斯核的二阶导数可以作为一个探针核在导数方向上测量区域 (−s,s) 内部区域和外部区域之间的对比度,如图 1。

 

公式(1)的第三部分给出了二阶有向导数 ,如下:

Hessian矩阵特征值分析背后隐含的想法是在图像中可以分解出局部二阶导数结构的位置 提取主方向。由于该方法可以直接给出最小曲率的方向(沿血管方向),因此避免在多个方向上使用多个过滤器。

\lambda s,k是Hessian矩阵Ho,s中第k个归一化特征向量\mu s,k的特征值,所有的计算均是在尺度s下进行的。

通过分析公式4-6可以得到一个很好的几何解释。特征值分解提取了三个正交的方向,当这三个方向被Hessian矩阵映射时,在同一个尺度因子下是不变的。特别的,以x0为球心,半径为1的球形领域Nx0将被Hx0映射到一个椭球体,该椭球体各个轴的方向与Hessian矩阵的特征向量的方向一致,并且对应轴的半长与对应特征值的大小一致。这个椭球局部描述了图像的二阶结构,可以作为几何相似性度量设计的直观工具。

3.Hessian矩阵特征值的求解方法

根据定义求解二阶矩阵的特征值:对于矩阵A,它的特征值满足\left | \lambda E-A \right |=0,其中E是二阶对角阵。现在我们表示A为:\begin{bmatrix} a&b \\ c& d\end{bmatrix},那么\left | \lambda E-A \right |=\left ( \lambda -a \right )\left ( \lambda -d \right )-bc=\lambda ^{2}-\left ( a+d \right )\lambda +ad-bc=0

这个是一元二次方程,可以计算得到有两个解,分别为:

\lambda 1=\left ( a+d+\sqrt{\left ( a-d \right )^{2}+4bc} \right )/2

\lambda 2=(a+d-\sqrt{(a-d)^{^{2}}+4bc})/2

前面已经介绍过,Hessian矩阵的定义:

并且根据图像的特性,可以得到

I_{xy}=I_{yx}

带入以上方程得到Hessian矩阵的特征值的解:

 

     4.Hessian矩阵特征值的图像性质

一个Hessian矩阵可以分解为两个特征值以及定义的特征向量。\lambda _{1}\lambda _{2}\left | \lambda _{1} \right |\geqslant \left | \lambda _{2} \right |),其中最大的绝对特征值\left | \lambda _{1} \right |表示最大的局部灰度变化。其特征向量代表它方向,可以认为是切线方向;而较小的那个代表垂直方向,也就是法线方向。

在本文的剩下部分,\lambda k表示第k个小的特征值( \left | \lambda 1 \right |\leq \left | \lambda 2 \right |\leq \left | \lambda 3 \right |)。在这个假设下,表1总结了为了检测不同的结构,Hessian矩阵各个特征值之间必须遵循的关系。特别的,当一个像素属于血管区域时,各个特征值符合以下关系:\lambda 1小,(理想情况下为0),而\lambda 2\lambda 3大且符号相等(此处符号表示亮/暗)对应的特征向量指出了奇异方向:\mu 1表示血管方向(强度变化最小的方向),\mu 2\mu 3构成了正交平面的基础。在MRA和CTA,血管以明亮的管状结构出现在暗色的环境中。该先验信息与图像模态相关,可以作为一致性检测,以此抛弃数据库中存在的极性与所寻找的极性不同的结构。因此,我们要寻找\lambda 1\lambda 2同时为负的结构。

      总的来说,在3D结构中,理想的管状结构如下:

      原文强调了这三个特征值在局部方向模式的识别中都起着重要的作用。作者提出的差异度量考虑了基于二阶椭球体的两个几何比率。第一个比率给出了血管与斑点状结构的偏差,但是无法区分直线和平板状的图案:

 对于斑点状结构,该比率将达到最大值,为0。当\lambda 1\approx0或者\lambda 2\lambda 3趋于无穷大时,该比率为0.

第二个比率涉及到二阶椭球体的最大面积界面,该比率给出了两个最大的二阶导数的长宽比。该比率对于区分板状结构和线状结构至关重要,因为只有在线状图案中,该比率为0,如下:

\lambda 2> \lambda 3时为板状结构,当\lambda 2< \lambda 3时为线状结构。

这两个几何比率是灰度不变的。这就保证了作者提出的度量只获取了图像的几何信息。但是,在MRA和CTA图像中还有额外的可用信息:血管结构比背景亮,占据整个体素中相对较小的体积。如果不合并这些信息,由于随机噪声波动,背景像素将产生不可预测的滤波器响应。然而,背景像素的一个显著特征是导数的大小很小。为了量化这一点,作者建议通过计算Hessian 范式来度量。作者使用Frobenius矩阵范式来计算Hessian矩阵的范式。因为当矩阵是实数且对称时,可以很容易根据特征值来计算。作者定义了以下二阶导数结构的度量规则:

其中D表示图像的维度。这个公式的度量在没有显示结构的背景区域中的值会小,并且缺乏对比度,导致特征值也是小的。与背景有高对比度的区域,其范式会更大。因此,至少其中一个特征值会很大。因此,作者提出以下的度量组合来定义血管函数: 

其中,\alpha \beta c是控制线性滤波对度量R_{A},R_{B},S的灵敏度的阈值。公式13隐含的思想是将公式10-12中的特征根据根据不同标准映射至血管的似然估计。作者使用乘法将各个不同的标准结合在一起。确保滤波器的响应只在3个标准均满足时2才能达到最大值。在作者的实验中,\alpha\beta的值为0.5。c的值取决于图像的灰度范围,在多数情况下,Hessian范式最大值的一般是有效的。但是后续研究将是自动化选择阈值。 

公式13中的血管度量是在不同尺度下(V_{0}\left ( s \right )中的s)分析得到的,当尺度与待探测的血管的尺寸达到最大化匹配是,线性滤波器的响应达到最大值。作者融合了不同尺度下滤波器的响应值所提供的血管度量,以此获取最终的血管估计值,如下:

 其中S_{min}S_{max}表示相关结构的检测尺度的最小值和最大值。可以通过选择检测尺度的范围来覆盖血管的宽度。

对于2D图像中的血管度量,可以依据3D图像的血管度量进行计算,如下:

公式15中,R_{B}=\lambda 1/\lambda 2是2D图像中的斑点度量,说明了二阶椭圆的离心率 。公式13和公式15是针对明亮的曲线结构。对于暗的对象,应该进行反转。

具体代码,可以看基于3D Frangi滤波的血管强化方法(附代码python)_HitStuHan的博客-CSDN博客_frangi滤波

  


http://chatgpt.dhexx.cn/article/WeUD0lYq.shtml

相关文章

Maven Resources Plugin的Filtering功能的Bug

Maven Resources Plugin的Filtering功能是非常强大的&#xff0c;是构建中非常重要的一项必备特性&#xff0c;但是最近发现了Filtering在过滤复杂文本&#xff08;例如Shell脚本&#xff09;时&#xff0c;会有一些问题&#xff0c;简单记录一下。以下是一段Shell脚本&#xf…

Neural Collaborative Filtering

目录 2 PRELIMINARIES3. NEURAL COLLABORATIVE FILTERING3.1 通用框架3.2 广义矩阵分解(GMF)3.3 MLP3.4 GMF和MLP的聚合—NeuMF 4 EXPERIMENTSQ1 NCF的效果比其他SOTA的隐式CF好吗&#xff1f;Q2 带有负采样的log loss&#xff08;这个优化框架&#xff09;是否适用于RS&#x…

图像处理中滤波(filtering)与卷积(convolution)的区别

图像处理中滤波和卷积是常用到的操作。很多人认为卷积就是滤波&#xff0c;两者并无区别&#xff0c;其实不然。两者在原理上相似&#xff0c;但是在实现的细节上存在一些区别。这篇博文主要叙述这两者之间的区别。 1、滤波&#xff08;或者叫相关&#xff09; 简单来说&#…

MAVEN中filtering的作用是什么?

FILTERING的作用 MAVEN提供了一种过滤机制&#xff0c;这种机制能够在资源文件被复制到目标目录的同时&#xff0c;当filtering true时替换资源文件中的占位符&#xff1b;当filtering false时不进行占位符的替换。 写在前面 如下所示filtering的用法&#xff0c;它对资源…

在Navicat premium上实现两个数据库同步

问题&#xff1a;有两个数据库A和B,现需要将数据库A的数据同步到数据库B上。 法一&#xff1a;使用备份 首先在数据库A上生成备份 然后将数据库A的备份拷贝到存储数据库B的备份的文件夹下&#xff0c;然后点击还原备份 方法二:使用工具中的同步操作 点击工具->结构同步 选…

Otter实现数据库同步

Otter工作原理 原理描述: 基于Canal开源产品,获取数据库增量日志数据。典型管理系统架构,manager(web管理)+node(工作节点) a. manager运行时推送同步配置到node节点 b. node节点将同步状态反馈到manager上基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作…

【愚公系列】2022年12月 数据库-关系数据库同步框架Dotmim.Sync的使用

文章目录 前言1.移动智能的三种模式2.混合模式模式的瓶颈3.数据同步的解决方案 一、关系数据库同步框架Dotmim.Sync的使用1.包介绍2.SqlServer到Sqlite同步测试基本使用3.SqlServer到Sqlite同步测试Web API代理3.1 服务端设置SqlServer同步服务3.2 客户端设置SqlLite同步服务3.…

django mysql数据同步_[django自动同步数据库]Django数据库同步操作技巧详解

同步数据库&#xff1a; 使用上述两条命令同步数据库 1.认识migrations目录&#xff1a; migrations目录作用&#xff1a;用来存放通过makemigrations命令生成的数据库脚本&#xff0c;里面的生成的脚本不要轻易修改。 要正常的使用数据库同步的功能&#xff0c;app目录下必须要…

SQLSERVER数据库同步

SQLSERVER数据库数据同步 1、实现方法2、实现发布3、实现订阅 1、实现方法 使用的是SQL自带的发布与订阅功能&#xff0c;SQL Server版本是2008&#xff0c;一台发布&#xff0c;一台订阅&#xff0c;实现数据库的数据同步。 2、实现发布 打开复制&#xff0c;右击本地发布&…

MySQL第九讲 MySQL集群主从搭建指定数据库同步数据

1、全库同步与部分同步 之前提到&#xff0c;我们目前配置的主从同步是针对全库配置的&#xff0c;而实际环境中&#xff0c;一般并 不需要针对全库做备份&#xff0c;而只需要对一些特别重要的库或者表来进行同步。那如何 针对库和表做同步配置呢&#xff1f; 首先在Master端…

Python数据库同步神器(一键同步)

1.背景&#xff1a; 最近公司项目的用户中心模块经常出现线上问题&#xff0c;测试人员需要将线上真实数据导入到测试环境中去复现Bug。公司有3套测试环境&#xff0c;来回切换并校验数据比较麻烦&#xff0c;于是就有了如下的数据库同步神器。 2.界面&#xff1a; 3.源代码&…

分布式数据库同步

分布式部署时数据库之间的数据同步 数据的同步原理就是同步binlog日志到需要复制的其他的数据库上&#xff0c;其他数据库根据binlog日志里面的ddl和dml语句,执行该语句同步到当前数据库&#xff0c;就能保证多个数据库的数据的一致性。 Binlog日志主要是的数据库执行的ddl、…

异构数据库同步方案

目录 1 概述 2 原理 3 参数 1 概述 为减轻生产库负载&#xff0c;避免在其上直接运行分析应用拖垮系统&#xff0c;需要将生产系统产生的业务数据实时同步到大数据分析平台。 凭借异构&#xff08;主从库不同类型、主从对象不同属主模式&#xff09;数据处理能力&#xff…

IDEA 之because it is included into a circular dependency循环依赖的解决办法

问题场景&#xff1a; 今天启动项目的时候突然遇到这个错误导致无法启动 Information:2019/8/26 11:34 - Compilation completed with 1 error and 0 warnings in 6 s 52 ms Error:Cannot build artifact aws_multi_branch_1.0.0:war exploded because it is included into a…

Maven dependencyManagement 详解

dependencyManagement&#xff08;以下简称&#xff1a;《依赖管理器》&#xff09; 《依赖管理器》简介 Maven中的《依赖管理器》元素提供了一种管理依赖版本号的方式。在《依赖管理器》元素中声明所依赖的jar包的版本号等信息&#xff0c;那么所有子项目再次引入此依赖jar包…

Maven之dependencyManagement

1. 父项目的dependencyManagement 最开始&#xff0c;知道dependencyManagement是管理jar包版本的&#xff0c;如果在父项目中的该节点下声明了包的版本&#xff0c;子项目中在Dependencies中引用该包时就不需要声明版本了&#xff0c;这样保证多个子项目能够使用相同的包版本…

dependency-track 初始化源码解析

因项目的关键因素&#xff0c;需查看dependency-check源码流程。个人学习用。自己读代码可以根据web.xml的几个listener来debug。 1、org.dependencytrack.RequirementsVerifier 校验java版本&#xff0c;内存等运行时环境。 2、org.dependencytrack.upgrade.UpgradeInitiali…

Maven中的dependencyManagement 详解

Maven中的dependencyManagement 详解 大家好&#xff0c;我是酷酷的韩金群~ 1.作用: 在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。 2.pom.xml文件中&#xff0c;jar的版本判断的两种途径: (1)如果dependencies里的dependency自己…

dependency walker工具简介及使用

dependency walker工具 简介使用 简介 官方概述&#xff1a; Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, …