【论文笔记】基于深度学习的端到端无监督配准模型——变形图像配准网络(Deformable Image Registration Network, DIRNet)

本文主要是介绍【论文笔记】基于深度学习的端到端无监督配准模型——变形图像配准网络(Deformable Image Registration Network, DIRNet),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是论文 End-to-End Unsupervised Deformable Image Registration with a Convolutional Neural Network 的阅读笔记。

文章提出了一种端到端的无监督配准模型——变形图像配准网络(Deformable Image Registration Network, DIRNet),并在手写数字数据集 MNIST 和心脏电影 MR 数据集 SCD 上做了实验。这个模型包括三个部分:一个由 CNN 实现的回归器、空间变换网络、重采样器。该模型是第一个基于深度学习的无监督端对端的图像配准模型。

一、网络结构

DIRNet 由回归器、空间变换器和重采样器三部分组成。如上图所示,回归器以 fixed image 和 moving image 的图像块作为输入,其输出的形变参数作为空间变换器的输入,空间变换器产生一个形变场,然后输入到重采样器中,重采样器根据形变场对 moving image 进行变换,得到配准之后的图像。整个网络通过通过计算 fixed image 和 warped moving image 之间的相似性作为损失函数来更新网络的参数。

1. 回归器

回归器的输入是 fixed image 和 moving image 中对应的图像块(patch),它利用 CNN 预测一个局部的形变参数。其网络结构具体是:4 个 3 × 3 3\times3 3×3 的卷积层,采用 0 填充,并且使用 2 × 2 2\times2 2×2 的下采样层,下采样层具体使用的是平均池化操作,然后是一个 1 × 1 1\times1 1×1 的卷积层作为全连接层。每一层中都使用了批正则化,除最后一个卷积层外每个卷积层后都跟着一个指数线性单元(ELU)作为激活函数。

2. 空间变换器

空间变换器的输入是回归器预测的形变参数,其输出是一个位移向量场(形变场),具体的,空间转换器会根据薄板样条产生一个形变场,这种更适合于预测全局的形变场,即输入是整幅图像;当输入是图像块时,预测的是局部的形变场,这时 B 样表转换则更适合。

3. 重采样器

重采样器的输入是一个形变场,其输出是变形后的 moving image。

模型的优化器采用的是随机梯度下降优化器,图像之间的相似度损失采用的是归一化的互相关。

二、实验结果

1. MNIST 数据集

在处理 MNIST 数据集时,由于有 0~9 十种不同的手写数字,所以是对每一类的图像分别进行训练的,并且在训练时随机选择一个图片作为 fixed image。

上图是对 MNIST 数据集进行训练的结果,第一行是每一类图像取平均值之后得到的,第二行是 fixed image,第三行是配准之后的结果。

2. SCD 数据集

为了评估不同的网络设置对效果的影响,在 SCD 数据集上进行训练时,以第二部分网络结构中提到的设置作为基准,分别对以下内容做了实验:

为了评估不同的下采样方法的影响,DIRNet-A1 模型使用的是最大池化操作,DIRNet-A2 模型使用的是步长为 2 的卷积操作。

为了评估不同的空间变换器的影响,DIRNet-B1 使用的是二次 B 样条变换器,DIRNet-B2 使用的是薄板样条变换器。

为了评估不同大小的接收野(即patch大小)的影响,DIRNet-C1 使用的是有重叠的图像块,该图像块大小与B样条控制点的捕获范围一致,这是通过在最终池层前后添加额外的 3 × 3 3\times3 3×3 的卷积层来实现的;DIRNet-C2 通过将最后一层 1 × 1 1\times1 1×1 的卷积层替换为 3 × 3 3\times3 3×3 的卷积层,然后是一个下采样层、两个 1024 节点的完全连接层和一个 16 × 16 16\times16 16×16 的二维控制点的最终输出层来分析每个控制点的全图像切片。

上图是根据上述不同的实验设置得到的训练结果,其中每一行分别表示配准之前的损失、SimpleElastix 模型训练的损失以及不同设置的 DIRNet 的损失。 9 5 t h S D 95^{th} SD 95thSD 是 surface distance(表面距离)的缩写, M A D MAD MAD 是 mean absolute surface distance(平均绝对表面距离的缩写)。在所有的模型中,B2 训练时收敛的较慢,但是效果比基准网络要好,C1 的效果是最好的。

上图是 DIRNet 和 SimpleElastix 配准结果的对比图,可以看出来 DIRNet 的配准结果更接近于 fixed image。

这篇关于【论文笔记】基于深度学习的端到端无监督配准模型——变形图像配准网络(Deformable Image Registration Network, DIRNet)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操