论文阅读——STD-Net:Retinal Image Segmentation with a Structure-Texture Demixing Network
STD-Net:Retinal Image Segmentation with a Structure-Texture Demixing Network
使用结构-纹理分解网络用于视网膜图像分割
From MICCAI2020
Abstract
视网膜图像分割对于疾病的自动诊断十分重要,但由于视网膜图像混合了复杂的结构和纹理特征使得这一任务十分具有挑战性。目前一些联合调控纹理和结构的方法不可避免会引入一些偏见从而导致较差的分割性能。
为了解决这一问题,本文提出了一种分开寻找结构和纹理内容的分割策略,从而提升分割精度。最终本文设计了一款结构-纹理分解网络(STD-Net)可以分开处理纹理和结构并且处理效果更好。
随后这一方法在视网膜血管分割和视盘视杯分割任务中进行了广泛的实验,充分验证了这一方法的有效性。
Section I Introduction
视网膜图像分割在疾病自动诊断中十分重要,因为它与糖尿病视网膜病变等诸多严重疾病有关;而视盘和视杯分割计算的杯盘比则是判断青光眼的主要指标。但是由于视网膜图像复杂的纹理和结构信息使得视网膜图像分割比自然图像分割更加困难。
最近深度神经网络在图像分割任务中大放异彩,但是这些算法不可避免在调控细节纹理会和全局结构时有所偏向,更加偏向于纹理的识别,结果就是一些纹理十分相似的微小结构往往就会被误分类。
因此将视网膜图像中的纹理和结构信息分开处理是十分有必要的。在图像处理中结构-纹理分解是十分重要的一种操作,广泛用于各种计算机视觉任务,如图像增强、光流法和图像风格化任务中。但是将其应用于视网膜图像分割中仍有待研究。
已有的纹理-结构分解法不足以识别边缘结构,因为他们可能有相似的数据分布特征,而纹理部分不可避免会包含结构信息,因此如果不能充分提取到结构信息,只能产生较差的分割结果。
本文提出一种结构-纹理分解网络(Structure-Texture Demixing Network,STD-Net),将图像分为结构部分和纹理部分,使用不同的网络结构分别处理。
因为结构部分主要包含平滑的信息,而纹理部分更多包含高频信息,因此结构部分适合使用具有表征能力的网络,纹理部分适合使用层次较浅的网络,否则容易过拟合。
本文的结构在两类任务中进行了测试,分别是DRIVE数据集上的视网膜血管分割,以及在ORIGA和REFUGE数据集上的视盘视杯分割,均验证了这一方法的有效性。
本文的主要贡献总结如下:
(1)提出一种新的分割策略,将图像的结构信息和纹理信息分开处理用以提升分割精度;
(2)设计一个STD-Net使用不同的网络分别处理纹理和结构部分;
(3)开两类任务中开展广泛的额实验验证这一方法的有效性。
Section II Methodology
Fig 1描绘了STD-Net的具体结构,
一般结构部分对应分割的主体,是比较平滑的部分,而纹理部分则包含细粒度的信息,几乎都是一些周期新的纹理或者噪声。
因此分割主体的主要信息都包含在结构部分,细节信息包含在纹理部分。
因此STD-Net以M-Met为骨干网络,将输入图像分成结构和纹理两部分,引入一个纹理模块来处理纹理信息,其中结构部分作为M-Net的输入,结构部分则用使用纹理模块提取纹理信息恢复边界结构,蓝色符号表示减操作。Lt,Ls,Lseg分别代表纹理损失、结构损失和分割损失函数。
Part A Structure-Texture Demixing Loss Function
图像被分为纹理和结构两部分,因此损失函数也分为纹理损失和结构损失,基于图像结构和纹理的统计信息分别对结构和纹理进行惩罚。
比如对输入图像I,经过STD网络会将I分解为S+T两部分,分解后的问题就变成了优化:
Ls和Lt分别代表结构损失和纹理损失。
在结构部分Ls<<Lt,而在纹理部分应该是Ls>>Lt,而lambda作为一个权重因子。
Total Variation:
结构损失函数的TV表示为:
相当于每一处结构损失的绝对值平方和。
而纹理损失的TV形式是:
是每一点纹理损失扥绝对值。
而损失函数依旧使用传统的交叉熵损失函授,因此总体损失函数表述为:
mu和lambda分别表示各自的权重。
Part B Structure-Texture Demixing Nodule
再来回顾一下Fig1中STD-Net的结构,首先使用STD获取纹理部分,其次根据输入图像的纹理部分获得图像的结构部分,
从而保证I=S+T。
而STD包含10层卷积层+LeakyReLU来提取纹理特征,随后作为Texture block的输入。
Texture Block:
Texture Block是STD的一部分,主要是因为一些结构,特别是边界结构,有可能被误分类为纹理构成部分从而受到纹理损失的类似乘惩罚。尽管这些纹理部分中的结构信息对分割十分重要,但是纹理和过多的噪音会影响分割精度。
为了解决这一问题,就设计了Texture Block来提取边界信息,减少纹理和噪声的影响。
考虑到纹理部分包含的有限的信息以及深层模型可能会导致过拟合,因此Feature Block使用很浅的层次。Fig2则展示了纹理模块的内部结构,可以看到只包含2层卷积和一层自适应归一化层和LeakyReLU,主要用于修复分解错误的结构,减少纹理信息的影响。
Fig 3展示了分解后的结构、纹理和经Texture Block处理后得到的E-structure。
为了可视化效果更好,只展示了绿色通道。
可以看到提取的结构图中(b)既包含平滑的结构也包含纹理信息。
通过a,b相比可以看到使用纹理损失分解后的结构图保留了主要结构同时滤除了高频噪声,主要是边界结构和高频纹理的混合。
而c和d相比 可以看到texture block有效的提取出了结构部分,率除了高频纹理信息。
Section III Experiments
本文进行了两类实验:视网膜血管分割和视盘视杯分割。
Part A Vessel Segmentation on DRIVE
DRIVE数据集的情况在此不再赘述,实验中将图像resize到 512x512.
使用的评价指标有Spe,Sen,Acc,IoU,AUC,ROC.
在这一试验中与目前一些SOTA的框架进行了对比,分别是:Li [21], Liskowski [22], MS-NFN [23],U-Net [3], M-Net [14], and AG-Net [20].
对比结果展示在TableI中。
其中Li[21]将血管分割变成易了多模态的数据转换任务,从原始的视网膜图像转换至血管图,随后对所有像素点进行打标,而不是只对中心像素进行标注。
Kiskowski[22]则是在将样本送入网络训练前经过了对比度归一化以及一些对比度增强手段,比如gamma correction伽马变换等。
MS-NFN[23]通过‘up-pool’和‘pool-up’两个子模型产生多尺度的特征图。
UNet[3]则是通过编码结构来学习纹理特征,随后再借助解码网络产生精确地位置信息;
M-Net[14]则是引入了多尺度的输入和多尺度的输出来学习层次化的表征;
AG-Net[20]提出了对结构敏感的扩张路径,将其加入到M-Net中。
可以看到STD-Net比性能最好的M-Net都还要有提升,尤其是Sen指标,充分说明本文这种结构-纹理分解机制提升了模型的结构检测能力。
随后本文移除了texture block,Ls和Lt将基准模型称之为BL,BLST加入了Ls和Lt。
Fig 4展示了不同方法的对比效果。可以看到BL中就丢失了许多边缘结构,与纹理结构很类似,而BLST就很好的识别了这些微小的结构。在(g)中加入texture block后检测到了更多细节的边界结构。
Part B Optic Disc/Cup Segmentation on ORIGA
视盘视杯分割是视网膜图像分割另一重要任务。
本文基于的ORIGA数据集包含650张眼底图像,其中168例为青光眼,482为正常。
650张图像划分为train:val = 325:325,两类中分别包含73、95例青光眼病理。
实验仅裁剪了OD部分,并且resize到了256x256的大小。
Table 2展示了与其他SOTA算法的对比,可以看到依旧是本文取得了最佳的分割性能,只有OEdisx略高于AG-Net。
在REFUGE数据集上也取得了相近的结果。选用REFUGE数据集是因为它的图像来自于不同的采集仪器,因此可以测试模型的泛化性能,更能说明本文将结构和纹理分解的有效性。
Part C消融实验
为了验证本文这种结构-纹理分解机制以及tecture block的有效性,还进行了消融实验,各部分组合对比结果汇总在Table 3中。
还有一些有趣的发现:
当骨干网络BL加入Ls或Lt后对Sen有提升,尤其是加入结构损失后获得了最高的敏感性指标,说明检测到了更多的血管结构。其次
BL+Ls+Lt发现对Acc,AUC,IOU均有提升,充分说明了结构-纹理分解机制的有效性。
加上Texture block组成STD-Net后获得了最高得我ACC,AUC,IOU指标,进一步说明了texture block的有效性。
Section IV Conclusion
本文提出了一种可训练的结构-纹理分解网络(STD-Net),通过将输入分为结构和纹理两部分分别进行处理,这样分割模型可以更关注于结构信息,减少纹理信息的影响。 还提出了一个纹理模块来进一步从图像纹理部分中提取结构信息,进一步提升了分割效果。 在视网膜血管分割和视杯视盘分割上的实验均证明了本文这种分解机制的有效性。
论文阅读——STD-Net:Retinal Image Segmentation with a Structure-Texture Demixing Network相关推荐
- 论文阅读笔记:Retinal vessel segmentation of color fundus images using multiscale convolutional neural.....
Retinal vessel segmentation of color fundus images using multiscale convolutional neural network wit ...
- 论文阅读笔记:Retinal vessel segmentation based on Fully Convolutional Neural Networks
基于全卷积神经网络的视网膜血管分割 关键词:全卷积神经网络.平稳小波变换.视网膜眼底图像.血管分割.深度学习 摘要 本文提出了一种新的方法,将平稳小波变换提供的多尺度分析与多尺度全卷积神经网络相结合, ...
- 论文阅读——Towards Adversarial Retinal Image Synthesis
论文阅读--Towards Adversarial Retinal Image Synthesis GAN用于视网膜图像合成 Abstract 眼底图像的合成十分具有挑战性,传统方式借助复杂的眼底解剖 ...
- 【论文阅读】SIGMOD‘19 FITing-Tree: A Data-aware Index Structure
[论文阅读]SIGMOD'19 FITing-Tree: A Data-aware Index Structure 介绍 传统的索引结构(比如B+tree),需要消耗大量的空间,在一些OLTP负载下, ...
- 【论文阅读】Adaptive Clustering-based Malicious Traffic Classification at the Network Edge
[论文阅读]Adaptive Clustering-based Malicious Traffic Classification at the Network Edge 原文标题:Adaptive Clu ...
- 论文阅读笔记:《Hyperspectral image classification via a random patches network》(ISPRSjprs2018)
论文阅读笔记:<Hyperspectral image classification via a random patches network>(ISPRSjprs2018) 论文下载地址 ...
- 论文阅读——Recurrent U-Net for Resource-Constrained Segmentation
论文阅读之Recurrent U-Net for Resource-Constrained Segmentation 解决在资源受限平台上使用Recurrent UNet做分割任务 from ICCV ...
- 【论文阅读】Weakly Supervised Semantic Segmentation using Out-of-Distribution Data
一篇弱监督分割领域的论文,发表在CVPR2022上: 论文标题: Weakly Supervised Semantic Segmentation using Out-of-Distribution D ...
- 【论文阅读笔记】语义三维重建CVPR2011:Semantic Structure from Motion
前文回顾 [论文阅读笔记]Past, Present, and Future of Simultaneous Localization and Mapping [论文阅读笔记]语义SLAM语义映射模型 ...
- 论文阅读笔记:Retinal blood vessel segmentation using fully convolutional network with transfer learning
Retinal blood vessel segmentation using fully convolutional network with transfer learning 使用全卷积网络与迁 ...
最新文章
- OpenCV文字绘制支持中文显示
- WPF combox二级联动
- 每天一道LeetCode-----计算给定范围内所有数的与运算结果
- STATIC_URL/STATIC_ROOT/STATICFILES_DIRS/urls.py中的static区别
- ABAP并发计算的一个实例
- 如何使用QuickConnect远程访问Synology NAS
- python编写抢座位软件_程序员硬核Python抢票教程”,帮你抢回家车票
- 响应式 Web 设计 - 媒体查询
- 【学习总结】GirlsInAI ML-diary day-5-布尔表达式/Bool
- VCC,GND,VSS,VDD的理解
- 宝塔php7.1安装ioncube,如何使用宝塔安装ionCube扩展
- 服务器上发布的网站应用80端口时内网可以访问,外网不能访问
- APICloud AVM框架 开发CRM客户管理系统
- R语言ggplot2可视化在轴标签、轴标题中添加大于号、等于号等实战
- 苹果wifi网速慢怎么办_三步解决家里网速慢的问题
- python exe文件反编译_[原创]python exe文件解包方法总结
- Android淑女剑之HorizontalScrollView之窈窕淑女
- 如何快速有效的发散思维?
- voip 软电话 客户端实例 SIP
- Android 获取夜深模拟器中的文件获取不到