Press "Enter" to skip to content

图像分割中的深度学习:U-Net 体系结构

 

图源:https://unsplash.com/photos/6pPuLl_2ddk

 

“我的生活似乎是一连串的意外。但回首往事,我发现了一种模式。”——Benoit Mandelbrot(https://scholar.google.com/citations?user=vZA2pjwAAAAJ&hl=en)

 

U-Net是一种卷积神经网络(CNN)方法,由Olaf Ronneberger、Phillip Fischer和Thomas Brox于2015年首次提出,它可以更好的分割生物医学图像。

 

我们将要探讨的论文是U-Net: 用于生物医学图像分割的卷积网络(https://arxiv.org/pdf/1505.04597.pdf)。

 

:question: 为什幺需要分割? U-Net能提供什幺?

 

一般说来,分割(https://www.fritz.ai/image-segmentation/)是将一幅图像分割为若干个部分的过程,这种图像处理过程可以得到图像中的目标或者纹理, 常常被用于遥感影像或者肿瘤的检测应用中。

 

目前,已经有了很多传统方法可以实现这一过程(https://www.analyticsvidhya.com/blog/2019/04/introduction-image-segmentation-techniques-python/),例如点、线和边缘检测方法,阈值分割法,基于区域的聚类,基于像素的聚类,形态学的方法等等。同时,目前也出现了很多利用卷积神经网络进行分割的方法,这些方法已成为解决图像分割中更高级任务中不可或缺的方法。在这篇文章中,我们将仔细看看一个这样的架构:u-net。

 

深度学习是需要数据集来训练模型的。但是对于数据的获取有一定难度。对于某一个对象而言,我们并没有足够的数据进行训练。在这种情况下,往往需要花费时间、金钱,最重要的是硬件设备。

 

例如,我们无法使用手机上的摄像头来收集生物医学图像。因此,我们需要更系统的方法来收集数据。此外,在数据标记过程中,仅仅依靠开发人员/工程师是不够的 , 这需要大量具备专业知识和经验的人员对相关图像进行分类,对于医疗诊断等高度专业化的领域尤其如此。

 

另一个关键点是通过类标签在经典卷积神经网络中提供有关一般图像的教育。但是,有些问题需要了解基于像素的方法的局部或位置。在需要敏感方法的领域(如生物医学或国防领域)中,我们需要每个像素的类信息。

 

:heavy_check_mark:U-Net在架构设计和其他利用卷积神经网络基于像素的图像分割方面更成功,它甚至对有限数据集的图像更有效。下面,我们首先通过生物医学图像分析来实现该体系结构。

 

  :mag_right: 差异使 U-Net 与众不同!

 

众所周知,我们在整个卷积神经网络( 即池化层 )中应用的高度和宽度的 降维 过程在模型的后半部分以 增维 的形式应用。

 

 

表示法:最大和平均池(https://www.quora.com/What-is-max-pooling-in-convolutional-neural-networks)

 

池化层通过保持输入矩阵的通道数不变来减少高度和宽度信息。计算是用于降低复杂性的步骤(图像矩阵的每个元素称为像素)。总之,池层指的是表示像素组的像素。

 

注意: 池化层可以使用不同的方法,包括最大、平均或中间层。

 

这些层旨在提高输出的分辨率。对于定位,采样输出与整个模型的高分辨率特征相结合。然后,序列卷积层旨在基于该信息产生更精确的输出。

 

 

U-Net模型结构

 

U-Net的命名源自它的结构:如上图所示,它的网络结构可视化的结果很像一个字母U。输入的是原始图像,通过网络结构后得到的是分割后的图像。最特殊的部分是结构的后半部分,该网络结构没有全连接层,只采用了卷积层,每个标准的卷积层后面都紧跟着一个Relu激活函数层。

 

U-Net 由收缩路径(左侧)和扩展路径(右侧)组成!

 

:lollipop: 你可以在这里详细了解 激活功能 :https://towardsdatascience.com/comparison-of-activation-functions-for-deep-neural-networks-706ac4284c8a

 

 

 

 

U-Net中的卷积核反卷积的过程

 

图像四周的边边界区域中的像素是对称地添加,以便可以实现连续分割图像。使用这种策略,可以将图像完全分割。填充(添加像素)方法对于将U-Net模型应用于大图像上具有重要意义;否则,分辨率将受到 GPU 内存容量的限制。下图显示了我提到的镜像填充和分割的结果。

 

 

重叠策略

 

* 想把你手机里的照片/视频替换背景,创建贴纸和绿屏效果,以及更多?Fritz 图像分割方法将使这项工作变得简单,你可以使用免费的 Fritz 帐户试一试(https://www.fritz.ai/features/image-segmentation.html?utm_campaign=image-segmentation2&utm_source=heartbeat)。

 

  :whale2: U-Net和自编码器结构上的区别

 

为了帮助理解UNet在结构上的特殊性,我们将传统的分割方法自编码器与Unet进行一个结构上的比较。

 

在传统的自动编码器结构中(http://proceedings.mlr.press/v27/baldi12a/baldi12a.pdf),输入信息的大小逐层递减。结构中的编码器部分完成后,紧接着是解码器部分。

 

在这部分,我们将学习的特征的线性表达,特征的大小也是逐渐增大, 到了解码器的末尾,输出图像大小等于输入图像的大小。

 

这种网络结构是保持输出与输入大小一致的理想选择,但它有一个问题,这个过程线性压缩,瓶颈在于无法传递所有特征。

 

 

自编码器的模型

 

这就是 U-Net 的不同之处。U-Net在解码器部分(网络的第二部分)采用反卷积,这种结构可以克服自编码器在特征传递过程中产生的特征丢失问题。

 

  :swimmer|type_1_2: 继续学习U-Net结构

 

我们回到生物医学图像分割的案例。生物医学图像中的组织的影像最常见的变化是变形,我们可以通过模拟影像变形。通过弹性变形方法对训练影像进行变形,可以使学习过程更加成功,这有助于我们扩充数据集。

 

 

弹性变形的可视化表示

 

此外,当同一类别的某些部分相互接触时,是很难确定边界的。因此,建议使用 loss 函数中具有较大权重的值,同时首先从背景中分离要分割的信息。

 

 

由DIC(差分干涉对比度)显微镜记录的HeLa细胞。a) 原始图像 b) 标记的分割结果,用不同的颜色标识 HeLa 细胞的不同个体。c) 创建的分割蒙版(黑白)d) 以像素为单位的权重损失图,以便网络学习到边缘像素。

 

  :chart_with_upwards_trend: 损失函数

 

损失值可以通过标准二进制交叉熵和 Dice 损失计算,这是评估生物医学图像分割成功与否的常用性能标准。

 

 

 

二进制交叉熵和 Dice 损失

 

 

交并比(IoU) 是基于像素的评价标准,通常用于评估分割性能。

 

考虑了目标矩阵与结果矩阵之间的不同像素比。此指标还与 Dice计算有关。

 

 

可视化IOU表示

 

 

输入的图像和标签

 

下面我们来看看与其他方法相比,U-Net在EM图像分割(http://brainiac2.mit.edu/isbi_challenge/)方面的表现:

 

 

框线处为 U-Net

 

* U-Net 架构的成功已经在不同的数据集上注册。 你可以在这里下载训练模型(https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/)!

 

PHC-U373和DIC HELA数据集的结果以及与先前研究的比较:

 

 

 

U-Net 在Phc-U373(a-b)和DIC-Hela(c-d)数据集上的分割成功

 

当然,分割不仅仅用于医学图像;地球科学或卫星图像的遥感系统也使用分割,自主车辆系统也是如此。毕竟,到处都有图案。

 

:headphones:“Pattern”- 听着这首歌,让我们继续往下看 :sweat_smile:

 

(https://open.spotify.com/track/0kA5wK89nsYHQ22UKzcFGv)

 

  :volcano:  TGS盐鉴定挑战

 

在地球的各个地区,地表下都有大量的油气和盐层。不幸的是,很难知道大型盐矿藏在哪里。

 

专业的地震成像需要专家对盐体进行解释。这会导致非常主观的、可变的预测。为了生成最精确的地震图像和三维成像,TGS(地质学数据公司)希望Kaggle的机器学习社区能够创建一种算法,自动准确地确定地下目标是否为盐。

 

下面是一些成功的 U-Net 方法的例子:

 

 

TGS盐鉴定挑战(https://www.kaggle.com/c/tgs-salt-identification-challenge/kernels)

 

 

盐鉴定挑战

 

  :earth_americas: 地图挑战-利用分割构建缺失地图

 

利用卫星影像确定地图区域是另一个 U-Net 应用领域。事实上,可以说,随着这一领域的发展而出现的应用将极大地促进测绘和环境工程师的工作。

 

这种方法不仅适用于国防工业,也适用于城市区域规划。例如,在建筑物检测竞赛中(竞赛详情可在此处找到:https://www.crowdai.org/challenges/mapping-challenge),平均精度为 0.943 ,平均灵敏度为 0.954 。你可以在这里看到这个成功研究的 U-Net 模型:https://github.com/neptune-ml/open-solution-mapping-challenge。

 

 

 

地图绘制挑战的结果-neptune.ml(https://github.com/neptune-ml/open-solution-mapping-challenge)

 

 

  :link: U-Net 对其他深度学习方法的启示

 

 

U-Net 启发了不同体系结构以及其他计算机视觉深度学习模型的结合。

 

 

Görsel: Giphy(GIF:http://gph.is/2zQ4UHt,YouTube:http://youtube.com/FallonTonight)

 

例如,ResNet的ResNet(ROR,https://arxiv.org/pdf/1608.02908.pdf)概念就是其中之一。该结构可定义为 U-Net 体系结构的后半部分,适用于经典剩余网络中的跳跃连接。

 

 

原始ResNet(左)- ROR方法(右)

 

从经典的resnet模型架构可以看出,每个蓝色块都有一个跳过连接。在ror方法中,通过前面的连接将新的连接从输入添加到输出。在resnet中有不同版本的ror。如果你想了解细节,可以看看这篇文章末尾的各种参考资料。

 

ROR-3: 原始 ResNet (https://towardsdatascience.com/review-resnet-winner-of-ilsvrc-2015-image-classification-localization-detection-e39402bfa5d8)使用 m=3 表示 ROR

 

Pre-ROR-3: ROR,在激活   ResNet(https://towardsdatascience.com/resnet-with-identity-mapping-over-1000-layers-reached-image-classification-bb50a42af03e)  m=3 前 使用

 

ROR-3-WRN: ROR ,m=3,并使用 WRN(https://towardsdatascience.com/review-wrns-wide-residual-networks-image-classification-d3feb3fb2004)

 

  结论

 

:warning:分割图像可能是一个具有挑战性的问题,尤其是在缺乏足够高分辨率和低分辨率数据的情况下。这是一个可以通过评估不同的、当前的和旧的方法来开发新方法的领域。

 

记住,生物医学成像并不是唯一的用例!

 

分割的其他应用领域包括地质学、地球物理学、环境工程、制图和遥感,包括各种自主工具。

 

:alien:你也可以关注我的github(https://github.com/ayyucekizrak)和twitter(https://twitter.com/ayyucekizrak)获取更多内容!

 

查看我在heartbeat上发表的其他博文:https://heartbeat.fritz.ai/ 

 

  :zap:️ 参考

 

U-Net: Convolutional Networks for Biomedical Image Segmentation(https://arxiv.org/pdf/1505.04597.pdf)

 

ISBI Challenge: Segmentation of neuronal structures in EM stacks(http://brainiac2.mit.edu/isbi_challenge/home)

 

5 Minute Teaser Presentation of the U-net(https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/)

 

Autoencoders, Unsupervised Learning, and Deep Architectures(http://proceedings.mlr.press/v27/baldi12a/baldi12a.pdf)

 

Pattern Recognition and Image Processing(https://lmb.informatik.uni-freiburg.de/index.php)

 

Medical-Imaging-Semantic-Segmentation(https://github.com/advaitsave/Medical-Imaging-Semantic-Segmentation)

 

Open Solution to the Mapping Challenge Competition(https://github.com/neptune-ml/open-solution-mapping-challenge)

 

Residual Networks of Residual Networks: Multilevel Residual Networks(https://arxiv.org/pdf/1608.02908.pdf)

 

Evaluating image segmentation models(https://www.jeremyjordan.me/evaluating-image-segmentation-models/)

 

via:https://heartbeat.fritz.ai/deep-learning-for-image-segmentation-u-net-architecture-ff17f6e4c1cf

 

原标题 | Deep Learning for Image Segmentation: U-Net Architecture

作者 | Ayyüce Kızrak

翻译 |  天字一号、尼古拉斯赵四、邺调

审校 | 鸢尾、唐里、Pita

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注