论文阅读——Joint Segment-Level and Pixel-Wise Losses for Deep Learning Based Retinal Vessel Segmentation

论文阅读之Joint Segment-Level and Pixel-Wise Losses for Deep Learning Based Retinal Vessel Segmentation
Paper:Joint Segment-Level and Pixel-Wise Losses for Deep Learning Based Retinal Vessel Segmentation
Code:Joint Segment-Level and Pixel-Wise Losses for Deep Learning Based Retinal Vessel Segmentation
Yan Z , Yang X , Cheng K T . Joint Segment-Level and Pixel-Wise Losses for Deep Learning Based Retinal Vessel Segmentation[J]. IEEE Transactions on Biomedical Engineering, 2018, 65(9):1912-1923.

Abstract

深度学习用于血管分割通常基于像素级别的损失函数,对所有血管像素像素赋予同样的权重,但由于在粗细血管所占比例悬殊,像素级别的损失函数导致网络对毛细血管的特征学习不佳。因此本文提出了新的分割损失函数,训练阶段更加强调毛细血管的特征。通过联合考虑分割级别和像素级别的权重,较粗血管和毛细血管的比重较为平衡,这样在不增加网络复杂度的前提下可以学到更加细微的特征
实验结果显示本文这种联合损失函数在独立训练和交叉训练中都达到了state-of_the_art的性能。最终得出结论使用这种联合损失函数可以学习更具区分度的特征,而且分割级别的loss对深浅层次的网络均有提升,而且这种方法可以应用于其他任务,在不对网络框架做较大改变的前提进一步替身网络性能。

Section I Introduction

目前视网膜血管分割主要分为两类:监督学习和无监督学习。
无监督学习算法不依赖于人工特征,主要流派有基于滤波器和基于模型的方法。
监督学习算法又有两种类别:浅层次学习和深层次学习。一般浅层学习依赖于手工特征。深度学习方法基于像素级别的损失函数进行训练的。就是根据预测的概率图谱与对应的GT进行像素对像素的计算,但由于粗细血管所占比例不同,需要着重强调毛细血管的特征。方法之一是搭建更深层次的网络但这增加了网络的复杂度。本文则提出了一种分割级别的损失函数,用来衡量每一条血管的宽度执行,分别给每一点像素分配权重,对于毛细血管的实配施加更重的乘法,通过两种层次损失函数的结合,可以进行更有效的血管分割。而且这一损失函数很容易拓展到其他任务中。
本文主要安排如下:Section II分析pixel-loss损失的性能 Section III详细介绍提出的segment-level loss和joint-loss 深度学习框架;Section IV通过对比实验验证joint-loss框架;Section V总结全文。

Section II pixel-loss & segment loss

pixel级别的损失通过对生成的概率图谱和ground truth图谱进行pixel-to-pixel的匹配。每个像素点输出的概率与真实标签用于反向传播和梯度计算。在这一过程中,每个像素点拥有同等的权重,每一点像素的loss值都是单独计算的。
这一方法存在的问题是分割出血管粗细的不一致性,在较细血管上尤为突出。如Fig1所示,中间为专家标注结果,右侧为分割结果,可以看到分割的粗细和GT不一致这就是由于通过pixel-loss计算导致的
Fig 1如果我们把<3pixel的血管定义为“毛细血管(thin vessel)”那么将有近77%血管属于“粗血管(thick vessel)”。那么深度学习框架就会对粗血管的适配效果更佳。但如果粗细血管比重分别是45%:55%这样橡塑件的匹配就会更均衡,因此我们提出适于分割层面的segment loss来调整粗细血管这种比例失衡问题。在segment-level层的loss会为毛细血管分配更过的权重。在计算loss值中使用pixel-level和segment-level层的联合损失函数可以学习更好的特征表达用于精细血管分割。

Section III Methodology

本节将会讨论如何实现两种损失。在训练阶段设计2分支结构分别实现segment-loss和pixel-loss。测试阶段二分支结构输出的概率图谱会融合到一起用于最后的血管分割。

Part A Segment-level Loss

主要针对血管粗细不一致问题,首先将血管结构通过骨架提取算法从人工标注的结构通过设定的长度阈值不断分割,直至分割成不同的小的血管部分。在每一块分割的小部位会在半径为R的范围内搜索,与设定的阈值进行比对,并最终将改点的pixel判定为vessel or non-vessel区域
随后与GT进行对比,计算出失配比(mismatch ratio)
mismatch ratio定义如下:
mismatch ratio
并通过mismatch-ratio建立权重计算公式:
weight matrixloss
这样在计算loss值时会根据mismatch-ratio为不同像素分配不同的权重。(个人认为毛细血管一般mismatch-ratio会更大,因此也会被赋予更多权重。训练过程中对毛细血管施加的penalty也就更大。
Hyper-parameter Selection
超参数的选择:在segment-level loss的计算过程中涉及两个超参数:划分血管的最大长度(maxLength)以及搜索半径(r).其中maxLength决定了对血管粗细的相对变化范围,最好使得划分区域内血管的粗细粒度相近;而搜索半径则取决于不同手工标注的不一致性,r的取值应使得不同标注产生的骨架图尽可能一致9覆盖性佳)
Joint-Loss Framework
联合损失的深度学习框架以UNet为基础模型,但设计了两个分支分别计算segment-loss及pixel-loss.具体结构见下图:
Joint-Loss Framework based on UNet
如前文所言,segment-level loss更关注较细血管,常规的pixel-loss更关注粗血管,因此两种损失结合提取更好的特征表达;在测试阶段两种损失是通过pixel-wise multiplication融合在一起并产生最终的分割图谱。
而且由于segment-level loss的计算不依赖于特殊框架,因此这种联合损失方法可以迁移应用到其他框架中。

Section IV Evaluation

Part A Experiments
数据集:分别在DRIVE STARE CHASE_DB1和HRF数据集上进行了验证
DRIVE:包含40张images 训练验证五五开
STARE:共20张图,由于没有明确的训练和测试划分,交叉验证过程中每次选择一张作为test其余19张作为training
CHASE-DB1:包含14位学龄儿童左右眼共28张图片,分辨率为999960.取前20张用于训练,后8张用于测试
HRF:包含45张高分辨率眼底图像(35042336),其中15张健康图像,15张D图像,15张青光眼图像。计算过程中由于计算资源的限制dowmsample=4
** Part B Preprocessing**
预处理操作包括提取绿色通道的灰度图,采取分块方法,每个patch=128*128大小,步长为64,并且把FOV区域外的背景像素给去除掉了。
同时为了防止过拟合才用了常用的数据扩增手段,包括翻转、旋转、resize以及添加随机噪声。
训练的patch数目分别是:
DRIVE(7869)/STARE(8677)/CHASE_DB1(4789/HRF(4717)
Part C 实验细节
框架Caffe,衰减学习率为了对比首先训练没有segment-loss的框架,后来采用同样的设定训练了含有segment-level loss的框架
Part D 评测指标
Sensitivity,Specificity,Precision,Accuracy,ROC,AUC
Part E 实验结果
主要比较使用joint-loss和只使用pixel-wise loss的分割结果。对于联合损失框架还通过多种训练方式(cross-training,mix_training,threshold-free)来测试模型的鲁棒性。并最终在HRF高分辨率数据集上进行了测试
Results比如Joint-Loss Framework在DRIVE数据集上取得的分割结果分别是:
Se:0.7653 Sp:0.9818 Acc:0.9542 AUC:0.9752
Joint-Loss vs Pixel-wise Loss
从下图3、4列的对比可以看出,joint-loss产生的概率图更加“干净”,因此更容易进行血管与背景像素的区分。
Fig 5Fig 6
从Fig6的细节对比,可以看出采用Joint-Loss的训练方法分割出的血管,粗细力度更一致,而pixel-wise的方法一些地方即使是观测者也很难区分是毛细血管还是背景噪声
Cross-trining and Mix training
Cross-training:在几个数据集上预训练过的模型用于另一数据集的测试
Mix-training:在一个数据集上训练后的模型用于另一数据集的测试(更具挑战性)
Threshold free vessel segmentation
还进行了阈值分割,就是不借助于人工分割结果,直接根据概率图谱生成最终的分割图片
High-Resolution Dataset
还在高分辨率数据集HRF上进行了测试,分割对比如下图所示。可以看出joint-loss的方法更有助于区分血管和背景区域
Fig 8

Section V Discussion

Part A
视网膜血管分割任务的挑战有:
(1)损伤区域的血管分割
(2)低对比度的微血管分割
(3)存在血管反射的情况???
Fig 9 Row1展示了明亮视野下损伤对分割的影响,通过阈值的设置可以有效去除;Row2展示了部分没有标注的部分被分割成了毛细血管,但本文的joint-loss可以有效抑制这种误识别;Row 3展示了本文框架的精确分割结果。
Part B 粗细血管分割对比
对比方法:将<3pixels的血管认为是thin vessel,为其分配5pixel的搜索半径;对于thick vessel分配10pixel的搜索半径,在搜索范围内进行pixel-to-pixel的matching
有效解决粗细不均匀问题可有效提升Specificity及Presicion,也就是说会有更少的non-vessel区域被错误分割
Part C Architecture Independence
为了验证joint-loss并不依赖与实施框架,我们将UNet替换为另一种简化了的FCN框架,如下图所示,并在DRIVE数据集上进行了验证。
FCN
虽然采用的FCN在结构和网络深度上都与UNet大不相同,依旧采用二分支结构体现joint-loss,得到了一致的分割结果:joint-loss分割结果更加清晰,血管粗细不一致的情况得到了改善,更有利于细微血管的精确分割。
Part D Hyperparameters
超参数的选择对模型性能的影响
(1)maxLength:maxLength越小能容忍的血管的粗细相差越小,因此训练处的网络性能也越好;但减小maxLength也会增加计算量。而且根据实验中skeleton分割的结果,maxLength不会显著的影响最终的分割精度。
(2)搜索半径r:更大的搜索半径会有效提升模型性能,因为非血管的像素会受到两种损失的惩罚(segment-loss, pixel-loss);但增大搜索半径也会带来计算量的增加,实验中也是需要进行trade off。
Hyperparameters

Section VI

本文分析了pixel-wise loss计算的局限性,提出了结合segment-level的联合损失计算,借此来增强训练过程中对粗细血管的重视程度;同时为了将这两种损失融合在一起提出了一种新的3二分支结构的深度学习框架;随后通过一系列对比实验验证了joint-loss的深度学习框架的有效性及鲁棒性,可以迁移运用到其他框架及任务中用来提升网络性能。

Summary
本文实验的工作量很大,留下深刻印象是两种loss有效性验证的实验以及architecture independence的实验设计;还发现作者的第二篇论文打算继续阅读,不知道二者工作是否有连续性。
下一篇预告:
A Three-Stage Deep Learning Model for Accurate Retinal Vessel Segmentation

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值