Coarse to Fine Vertebrae Localization and Segmentation with SpatialConfiguration-Net and U-Net

基于SpatialConfiguration-Net and U-Net的脊椎由粗到细的定位与分割

  • 源代码
  • 参考博文
  • 论文简介:MICCAI 2019大型椎体分割挑战赛第一名

摘要

从脊柱CT体积中定位和分割椎体对于病理诊断、手术计划和术后评估至关重要。然而,由于病理学的解剖学变化,螺钉和植入物引起的噪声以及螺钉和植入物引起的噪声以及大范围的不同视野,因此难以自动分析脊柱CT。提出了一种基于全卷积神经网络的全自动粗到细的椎骨定位和分割方法。
在三步方法中

  • 首先,U-net定位脊柱的大致位置。
  • 然后,SpatialConfiguration-Net 使用热图回归执行椎骨定位和识别。
  • 最后,U-Net对每个识别的椎骨进行细粒度的二值分割,然后将单个预测合并到最终的多标签椎骨分割中。

评估显示了我们方法的顶级性能,排名第一,并赢得了MICCAI 2019大型椎体分割挑战赛(2019版)

1、介绍

从脊柱CT体积中定位和分割椎体是涉及脊柱的许多临床应用的关键步骤,例如,病理诊断(Forsberg等人,2013年)、手术计划(Knez等人,2016年)和术后评估(Amato等人,2010年)。由于椎骨结构的高度重复性、骨折和植入物等不同病理形态的差异以及不同的视野,大多数的椎体定位和分割方法都是基于机器学习的。由于定位和分割本身都是困难的任务,大多数提出的方法只关注一个任务。

我们在本文中的主要贡献是:

  • 我们开发了一种从粗略到精细的全自动方法来定位、识别和分割脊柱CT体积中的脊椎。我们首先粗略地定位脊椎,然后定位和识别单个脊椎,最后以高分辨率分割每个脊椎。
  • 我们解决了在存在高度重复结构的情况下同时分割和标记脊椎的挑战性问题,首先进行定位和识别步骤,然后对单独识别的脊椎进行二值分割。
  • 我们在MICCAI 2019大型垂直分割挑战赛(VERSE 2019)上对最先进的方法进行了评估和比较,涉及到图像合成和病理的真实条件。我们提出的方法取得了最好的性能,排名第一,并赢得了2019年挑战。

2、方法

我们用三步法进行椎骨定位和分割(见图1)。【上处相同的内容】

  • 首先,由于输入CT的视野变化很大,输入分辨率较低的CNN预测脊柱的大致位置。
  • 其次,另一个更高分辨率的CNN对单个椎体质心进行多个landmark的定位和识别。
  • 最后,用最高分辨率的分割CNN对每个定位的椎体进行二值分割。然后将各节段椎体的结果合并到最终的多标记分割中。

图1:概述我们提出的从粗到细的全自动椎骨定位、识别和分割。三步法适用于具有大范围不同视野和病理学的脊柱CT。

2.1、脊柱定位

由于视野不同,脊柱CT容积中往往包含大量不包含有用信息的背景,而脊柱可能不在CT的中心。为了确保在随后的vertebrae localization 这一步骤中,脊椎显示于输入的中心,我们
首先需要预测出整条脊椎的形心的大致空间位置坐标。【即图2的红线X^spine\hat{X}_{spine}X^spine​】

第一步,我们预测脊柱的近似x和y坐标X^spine∈R2\hat{X}_{spine}\in \mathbb{R}^{2}X^spine​∈R2

  • 为了定位X^spine\hat{X}_{spine}X^spine​,我们使用U-Net的变体来进行脊柱中心线(穿过所有椎体形心的线)的热图回归
  • 脊柱中心线的目标热图 : h˙spine(x;σspine):R3→R\dot{h}_{spine}(x;\sigma _{spine}):{R}^{3}→{R}h˙spine​(x;σspine​):R3→R,是通过将脊柱上的每个椎体形心的目标坐标x˙i\dot{x}_{i}x˙i​ ,其大小为σspine\sigma _{spine}σspine​的高斯热图,合并得到。(如图2)【目标热图指的是GT,目标坐标是真实坐标】

图2:输入volume,脊柱定位网络预测脊柱热图h^spine\hat{h}_{spine}h^spine​。
预测的椎骨坐标X^spine\hat{X}_{spine}X^spine​是h^spine\hat{h}_{spine}h^spine​质心的x和y坐标。

  • 我们使用L2损失来最小化目标热图体积h˙spine\dot{h}_{spine}h˙spine​和预测热图体积h^spine\hat{h}_{spine}h^spine​之间的差异:R3→R{R}^{3}→{R}R3→R。
  • 最终预测的脊椎坐标的坐标X^spine\hat{X}_{spine}X^spine​是h^spine\hat{h}_{spine}h^spine​质心的x和y坐标。
  • 我们对U-Net的变体进行了调整,使其执行average pooling而不是max pooling
  • 执行线性上采样而不是反卷积。
  • 它使用五个级别,其中每个卷积层具有[3×3×3]的核大小和64个滤波器输出。
  • 此外,卷积层使用零填充,使得网络输入和输出大小保持不变。

对CT的处理

  • 将其重新采样为均匀的体素间距8 mm,并以网络输入为中心。

网络输入分辨率为[64×64×128],最大可容纳范围为[512×512×1024]mm的脊柱CT容积。这一程度足以让网络预测评估数据集的所有脊柱CT体积的Xspine

2.2、椎骨定位

为了定位椎体的中心,我们使用(Payer等人,2019年)提出的SpatialConfiguration-Net(SC-NET)。该网络有效地将landmark的局部外观与其空间配置相结合。

  • 网络的局部外观部分使用五个层次,包括下采样到下层之前的两个卷积层,以及在与上采样的下层连接之后的两个卷积层。每个卷积层使用 leaky ReLU激活函数,并具有[3×3×3]的核大小和64个滤波器输出。
  • 空间配置部分由四个卷积组成,每一个包含[7×7×7]个核,处理分辨率为局部外观部分的四分之一。
    SC-Net对N个目标椎骨Vi,其中i=1……N,进行热图回归。例如,每个目标坐标x˙spine\dot{x}_{spine}x˙spine​是高斯热图 h˙spine(x;σspine):R3→R\dot{h}_{spine}(x;\sigma _{spine}):{R}^{3}→{R}h˙spine​(x;σspine​):R3→R的中心。,网络同时预测N个目标椎骨Vi的输出热图h^i(x):R3→R\hat{h}_{i}(x):{R}^{3}→{R}h^i​(x):R3→R。我们使用改进的L2 -损失函数,他也从目标高斯热图h˙i\dot{h}_{i}h˙i​中学习单个σspine\sigma _{spine}σspine​的值:

有关网络架构和损耗功能的更多细节,请参阅(Payer等人,2019)。

【 SC-NET对N个目标椎骨(Vi)进行热图回归,得到以x˙\dot{x}x˙ (椎骨location坐标)为中心的高斯热图 h˙i(x;σi)\dot{h}_{i}(x;\sigma _{i})h˙i​(x;σi​)】

图3显示了如何处理输入体积来预测所有热图h^i\hat{h}_{i}h^i​的示意图。

图3:椎骨定位网络的输入量和个体热图预测。

  • 黄色矩形表示,不是一次性处理整个输入卷,而是以x^spine\hat{x}_{spine}x^spine​为中心的有重叠的子集。
  • 该网络同时预测N个热图,即每个椎骨Vi预测单张热图h^i\hat{h}_{i}h^i​。
  • 为了可视化,预测的热图被单独着色,并合并成单一的图像。
  • 最终的landmark坐标x^i\hat{x}_{i}x^i​(i = 1…N)确定为每个椎骨中满足约束的局部极大值序列。

每个网络输入被重新采样,2毫米的均匀体素间距,网络的输入尺寸[96×96×128],这允许[192×192× 256]毫米范围内的volumes适应网络。在这个范围内,数据集的许多图像不适合网络,不能一次处理。为了将处理的体积缩小到脊柱的近似位置,我们将预测的脊柱坐标x^spine\hat{x}_{spine}x^spine​(见第2.1节)设为网络的输入中心。

此外,由于某些脊柱CT体积在z轴(即垂直于轴面的轴)上的范围较大,无法装入网络,我们按照(Payer et al., 2019)提出的方法处理这些体积。

  • 在训练期间,我们在z轴的随机位置裁剪一个子集。
  • 训练完成后,在预测时,我们将原图像在z轴上分割成多个子区域,重叠96个像素,然后再一个一个地把它们作为输入放入网络中得到输出。
  • 然后,通过取所有预测响应的最大值来合并重叠子体的网络预测。

我们预测最终的地标坐标x^\hat{x}x^如下:对于每个预测的热图量,我们检测多个高于某一阈值的局部热图最大值。然后,我们通过取最接近volume顶部或底部的最大值的热图,分别确定在容积上可见的第一个和最后一个椎骨。我们通过取不违反以下条件的序列来识别最终预测的地标序列。连续的椎骨距离不能小于12.5毫米,距离不能大于50毫米,后面的landmark也不能高于前一个。

2.3、椎骨分割

【第三步脊柱分割的方法建立在第二步的结果之上。这一步的目的是将每个椎骨与背景分开来】
为了创建最终的椎体分割,我们使用U-Net (Ronneberger et al., 2015)建立二值分割,将椎体从背景中分离出来(见图4)。

图4:脊柱分割网络的输入volume和分割的椎体。

  • 黄色矩形显示单个椎体周围的裁剪区域,表明每个局部的椎体x^i\hat{x}_{i}x^i​单独处理。
  • 每个单独的椎体sigmoid预测l^i\hat{l}_{i}l^i​然后转换和重新采样回到原来的位置。
  • 最终的多标签分割l^final\hat{l}_{final}l^final​是将每个体素处的标签设置为响应最大的l^i\hat{l}_{i}l^i​的标签。

最终通过椎骨定位网络预测的定位标签识(x^\hat{x}x^)别出椎体的语义标签(见第2.2节)。因此我们使用同一个网络预测所有的椎体Vi,因为网络不需要识别它要分割的椎体,只需要将每个椎体从背景中单独分离出来

  • 由于每个椎体都是独立分割的,网络需要知道它应该在输入volume中分割哪个椎体。因此,从整个脊柱CT图像中,我们裁剪定位的椎体周围的区域,使椎体位于裁剪图像的中心。
  • 在训练中,我们使用真实的椎体位置x˙i\dot{x}_{i}x˙i​,而在预测中,我们使用预测的椎体坐标x^i\hat{x}_{i}x^i​。
  • 此外,我们创建了一个以椎骨坐标x^i\hat{x}_{i}x^i​为中心的高斯热图图像。裁剪的图像和热图作为分割U-net的输入。对于U-net的修改在2.1节所提到。得到网络的二值分割预测值l^i(x):R3→(0,1)\hat{l}_{i}(x):\mathbb{R}^{3}\rightarrow (0,1)l^i​(x):R3→(0,1)
  • 利用s型交叉熵损失缩小与目标值l˙i(x):R3→(0,1)\dot{l}_{i}(x):\mathbb{R}^{3}\rightarrow (0,1)l˙i​(x):R3→(0,1) 的差距。
  • 最后为了得到多标签的脊椎分割图像,需要将上述步骤中得到的每个椎体的二值分割结果转移到原输入图像中它所在的位置。
  • 最终合并后的图像l^final(x):R3→0……N\hat{l}_{final}(x):\mathbb{R}^{3}\rightarrow {0……N}l^final​(x):R3→0……N中的每一个体素,其预测是每个椎骨标签i的最大响应。如果预测的l^i\hat{l}_{i}l^i​> 0.5,则将该像素设置为背景。

输入体积被重新采样,以具有1毫米的均匀体素间距,而网络被设置为输入大小[128×128×96],这允许体积的范围为[128×128×96] mm。

论文阅读:Coarse to Fine Vertebrae Localization and Segmentation with SpatialConfiguration-Net and U-Net相关推荐

  1. 【论文阅读】Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations

    一篇经典的弱监督分割论文,发表在CVPR2019上面 论文标题: Weakly Supervised Learning of Instance Segmentation with Inter-pixe ...

  2. 论文阅读:CVPR 2022 Object Localization under Single Coarse Point Supervision

    任务:point-based object localization (POL) Motivation:具有相同语义信息的点具有不同的标签.而其他方法预先定义的关键点可能是不准确的.因此本文提出来基于 ...

  3. 【论文阅读】Illuminating Pedestrians via Simultaneous Detection Segmentation

    论文来源 ICCV2017 arXiv report github代码(caffe-matlab) 本文的主要问题是行人检测.作者探讨了如何将语义分割应用在行人检测上,提高检测率,同时也不损坏检测效率 ...

  4. [论文阅读] Cost-Effective REgion-based Active Learning for Semantic Segmentation

    论文地址:https://arxiv.org/abs/1810.09726 发表于:BMVC'18 Abstract 最先进的语义分割方法在有监督的情况下使用大量的标注训练图像语料库进行训练.然而,与 ...

  5. 【论文阅读】Structured Knowledge Distillation for Semantic Segmentation

    概述 这篇论文来自CVPR2019 Oral. 论文的出发点:语义分割的模型往往很难兼顾速度与精度,也因此语义分割的网络分为两类,论文中描述为 cumbersome segmentation netw ...

  6. 【论文阅读笔记】Automatic Liver and Lesion Segmentation in CT Using Cascaded Fully Convolutional Neural Net

    本文提出一种从腹部CT片中自动分割肝脏和肝脏病变的方法. 使用的数据集为3DIRCADb dataSets:http://ircad.fr/research/3d-ircadb-01 使用的神经网络库 ...

  7. 论文阅读 | Residual Conv-Deconv Grid Network for Semantic Segmentation

    GridNet发表在BMVC2017,用于语义分割,一篇很早期的文章 论文地址:[here] (文章没有给代码地址,但是里面的网络设计讲的很详细,可以自己复现出来,github上也有很多别人复现的代码 ...

  8. [论文阅读] SqueezeSegV3: Spatially-Adaptive Convolution for Efficient Point-Cloud Segmentation

    文章目录 1. 主要思想 2. 具体方法 3. 实验支撑 4. 总结启示 5. 相关文献 paper 原论文的链接 code: 源代码链接 1. 主要思想 通过什么方式,解决了什么问题 要解决的问题 ...

  9. 【论文阅读】Fully Convolutional Networks for Semantic Segmentation【CVPR,PAMI】

    摘要 我们的研究表明,卷积网络通过端到端.像素到像素的训练,在语义分割方面比之前的最佳结果有所提高 我们的关键见解是构建完全卷积网络,它接受任意大小的输入,并产生相应大小的输出,并具有有效的推理和学习 ...

最新文章

  1. 服务认证暴力破解工具Crowbar
  2. laravel + Vue 前后端分离 之 项目配置 - 开发环境
  3. 并发基础(九) java线程的终止与中断
  4. java websocket netty_基于netty实现的websocket
  5. 在一个html中使用另一个html数据,如何为某些HTML标签存储任意数据
  6. 当c语言学到大成时,教孩子学编程(信息学奥赛C语言版)
  7. Java设计登录界面
  8. python文本自动伪原创_给大家分享的6款在线Ai伪原创工具 让你写作更简单
  9. ubuntu全版本安装 NVIDIA显卡驱动、以及重装、卸载
  10. 学习编程需要了解什么基础知识
  11. 草履虫纳米机器人_草履虫大小的微型机器人:由激光驱动,未来可用于显微外科手术!...
  12. PDF转WORD为什么这么难
  13. 飞机步道(plane trails)
  14. python获取当天日期
  15. C/C++指向指针的指针、指向数组的指针以及存放指针的数组
  16. 机器学习编程作业ex7(matlab/octave实现)-吴恩达coursera K-means和PCA
  17. web前端课程设计——动漫网页2个网页HTML CSS web前端开发技术 web课程设计 网页规划与设计
  18. Java-CSS美化网页01
  19. linux内核带usb驱动,Linux3.4内核USB驱动的移植
  20. 机房计算机课提交作业,学生提交电子作业的实现方案一例 面试后要求提交方案...

热门文章

  1. c语言写骷髅病毒源码,骷髅病毒分析报告
  2. IDEA运行报Command line is too long和unable to find valid certification path to requested target
  3. 通达OA 精灵登录时提示“库没有注册”(图文)
  4. 新一代PHP MYSQL DREAMWEAVER网站建设典型案例pdf
  5. 使用Crowd进行单点登录
  6. 了解一下chirp,扫频信号的生成
  7. 一元二次方程虚根求法java_java怎么求一元二次方程虚根,虚根i怎么定义啊。
  8. 【转】Linux那些事儿 之 戏说USB(23)设备的生命线(二)
  9. 通过中央气象台做天气预报
  10. iphonex美版型号对照表_iPhoneX国行和美版/港版/日版哪个好?苹果X各国家版本区别对比...