从SIFT到深度学习

我们首先介绍基于OpenCV的方法,然后介绍深度学习的方法。
图像配准就是找到一幅图像像素到另一幅图像像素间的空间映射关系。这些图像可以是不同时间(多时间配准),不同传感器在不同地方拍摄(多模式配准)。这些图像之间的空间关系可以是刚性(平移和旋转),仿射(例如剪切),单应性(homographies)或复杂的大变形模型(complex large deformations models)。

传统的基于特征的方法

自21世纪初以来,图像配准主要使用基于特征的方法。这些方法有三个步骤:关键点检测和特征描述,特征匹配,图像变换。简单的说,我们选择两个图像中的感兴趣点,将参考图像(reference image)与感测图像(sensed image)中的等价感兴趣点进行关联,然后变换感测图像使两个图像对齐。

关键点检测和特征描述

关键点就是感兴趣点,它表示图像中重要或独特的内容(边角,边缘等)。每个关键点由描述符表示,关键点基本特征的特征向量。描述符应该对图像变换(定位,缩放,亮度等)具有鲁棒性。许多算法使用关键点检测和特征描述:

SIFT(Scale-invariant feature transform)是用于关键点检测的原始算法。SIFT特征描述符对于均匀缩放,方向,亮度变化和对仿射失真不变的部分不会发生变化。

SURF(Speeded Up Robust Features)是一个受SIFT启发的探测器和描述符,它的优点是非常快。

ORB(Oriented FAST and Rotated BRIEF)是一种快速的二进制描述符,它基于 FAST(Features from Accelerated Segment Test)关键点检测和 BRIEF(Binary robust independent elementary features)描述符的组合。它具有旋转不变性和对噪声的鲁棒性。由OpenCV实验室开发,是SIFT有效的免费替代品。

AKAZE(Accelerated-KAZE)是KAZE快速版本。它为非线性尺度空间提供了快速的多尺度特征检测和描述方法,具有缩放和旋转不变性。
这些算法都可以在OpenCV中轻松使用。在下面的例子中,我们使用了AKAZE的OpenCV实现。其他算法的代码大致相同,只需要修改算法的名称。

特征匹配

一旦在一对图像中识别出关键点,我们就需要将两个图像中对应的关键点进行关联或“匹配”。

图像变换

在匹配至少四对关键点之后,我们就可以将一个图像转换为另一个图像,称为图像变换(image warping)。空间中相同平面的两个图像通过单应性变换(Homographies)进行关联。Homographies是具有8个自由参数的几何变换,由3x3矩阵表示图像的整体变换(与局部变换相反)。因此,为了获得变换后的感测图像,需要计算Homographies矩阵。

为了得到最佳的变换,我们需要使用RANSAC算法检测异常值并去除。它内置在OpenCV的findHomography方法中。同时也存在RANSAC算法的替代方案,例如LMEDS:Least-Median鲁棒方法。

基于深度学习的方法

特征提取

深度学习用于图像配准的第一种方式是用于特征提取。卷积神经网络设法获得越来越复杂的图像特征并进行学习。2014年以来,研究人员将这些网络应用于特征提取的步骤,而不是使用SIFT或类似算法。

2014年,Dosovitskiy等人提出了一种通用的特征提取方法,使用未标记的数据训练卷积神经网络。这些特征的通用性使转换具有鲁棒性。这些特征或描述符的性能优于SIFT描述符以匹配任务。

2018年,Yang等人开发了一种基于相同思想的非刚性配准方法。他们使用预训练的VGG网络层来生成一个特征描述符,同时保留卷积信息和局部特征。这些描述符的性能也优于类似SIFT的探测器,特别是在SIFT包含许多异常值或无法匹配足够数量特征点的情况下。

监督学习

在2016年,DeTone等人发表了 Deep Image Homography Estimation,提出了HomographyNet回归网络,这是一种VGG风格模型,可以学习两幅相关图像的单应性。该算法具有以端到端的方式同时学习单应性和CNN模型参数的优势,不需要前两个阶段的过程。
网络产生八个数值作为输出。以监督的方式进行训练,并计算输出和真实单应性之间的欧几里德损失。
与其他有监督方法一样,该单应性估计方法需要有标记数据。虽然很容易获得真实图像的单应性,但在实际数据上要昂贵得多。

无监督学习

基于这个想法,Nguyen等人提出了一种无监督的深度图像单应性估计方法。他们保留了相同结构的CNN,但是使用适合无监督方法的损失函数:不需要人工标签的光度损失(photometric loss)函数。相反,它计算参考图像和感测变换图像之间的相似性。

他们的方法引入了两种新的网络结构:张量直接线性变换和空间变换层。我们可以简单地使用CNN模型输出的单应性参数获得变换后的感测图像,然后我们使用它们来计算光度损失。
与传统的基于特征的方法相比,这种无监督方法具有相当或更高的准确率和鲁棒性,并且具有更快的执行速度。此外,与有监督方法相比,它具有更好的适应性和性能。

强化学习

强化学习方法作为医学应用的常用方法正在得到越来越多的关注。与预定义的优化算法相反,在这种方法中,我们使用训练好的代理进行配准。

2016年,Liao 等人首先使用强化学习进行图像配准。他们的方法基于有监督算法进行端到端的训练。它的目标是通过寻找最佳的运动动作序列来对齐图像,这种方法只能用于刚性转换。

强化学习也可以用于更复杂的转换。在Robust non-rigid registration through agent-based action learning论文中,Krebs等人使用人工代理优化变形模型参数。该方法对前列腺MRI图像的患者间的配准进行实验,在2-D和3-D中表现出了较好的结果。

大变形配准

在当前图像配准研究中占较大比例的是医学影像。通常,由于患者的局部变形(因呼吸,解剖学变化等),两个医学图像之间的变换不能简单地通过单应矩阵描述,这需要更复杂的变换模型,例如由位移矢量场表示微分同胚(diffeomorphisms)。
2017年De Vos等人提出了DIRNet。它使用CNN来预测控制点网格,该控制点用于生成位移矢量场,然后根据参考图像变换感测图像。

基于深度学习的医学图像配准学习笔记2相关推荐

  1. 文献阅读经验--以基于深度学习的医学图像配准为例

    目录 正文 前言 一.应该阅读什么样的论文 二.为什么要阅读论文 三.怎样阅读论文(以期刊和会议论文为准) 总结 正文 前言 大家好,我是一名研一的学生,我的研究方向是基于深度学习的医学图像配准(全脑 ...

  2. 基于深度学习的医学图像配准综述

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载自:https://blog.csdn.net/weixin_ ...

  3. 深度学习在医学图像配准中的应用

    根据模型,策略函数,以及流行度分为7类 Deep similarity-based methods 传统的基于像素的图像度量方法对于图像对具有相似分布的情况是work很好的. 但是图像质量本身不好,比 ...

  4. 基于深度神经网络的噪声标签学习

    本文分享自华为云社区<Learning from Noisy Labels with Deep Neural Networks>,原文作者:猜沟. Introduction: 神经网络的成 ...

  5. 学习笔记:关于医学图像配准,以及腹部 CT、X线、MRI等图像的一些问题 持续更新

    本文记录一些学习上的问题和思考 有帮助的博客: 掌握这篇,晋级腹部 CT 影像高手 - 丁香园 (dxy.cn) 肠壁增厚的CT诊断 - 知乎 (zhihu.com) 关于肠道扩张,您可能不知道的诊断 ...

  6. 医学图像配准综述学习

    医学图像配准综述学习 目前针对医学图像配准的综述较少,笔者只找到了两篇: 一篇发表在<Machine Vision and Applications>-- Deep Learning in ...

  7. 文献阅读:医学图像配准的深度学习方法综述

    本文介绍了医学图像配准在疾病诊断.手术引导和疾病治疗跟踪等方面具有重要应用价值.将深入介绍基于深度学习的医学图像配准现状和现存的配准方法技术,包括监督变换估计.无监督变换估计和使用生成对抗网络的配准方 ...

  8. [骨科手术导航]2D/3D医学图像配准研究_罗博博_南方科技大学

    1.绪论 1.1 手术导航 #手术导航是以CT/MRI等医学影像数据为基础,通过虚拟现实技术,定位追踪后显示出手术器械相对病变组织的位置关系,从而实现对手术过程的实时引导. #在外科手术中,临床医生能 ...

  9. 基于深度学习的单模医学图像配准综述(附VoxelMorph配准实例)

    本文是基于深度学习的单模态医学图像配准的综述,除了介绍配准任务.配准过程之外,还会从实际操作出发,以经典的VoxelMorph为例做详细介绍.如果有什么讲的不清楚的地方欢迎大家留言讨论,如果有什么错误 ...

最新文章

  1. Solaris10下NDOUtils的安装
  2. 特斯联再获20亿元融资,跻身AIoT独角兽,光大京东讯飞万达入股
  3. 201671010103 2016-2017-2 《Java程序设计》第十二周学习心得
  4. fedora17下配置tftp服务器
  5. golang java rpc_golang两种调用rpc的方法
  6. it跟java的区别_详细介绍JAVA和C++区别
  7. Django魔术用法
  8. (Java 多线程系列)java synchronized详解
  9. SQL Server 作业监控
  10. 3.1 栈—栈的存储实现和运算实现
  11. pythonos文件目录方法_python12-OS模块(文件/目录方法)
  12. 计算机组成原理课程设计:复杂模型机
  13. 小米note 卡在android,小米Note手机SIM卡怎么安装?小米Note安装手机SIM卡教程
  14. 禁用或启用戴尔笔记本电脑上的触摸板
  15. 开发“小米商城官网首页”(静态页面)
  16. CentOS 7.2 配置Apache服务(httpd)--上篇
  17. Netty内置处理器整理
  18. awk使用手册(全)
  19. 三国演义python分析系统_用python分析四大名著之三国演义
  20. 用python把学习通导出成绩,未完善

热门文章

  1. JS的生成器详细使用、生成器结合迭代器使用
  2. Java队列实现电影院售票_java 22 - 11 多线程之模拟电影院售票口售票
  3. 【持续更新中】可用“海马王模拟器”来模拟安卓、苹果的环境
  4. HTML表单与PHP进行数据交互
  5. FTP服务(一)--匿名用户于系统用户
  6. C++扑克牌记忆匹配游戏
  7. 放苹果(C语言 递归)
  8. oracle number 16位,loopback-connector-oracle 主键Number类型长度为16位以上查询不到数据解决方法...
  9. 基于java web高校社交系统 /springboot高校社交系统
  10. 切点java_AspectJ之切点语法