2019-04-27 00:41:02 qq_32998593 阅读数 1037
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

    本博文主要分析了基于传统计算机视觉的细胞分割算法和基于深度学习的细胞分割算法。主要针对医学影像分割算法。包括了FCN全卷积网络的细胞分割效果,U-Net细胞分割效果。查阅了采用深度学习分割医学影像的几十篇论文,做出的总结。


    医学影像分割——细胞分割算法分析与总结

1. 基于传统算法的细胞分割总结

        1.1 几种常用二值化方法

        1.1.1 全局二值化,简单,但是依赖于选择的阈值,对光照不均衡的图像,背景和前景相似的图像处理效果差。

        1.1.2 最优阈值方法(基于直方图)。这种方法基于对图像像素强度的概率分布,选择两个概率分布的交界处作为阈值,能够得到最小的分割误差。

        1.1.3 OTSU大津阈值方法(基于聚类)。这种方法是基于统计判别分析,计算出一个阈值能够最小化类内方差,最大化类内方差。

图1 背景和前景的概率分布

                                                                             

        1.2 分水岭算法

        1.2.1 基于标记点约束的分水岭算法。一般针对细胞影像分割,细胞图像中都有标记物,将标记物当做一个水坝的初始位置,不断的进行注水,直到两个水坝的水位相交,修水坝,分割完成。

        1.3 混合方法

        为了提高分割性能,往往采用多种方法结合,缓解单独一个方法造成的性能下降。

        1.3.1 利用图割的方法进行细胞分割。

        采用混合图割的方法,自动二值化图像,接着采用被基于距离图的自动选择方法约束的LoG(Laplacian-of-Gaussian)进行种子点提取。

图2 基于图割(Graph Cut)的细胞分割流程题

        1.4 最小化模型用于细胞分割

        基于模型的方法进行细胞检测和分割,往往过度依赖于细胞形状特征的先验信息。由于采用了该细胞明确的性质,这会引入细胞分割的偏差。而采用轮廓的方法,会不依赖于细胞核形状,染色特征,能够处理医学细胞影像中的大多数分割问题。最小模型分割方法如下:

        (1)检测所有的封闭轮廓;(2)轮廓评估;(3)生成不重叠分割;(4)轮廓优化;(5)分离凹目标;(6)对剩余区域进行分类,基于染色的特性,分为目标细胞和其他物体。


2. 基于深度学习的细胞分割算法总结

        2.1 FCN全卷积神经网络

        FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。

图3 FCN网络结构图

        2.2 U-Net

        网络架构如下:

图4 U-Net的网络结构

        U-Net模型是一种改进的FCN结构,因其结构形似字母U而得名,应用于医学图像的语义分割。它由左半边的压缩通道(Contracting Path)和右半边扩展通道(Expansive Path)组成。压缩通道是典型的卷积神经网络结构,它重复采用2个卷积层和1个最大池化层的结构,每进行一次池化操作后特征图的维数就增加1倍。在扩展通道,先进行1次反卷积操作,使特征图的维数减半,然后拼接对应压缩通道裁剪得到的特征图,重新组成一个2倍大小的特征图,再采用2个卷积层进行特征提取,并重复这一结构。在最后的输出层,用2个卷积层将64维的特征图映射成2维的输出图。

图5 分割的每个阶段的效果图
图6 分割效果图

3. 基于传统算法的细胞分割实现

        3.1 传统分割算法的实现步骤

        为了评估传统分割算法的性能,在给定数据集上实现了细胞分割。以下为实现步骤。(由于是合作项目,算法不方便透露)。

        3.2 结果分析

        基于传统计算机视觉的细胞分割在处理前景、背景有较大差异,目标之间间距较大的细胞时,能够高效的处理,而面对前景、背景相似,且细胞连成一片的情况,则效果较差。如果需要提高精度,需要采用曲率,局部特征约束的方法。


4. 基于深度学习的细胞分割算法效果展示

        以下的一些图像是调研的基于深度学习的细胞分割效果图,包括了各类医学影像的分割结果。通过多方面的分析和对比,可以看出一些算法还是没有将贴近的细胞分割开。

 

 

       上图的第一列是原始图像,第二列是Ground Truth,第三至第五列是各种基于深度学习模型的分割效果。从中可以看出,和真实值相比,对于距离较近的细胞,分割效果不好,容易分割成一片。

        上图是基于U-Net的以及其相关变体的分割效果图,可以看出,分割效果较好。分析原因可以看出,原始图像中,每个细胞分散得很开,没有连在一起,且前景、背景差异较大。

        通过观察效果图可以看出,应用深度学习的算法,对于连在一起一片细胞,也将其分割为一个细胞。

        对于密集型的细胞分割,基于深度学习的分割算法精度还是较低。如上图红框标注出来的地方,就是一大片细胞连成一起。

        上图是将局部区域放大后,观察分割的结果。左图是Ground Truth,右图是分割结果图。

 

         上图是采用FCN进行细胞分割的结果。第1列是原始图像,第2列是Ground Truth,第3列是分割结果。从红框标注出的地方可以看出,在原始图像中,贴的较近的图像,通过深度学习模型分割后,被连成了一片。

 

        这里展示的结果和上述图像一样,红框标注的位置显示出来深度学习分割遇到了和传统计算机视觉分割的相同的问题。

 

        上述方法展示出了一些改进的U-Net算法,对于一般的U-Net,容易将贴的较近的细胞分割成一个整体,而采用一些优化手段和深度学习模型调整,能够分开一些难分样本。 

            上图在细胞分布得很开的情况下,分割效果较好。而对于连在一起,贴的很近的细胞,从黄色箭头指示出的效果图可以看出,U-Net依然没有分割开来,而采用了优化方法的模型,能够分割这类细胞。 

            对于密集型细胞,分割效果只有在80%左右 。

 

             从上图红框可以看出,对于和背景颜色很相似的细胞,采用深度学习的方法,并不能有效的分割出来。 

            一些U-Net在细胞分割和3D重建中的应用 。

5. 传统细胞分割算法和基于深度学习的细胞分割算法对比总结

        通过第4小节给出的各种实际分割效果展示,可以看出,对于细胞前景、背景差异较大,且细胞相对独立,没有大面积接触,粘连在一起的情况,深度学习能够对其较好的分割。而在处理难分的一片细胞时候,基于深度学习的分割算法也不能很好的分开。在细胞分割采用的评价标准里面,大部分分割算法的性能,都在90%前后。对于目前给定的数据集,由于前景、背景差异小,且细胞有很多连接在一起,采用基于深度学习的分割算法,其分割效果也不能保证和传统算法比,有较大提升。

        对于数据集的问题,由于细胞图像分辨率较高,在一张图像中存在的细胞大概有300个左右,需要人工将细胞的每个轮廓标注出来,比较耗时且标注的费用较大。因此,自制数据集需要较大的标注成本。

 

2019-05-08 13:12:09 m0_37477175 阅读数 523
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

一 Transformation Consistent Self-ensembling Model for Semi-supervised Medical Image Segmentation

在这里插入图片描述

前言

医疗影像的数据紧缺问题我就不再多bibi了,为了解决这个问题,出现了很多的方法,像主动学习,迁移学习,半监督学习等弱监督学习方法,部分方法在图像分类中有很突出的应用。但是!图像分割尤其是医疗影像分割方面的弱监督方法还有待发掘~当然,也存在一些简单的方法,比如使用少量的数据训练的模型去预测未标注的数据,得到伪标签然后加入训练集继续训练。。。(在分类任务中比较常用)

本博客就分享一偏使用半监督学习来使影像分割到达更好的效果的论文。思路比较有趣,值得学习~

先搞一下要点:

  1. 半监督学习
  2. 影像分割
  3. 正则化loss
  4. 三个医疗影像数据集:skin lesion ISIC 2017 dataset,optic disc REFUGE dataset,liver LiTS dataset

先了解一下一个有意思的事情:

Transformation equivariant representation

在不管是分类还是分割中,我们通常会需要数据增强来防止过拟合,并且提高精度。但是数据在进行增强时,比如图像顺时针旋转90度,而网络的参数是不会旋转的,其中的feature map也不一定与直接将不旋转的图像数据得到的feature map顺时针旋转90度一样,等价。但是他们的输入的确相同的,不过是其中一个多了90度的扰动。
注意: 在图像分割的任务中,默认是transformation equivariant!!
上面这个概念可以很好的由下面的图解释:
在这里插入图片描述
什么叫transformation equivariant,即上图a所示,但是在卷积中这并不是等价的,所以目前有很多在卷积中做转换等价的研究,包括同时旋转滤波器或者是特征图。
本论文利用了这个不等价的特性,加入了正则化平方差loss,这个后面再谈。

训练流程

在这里插入图片描述

通过上图简单明了,输入经过两个部分,一部分使用πi\pi_i代表数据增强扰动,ii为样本index。每次的训练过程,πi\pi_i保持不变,不同的样本不同的训练过程πi\pi_i发生变化,可使用非常多的种类的数据增强。
样本的真实标注yiy_i在每一次的训练过程都要在πi\pi_i下进行变换,得到y~i\widetilde y_i,在计算loss时,使用y~i\widetilde y_i
每次的训练都要进行实时的预测。得到样本的预测mask。

xix_i直接经过网络的得到mask,对mask进行此次训练的扰动πi\pi_i得到ziz_iziz_iy~i\widetilde y_i计算交叉熵loss。
xix_i经过扰动πi\pi_i之后得到的输入x~i\widetilde x_i经过网络得到输出z~i\widetilde z_iz~i\widetilde z_iziz_i计算平方loss。

过程简单易见。

半监督学习

此处的半监督学习就是利用了上面loss流程中的mean square loss,这个loss的计算是不需要真正的gt或者是加扰动的gt来参与的,只要网络能够预测就可以。
此处的mean square error是作为loss中的正则化项的,为什么是正则,还有待讨论。
假设一共有NN个输入,其中MM个输入是没有标签的,那么NMN-M个数据有标注。定义一下,有标注的集合LL和未标注的集合UU
L={(xiyi)}i=1ML = \{(x_i, y_i)\}_{i=1}^M
U={xi}i=M+1NU=\{x_i\}_{i=M+1}^N
loss的形式:
minθi=1Ml(f(xi;θ),yi)+λR(θ,L,U)\min \limits_\theta\sum_{i=1}^Ml(f(x_i;\theta),y_i) + \lambda R(\theta, L, U)
无标签的数据只是在λR(θ,L,U)\lambda R(\theta, L, U)正则化的部分有效。
整体算法流程:
在这里插入图片描述

实验结果

不用说,论文上的肯定不错。
在这里插入图片描述
三个不同的数据集:
在这里插入图片描述

目前此训练流程还未尝试。。。

二 Semi-supervised Learning for Network-Based Cardiac MR Image Segmentation

前言

跟分类的方法很类似呀,说白了就是一句话,用标注的数据训练模型去预测未标注的数据,然后把模型标注的数据加到训练数据中,循环。。。训练模型预测的未标注数据的标签,术语为伪标注!

流程整理如下

现在有已经标注的数据,SL={XLYL}S_L = \{X_L, Y_L\},未标注的数据,SU={XUYU}S_U= \{X_U, Y_U\}
监督学习阶段:
在这里插入图片描述
半监督学习阶段:
在这里插入图片描述
注意,此时的U标注是上一个模型预测的结果。
假设网络参数为Θ\Theta,伪标注YUY_U,两者交替进行更新:

  1. Θ^\hat \Theta固定预测YUY_U
  2. Y^U\hat Y_U固定更新Θ\Theta

https://github.com/baiwenjia/CIMAS.

2019-09-04 19:36:25 haimianjie2012 阅读数 68
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军
2019-05-28 17:36:22 dcxhun3 阅读数 993
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军


深度学习在医学影像的应用项目目前主要几种在三个方面:分类、检测和分割。下面我就我所接触的这三个方面所用的一些方法以及一些经验进行阐述

医学影像的分类

常见的应用场景就是分类有没有某一类疾病?比如通过胸片判断该胸片是否有尘肺,等一系胸部疾病。最热门的就是大佬吴恩达曾经发布了一个大型数据集,14类胸部疾病的分类数据集ChestX-ray14
关于网络,在分类方面,如果显存等方面压力不大的情况下,可以主推Inception V3。

医学影像的检测

常见的检测类项目就是,疾病在哪里?比如医学界AI入门项目,肺结节检测。就是检测肺部哪里有结节。公开数据集也很多,曾经阿里举办过天池大赛、以及kaggle、Luna16等。
关于算法,肺结节检测属于CT项目,也即3D数据,需要用三维信息,前后信息具有关联性。因此可能需要采用三维网络,也可以先二维再三维。推荐一个好的项目方案。其实公开的资料很多,只要肯动手。
关于网络方面,目标检测类可以学习R-CNN系列和YOLO、SDD系列。现在最新的一些算法也基本上是在这两大系列上改进创新的。

医学影像的分割

分割项目多应用在器官的分割,比如心脏分割、肾脏分割、肝脏分割以及脑分割,这些器官类的分割,都一些公开的比赛。这些项目多集中在CT和MR这种3d数据。
所用网络也基本上是基于unet进行的改进,unet算是医学影像分割网络的鼻祖。
对于三维数据,所以网络一般用基于unet的3d网络。分享一个好的知乎文:图像分割的U-Net系列方法

关于数据方面的补充

对医学影像感兴趣的伙伴,可以关注grand challenges网站,上面收集了超全的比赛,可以注册参赛、获取数据、跟着大佬打怪等。

PS:太久没更新了,词不达意的地方见谅哈

2019-08-23 08:21:41 weixin_40779727 阅读数 59
  • Erdas遥感影像处理入门实战教程(GIS思维)

    《Erdas遥感影像处理入门实战教程》以Erdas2010版本经典界面进行实战教学,设计12章内容,正式教学内容总共45课时,15个小时时长。从软件界面开始,到后的应用,适合入门级、初级、中级的人员学习、工作、教师教学参考。课程根据作者实际工作经验,以及采访学员需求,开展课程设计,实用加实战,会是你学习路上的好帮手。

    4402 人正在学习 去看看 黄晓军

一、病灶检测的指标

0 注释:
TP: 实际为真,预测为真
FP: 实际为假,预测为真(假阳性)
TN: 实际为假,预测为假
FN: 实际为真,预测为假
TP + FN = 实际的所有正例
TP + FP = 预测的所有正例

1. 准确率(precision
 precision =TPTP+FP \text { precision }=\frac{T P}{T P+F P}
预测的所有正例中,预测正确所占的比率。
2.召回率(recall)(也称为sensitivity)
recall=TPTP+FN r e c a l l=\frac{T P}{T P+F N}
预测正确的正例,占实际正例的比率。
3. 特异性(specificity)
specificity=TNTN+FP \text {specificity}=\frac{T N}{T N+F P}
预测正确的负例,占实际负例的比率。
4. F1 score
F1 score =2.11 recall +1 precision  F_{1} \text { score }=2 . \frac{1}{\frac{1}{\text { recall }}+\frac{1}{\text { precision }}}

F1 score =2. precision ×recallprecision+recall F_{1} \text { score }=2 . \frac{\text { precision } \times \text {recall}}{\text {precision}+\text {recall}}
注意: 不同的场景要选择合适的指标。如在医疗影像中,要尽可能的提高召回率(racall),宁可为错杀,不错过,避免漏诊!

二、分割性能的指标

1. Dice系数(也有称DSC)
其计算公式为
DSC=2I1I2I1+I2 D S C=\frac{2\left|I_{1} \cap I_{2}\right|}{\left|I_{1}\right|+\left|I_{2}\right|}
在这里插入图片描述
注意I1I_{1}I2I_{2}针对的是分割的区域,不是整幅图像。
程序实现思路:
可以将两幅图像变为一维的列表,从而根据计数在同样索引且为同一类别的像素数量。
(对二分类与多分类要回举一反三)

2. Jaccard distance(也有称IOU)
其计算公式为
JD=I1I2I1+I2I1I2=I1I2I1I2 J D=\frac{\left|I_{1} \cap I_{2}\right|}{\left|I_{1}\right|+\left|I_{2}\right|-\left|I_{1} \cap I_{2}\right| }=\frac{|I_{1} \cap I_{2}|}{|I_{1} \cup I_{2}|}
未完待更…

没有更多推荐了,返回首页