论文题目:Joint Optic Disc and Cup Segmentation Based on Multi-label Deep Network and Polar Transformation

论文地址:https://ieeexplore.ieee.org/abstract/document/#

概念介绍

多标签分类(Multi-label classification)

  • 概念
    多标签分类是多类分类的一般化, 多类分类是将实例精确分类到一个或者多个类别中的单一标签问题, 在多标签问题中, 没有限制说一个实例可以被设置多少个类别.
    正规点讲就是, 多标签分类是找到一个模型将输入xx映射到二值向量yy中.可以将多标签问题转化成一系列的二元分类问题, 然后可以使用多个单标签分类器进行处理.
  • 多标签分类采用的算法
    1. boostingAdaBoost.MHAdaBoost.MRAdaBoost的多标签数据扩展版本
    2. k近邻:ML-kNN是将k-NN分类器扩展到多标签数据
    3. 决策树
    4. 向量输出的核方法
    5. 神经网络:BP-MLL是反向传播算法的多标签学习问题的扩展

多类分类(Multiclass classification)

  • 概念
    在机器学习中, 多类(multiclass)或者多项式(multinomial)分类是将实例分配给一个而非多于两个类别的种类(将实例分类给两类中的一个称为二元分类binary classification). 很多分类算法自身支持多于两类的使用, 剩下的就是二元分类算法了, 这就可以通过很多策略去转换成多项式分类器.
    要将多类分类与多标签分类区分开, 后者是一个类别有多个标签需要被预测
  • 多类分类采用的算法
    1. 二元分类问题转化

      • 一对多(one -vs.- rest)
      • 一对一(one -vs.- one)
    2. 二元问题的扩展
      • 神经网络: 多层感知器就是多类问题的扩展,输出N个二值神经元就可以编程多类任务
      • 极限学习机(Extreme Learning Machines (ELM))
      • k近邻: 最古老的非参数分类算法
      • 朴素贝叶斯
      • 决策树
      • 支持向量机
    3. 层级分类
      将多类分类问题的输出空间分割为一个树. 每个父节点被多个子节点分割, 重复这个过程直到每个子节点仅仅代表一类.

今天介绍一篇语义分割的文章,这篇文章提出了一个网络M-Net,其网络结构呈“M”型,看图1。该文章旨在使用提出的网络对眼底图像中的视杯和视盘进行分割,进而来判断是否检测者患有青光眼疾病。M-Net网络有五个部分组成,多尺度输入层,U型卷积网络,侧输出层,多标记损失函数,极坐标变换。这篇文章的五大贡献有:

  1. 提出了一种基于多标签深度网络(M-Net)的OD和OC联合分割方法。M-Net是一个端到端的深度学习系统,它包含一个具有侧输出层的多尺度U形卷积网络来学习可判别的表示并生成分割概率图。
  2. 为了对OD和OC联合分割,提出了一种基于Dice coefficient的多标签损失函数,较好地处理了眼底图像像素级分割的多标签和不平衡数据。
  3. 利用极坐标变换将眼底图像转换到极坐标系中,充分利用了空间约束、等价增强、平衡杯状比例等优点,提高了分割效果。
  4. 在ORIGA数据集上评估了所提出的M-Net的有效性和泛化能力,M-Net达到了最新的分割性能,OD和OC的平均重叠误差分别为0.07和0.23。
  5. 基于分段OD和OC的CDR计算进行青光眼筛查。提出的方法在ORIGA和SCES上的曲线下面积(AUC)分别为0.85和0.90,获得了最高的性能数据集。

我将会按照以往介绍论文的方式对本篇文章进行介绍,首先介绍文章introduction部分,接着对相关工作进行介绍,之后介绍作者提出的方法,最后介绍实验部分。

图1.M-Net网络结构图

在Introduction部分,作者介绍了文章提出M-Net的背景及主要的青光眼青光眼筛查技术。由于青光眼对视力的影响具有不可恢复性,因此早期筛查和检测方法对于保持视力和生活质量至关重要。一种主要的青光眼筛查技术是视神经头(ONH)评估,它采用二元分类来识别青光眼患者和健康人。然而进行人工评估既费时又费钱,不适合人群筛查。因此实现自动ONH评估是必要的。现目前提出了一些临床测量方法,如垂直杯盘比(CDR)、环盘面积比(RDAR)和椎间盘直径。其中,CDR被临床医生广泛接受和使用。在彩色眼底图像中,视盘(OD)呈淡黄色的椭圆形区域,可分为两个不同的区域:中心明亮区(OC)为视杯(OC),周边区域为神经视网膜边缘,如图2所示。CDR由垂直杯径(VCD)与垂直盘径(VDD)之比计算。

图2. 视觉神经头结构

一般来说,CDR越大,青光眼的风险越高,反之亦然。准确分割OD和OC是CDR测量的关键。一些方法从三维光学相干层析成像(OCT)中自动测量盘和杯。然而,OCT由于成本高,不易获得,眼底图像仍被大多数临床医生所参考。已经提出了一些从眼底图像分割OD和/或OC的工作。主要的分割技术包括颜色和对比度阈值、边界检测和区域分割方法。在这些方法中,通过具有各种视觉特征的学习分类器,将眼底图像的像素或斑块确定为背景、圆盘和杯状区域。然而,大多数现有的方法都是基于手工制作的特征(例如,RGB颜色、纹理、Gabor滤波器和梯度),这些特征缺乏足够的鉴别表示,并且容易受到病理区域和低对比度质量的影响。除此之外,大多数方法都是将OD和OC分开,即先分割OD,然后再分割OC,而不考虑两者之间的相互关系,本文将OD和OC结合起来,提出了一个基于深度学习技术的单阶段框架。深度学习技术最近被证明可以产生高度区分的表示,这有助于许多计算机视觉任务。例如,卷积神经网络(CNNs)在图像分类和分割方面带来了更高的性能。已经证明,深度学习系统对于检测可参考的糖尿病视网膜病变具有较高的敏感性和特异性。在眼底血管分割中,深度学习系统也取得了最先进的性能。这些成功激发了作者深入研究从眼底图像中分割椎间盘和杯子的研究。

接下来介绍视杯和视盘分割的相关工作。

视盘分割相关工作,早期提出了基于模板的方法来获得OD边界。例如,Lowell等人。利用主动轮廓模型对基于图像梯度的轮廓进行检测。之后,有些方法使用基于圆的变换技术来获得OD边界。有些方法利用多维特征空间中每个感兴趣点周围的局部纹理特征来提供对OD区域变化的鲁棒性。最近,提出了基于像素分类的方法,将边界检测问题转化为像素分类任务,取得了令人满意的性能。后续,有研究者提出使用superpixel分类器对OD和OC进行分割,利用superpixel级别的各种手工视觉特征来提高检测精度。然而,这些方法依赖于手工特征,使其容易受到低质量图像和病理区域的影响。

视杯方面的相关研究,OC仅限于OD内的区域。由于眼底图像的低对比度边界,从眼底图像中分割OC是一项更具挑战性的任务。一些文献提出了一种基于变水平集的OC自动分割算法。后来,血管扭结被发现可用于OC分割,一些方法中使用了一个类似的概念,但命名为血管弯曲,检测扭结或血管弯曲的主要挑战在于,它常常受到不在OC边界上的自然血管弯曲的影响。此外,还将类似于OD分割的基于像素分类的方法引入到OC分割中。上述方法中使用了各种手工制作的视觉特征(如中心包围统计、颜色直方图和低秩超级像素表示)来表示用于OC分割的像素/超级像素,这些算法的一个共同限制是高度依赖手工制作的视觉特征,主要是基于视网膜神经边缘和杯状物之间的对比。

Joint OD and OC Segmentation:现有的方法大多只关注单区域分割(即OC或OD),特别是对于cup分割,OD边界可以提供一些有用的先验信息,如形状约束和结构约束。一些文章中对OD和OC的处理分为两个不同的阶段,具有不同的特点。一些方法将OD和OC分割集成到一个图切割框架中。然而,他们认为OD和OC是两个相互标记,这意味着对于眼底的任何一个像素,它只能属于一个标记(即背景、OD和OC)。在一些方法中,引入了一个改进的U-Net深度网络来分割OD和OC。但是,它仍然以顺序的方式分离OD和OC分段。采用熵采样技术选择信息点,然后采用图割算法得到最终的分割结果。然而,这种多步骤的深层系统限制了它在训练阶段的有效性。

接下来介绍本文的方法论部分,图1示出了OD和OC分割方法的总体流程图,其中包括M-Net深度网络和眼底图像极坐标变换。在作者提出的方法中,使用现有的自动视盘检测方法对视盘中心进行定位,然后根据检测到的视盘中心将原始的眼底图像转换成极坐标系。然后将转换后的图像输入到M-Net中,生成OD和OC区域的多标签概率图。最后,逆极坐标变换将分割图恢复到笛卡尔坐标。下面介绍M-Net的5个主要部分。

多尺度输入层:用于构建图像金字塔输入并实现不同层级感受野融合。这种做法被证明了可以有效的改进分割的质量。具体实现使用平均池层自然地对图像进行降采样,并在编码器路径中构造多尺度输入。这样做的具体优势是:1) 将多尺度输入集成到解码器层中,以避免参数的大幅度增长;2)增加解码器路径的网络宽度。

U型卷积网络:作为主体结构学习丰富的层次表示。与原始的U-Net结构类似,由编码器路径和解码器路径组成。每个编码器路径与滤波器组执行卷积层以产生一组编码器特征映射,并且利用线性非线性(ReLU)激活函数。解码器路径还利用卷积层输出解码器特征映射。中间的跳连接从编码器路径传输相应的特征映射,并将它们连接到上采样的解码器特征映射上。最后,在最终解码器层的输出处的高维特征表示被送到可训练的多标签分类器。最终分类利用1×1卷积层和Sigmoid激活作为像素级分类来生成概率图。对于多标签分割,输出是一个K通道概率图,其中K是类号(在我们的工作中,OD和OC的K=2)。预测的概率图对应于每个像素处概率最大的类。

Side-output层:它工作在早期卷积层上,以支持深层监控。在M-Net中,引入了side输出层,它作为一个分类器,为早期的层生成一个相应的局部输出映射。设W表示所有标准卷积层的参数,网络中有M个 side-output层,其中相应的权重表示为W=(W(1),…,W(M)),side-output层的目标函数如图3.其中,αm为各side-output层的损失函数融合权重(文中αm=0.25),m为侧输出数,Ls(m)(,)为第m侧输出层的多标签损失。为了直接利用slide-out层的预测图,文中采用一个平均层来组合所有slide-out层的输出图作为最终预测图。slide-out层的主要优点是:

第一,slide-out层将slide-out输出损失与最终层损失反向传播到解码路径的早期层,可以缓解梯度消失问题,有助于早期层的训练。它可以看作是损失层和早期层之间的一种特殊的桥梁连接;

第二,多尺度融合已经被证明是一种高性能的融合方法,并且slide out输出层监督每个尺度的输出图,以获得更好的结果。

图3 side-output层的目标函数

多标记损失函数(Multi-label Loss Function):本文中将OD和OC分割定义为一个多标签问题。现有的分割方法通常属于多类设置,即将每个实例分配给多个类的一个唯一标签。相比之下,多标签方法为每个类学习一个独立的二进制分类,并将每个实例分配给多个二进制标签。特别是在OD和OC分割中,视盘区域覆盖了cup像素,也就是说标记为cup的像素也有标记为disc的标记,而且对于青光眼患者,视盘像素排除了cup区域,形成了一个很薄的圆环,使得在多类设置下,圆盘标记与背景标记极不平衡。因此,将OD和OC看作两个独立的二进制分类的多标签方法更适合于解决这些问题。文中提出了一个基于Dice系数的多标签损失函数。Dice系数是一种度量重叠的方法,广泛用于在有基本事实的情况下评估分割性能。作者提出多标签丢失函数Ls定义如图4.

                                                                      图4 基于Dice系数的多标签损失的目标函数

其中N是像素数,p(k,i)∈[0,1]和g(k,i)∈{0,1}分别表示预测为类别k类的概率和真值标签。K是类号,文中设置为2,wk是类权重,对于青光眼筛查,OD和OC都很重要,因此文中将wk设为0.5。需要注意的是,Dice损失函数表示前景mask重叠率,可以处理前景区域和背景像素的不平衡问题。在多标签设置下,像素可以单独标记为OD或OC。因此,OD和OC之间不存在不平衡问题。多标记损失函数梯度如图5.

                                                                      图5 基于Dice系数的多标签损失函数梯度

对眼底图像进行极坐标变换:文中引入了一个极坐标变换来提高OD和OC的分割性能。像素级极坐标变换将原始眼底图像转换到极坐标系,如图6,设p(u,v)表示眼底图像平面上的点,其中原点设置为盘中心O(uo,vo),(u,v)为笛卡尔坐标,如图

图6 眼底图像在笛卡尔坐标系和极坐标系表示

6(A)所示。极坐标系上的对应点为p(θ,r),如图6(C)所示,其中r和θ分别为原点p的半径和方向角。极坐标和笛卡尔坐标之间的转换关系如下:

极坐标变换在极坐标系中提供原始图像的逐像素表示,它具有以下特性:

1) 空间约束:在原始眼底图像中,一个有用的几何约束是OC应该在OD区域内,如图6(B)所示。但这种径向关系很难在原始笛卡尔坐标系中实现。相反,极坐标变换将这种径向关系转换为空间关系,其中杯、盘和背景的区域显示为有序的层结构,如图6(D)所示。这种类层的空间结构使用方便,特别是一些基于层的分割方法可以作为后处理。

2) 等效增强:由于极坐标变换是一个像素级的映射,所以原始眼底图像上的数据增强与极坐标上的数据增强是等价的。例如,移动展开中心O(uo,vo)相当于极坐标上的漂移裁剪变换,使用不同的变换半径R等于使用不同的缩放因子增大。因此,在不同参数的极坐标变换过程中,可以进行深度学习的数据增强。

3) 平衡杯比例:在原始眼底图像中,OC/背景像素的分布有很大的偏差,即使在裁剪后的ROI中,杯区域所占比例仍然很低。以图6(B)为例,杯区仅占4%左右。这种极不平衡的比例很容易导致深度模型训练中的偏差和过拟合,极坐标变换是基于OD中心的图像,通过插值可以扩大杯状区域,提高OC比例。如图6(D)所示,杯状区域的比率比ROI增加到23.4%,这比原始眼底图像更加平衡。均衡区域有助于避免模型训练过程中的过度设置,进一步提高分割性能。

以上介绍完了M-Net的方法论部分,详细可以点击上述论文进行查阅。

最后一部分介绍实验环节。M-Net是用Python实现的,它基于带有Tensor flow后端的Keras。在训练过程中,使用随机梯度下降(SGD)来优化deep模型。使用从0.0001开始逐渐降低的学习率和0.9的动量。将变换半径R设为R=400,将方向角绘制成400个不同的像素点,得到的极坐标图像的大小为400×400。M-Net输出是2通道的OD和OC后验概率图,其中每个像素值表示概率。使用固定阈值0.5从概率图中得到二值掩模。本文选取了OD/OC掩模中最大的连通区域,并利用椭圆分割产生最终的分割结果。图7为基于(A)ORIGA和(B)SCES数据集上的垂直杯盘比(CDR),青光眼筛查的ROC曲线和AUC评分。

 图7 基于(A)ORIGA和(B)SCES数据集上的垂直杯盘比(CDR),青光眼筛查的ROC曲线和AUC评分

图8 M-Net与不同 模型比较

 图9 不同模型效果图对比

图像分割网络-M-Net相关推荐

  1. 【深度学习】Swin-Unet图像分割网络解析(文末提供剪枝仓库)

    [深度学习]Swin-Unet图像分割网络解析(文末提供剪枝仓库) 文章目录 1 概述 2 Swin-Unet架构 3 bottleneck理解 4 具体结构4.1 Swin Transformer ...

  2. Nvidia力作:医学图像分割网络

    来源:投稿 作者:梦飞翔 编辑:学姐 引自Unetr: Transformers for 3d medical image segmentation 1.序言 本文将以Nvidia团队最近提出的一种新 ...

  3. MICCAI 2022:基于 MLP 的快速医学图像分割网络—UNeXt

    MICCAI 2022:基于 MLP 的快速医学图像分割网络 UNeXt 文章目录 前言 方法概述 UNeXt 架构 TokMLP 设计思路 实验部分 一些理解和总结 参考链接 前言 最近 MICCA ...

  4. 基于图像分割网络HRNet实现人像分割

    基于图像分割网络HRNet实现人像分割 人像分割是图像分割领域非常常见的应用,PaddleSeg推出了在大规模人像数据上训练的人像分割PPSeg模型,满足在服务端.移动端.Web端多种使用场景的需求. ...

  5. 【医学图像分割网络】之Res U-Net网络PyTorch复现

    [医学图像分割网络]之Res U-Net网络PyTorch复现 1.内容 U-Net网络算是医学图像分割领域的开山之作,我接触深度学习到现在大概将近大半年时间,看到了很多基于U-Net网络的变体,后续 ...

  6. FCN、Unet、Unet++:医学图像分割网络一览

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Error@知乎 来源丨https://zhuanlan.z ...

  7. 新突破!Swin-UNet:基于纯 Transformer 结构的医学图像分割网络

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:Sophia知乎 https://zhuanlan.zhihu.com/p/393412176 AI博士笔记系 ...

  8. UneXt 基于MLP的快速医学图像分割网络

    1.multilayer perceptron (MLP) 多层感知机 2.参数量减少了72倍,计算复杂度降低了68倍,推理速度(inference speed)提高了10倍 根据其实验结果表,同结构 ...

  9. 当今主流分割网络有哪些?12篇文章一次带你看完

    作者 | 孙叔桥 来源 | 转载自有三AI(ID: yanyousan_ai) 本文的12篇文章总结了当前主流的分割网络及其结构,涵盖从编解码结构到解码器设计:从感受野到多尺度融合:从CNN到RNN与 ...

最新文章

  1. CCNET+MSBuild+SVN实时构建的优化总结
  2. display:block的注意
  3. linux强制关机启动后是白屏,解决安装Ubuntu后,启动出现屏幕空白(全黑,无内容)...
  4. 使用 Gradle 实现一套代码开发多个应用
  5. 景驰无人车余波:王劲“嫡系”忽然发难,官方回应辞退员工所述不实
  6. linux新建两个工作组,linux添加工作组
  7. #运行后闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来
  8. 想要转人工智能,程序员该如何学习?
  9. Linux中的用户切换:su和su - 的区别
  10. java div和table_详细为你讲解,DIV+CSS布局和TABLE布局的优缺点(经典)
  11. 读书笔记(平凡的世界)
  12. Excel怎么将一列数据合并到一个单元格中
  13. 天线3db波束宽度_波束宽度
  14. 如何去除实验数据中的毛刺
  15. 提取动漫视频里的BGM
  16. 程序员系列头像表情包一
  17. sap查询所有事物代码
  18. 产妇《生娃记》-苏州
  19. 青年是什么?请读一下塞缪尔·厄尔曼的《青春》
  20. 达内java作业_【达内JAVA教程】达内Java基础题

热门文章

  1. CentOS 7 部署RabbitMQ 服务
  2. Spark2.x学习笔记:Spark SQL的SQL
  3. ThinkPHP6 缩略图上传
  4. 兔子繁殖问题python编程_C语言编程:兔子繁殖问题
  5. uiautomatorviewer 简单使用
  6. 显卡上DirectX 9.0 是什么意思
  7. 中职计算机应用专业核心素养的,基于职业发展的中职学生核心素养的研究与培养...
  8. pandas已知数值怎么找位置_pandas.dataframe中根据条件获取元素所在的位置方法(索引)...
  9. utc时间 单位换算_UTC转换本地时间
  10. 教你如何试用华为云服务器