用于图像分割网络的 UNet
Unet网络理解
- 1.本文主要内容
- 1.1 网路结构
- 1.2 Overlap-tile strategy
- 1.3 数据增强
- 1.4 加权损失
- 2. 本文方法特点
- 3.使用到实际过程时的问题
- 参考资料
UNet首次在2015年MICCAI上发表,在医疗影像上分割取得了很好的效果。
医疗影像有如下特点:
- 图像语义较为简单、结构较为固定。医疗影像都是一个固定的器官成像,由于器官本身结构固定和语义信息没有特别丰富,所以高级语义信息和低级特征都显得很重要。
- 数据量少,单幅图像分辨率高。经常只能获得一百多例的数据,因此要避免模型复杂,出现过拟合。
- 多模态。例如ISLES脑梗竞赛提供了CBF,MTT,CBV,TMAX,CTP等多种模态的数据。
UNet通过数据增强很好的解决了训练数据量不足的问题,并通过网络的U型结构很好的将低级高分辨信息和高层语义信息进行了结合。
1.本文主要内容
本文设计了一种网络和训练策略来实现医学图像分割,该策略依赖于大量使用数据增强来有效的利用可标注的样本,该网络结构由捕获上下文的收缩路径和支持精确本地化的对称扩展路径组成。
1.1 网路结构
UNet基于FCN全卷积网络的基础上进行设计,包括左侧的收缩路径和右侧的扩展路径。
左侧的收缩路径由经典的卷积网络结构组成,包括重复两次的3x3卷积的使用,采用Relu激活函数,和2x2的max pooling结构。每次下采样使特征通道数加倍。
右侧的扩展路径由转置卷积进行扩展两倍,并且特征通道数减半,对收缩路径传入的特征通过裁剪边缘使两者维数相同,进行组合。在最后一层,使用1x1卷积将每个64分量特征向量映射到期望数量的类。该网络总共有23个卷积层。
1.2 Overlap-tile strategy
为了解决高分辨率图像的分割问题,提出了重叠平铺策略。此策略允许通过重叠平铺策略对任意大图像进行无缝分割。为了预测图像边界区域中的像素,通过镜像输入图像来外推缺失的上下文。此平铺策略对于将网络应用于大图像非常重要,否则分辨率将受到GPU内存的限制。
为了对黄色框中的图像进行分割,需要将蓝色框中的图像输入网络。从图一也可以看到网络的输入输出大小并不是相等的。仔细观察黄色框左上角的图像,能够发现他们是利用镜像对称得到的。
1.3 数据增强
数据增强能够有效的提高网络的不变性和稳定性,尤其对医学图像分割问题,样本较少。采用平移、旋转,灰度变形。随机弹性形变是训练分割网络的关键。我们使用随机位移向量在粗略的3x3网格上生成平滑变形。采用在收缩路径的末端采用dropout也能得到隐式的数据增强。
1.4 加权损失
为了更好的实现边界分割,对边界的像素计算的损失采用更大的权重,损失函数采用交叉熵函数。
w
(
x
)
w(x)
w(x)表示对应像素误差损失的权重,
x
x
x表示对应的像素。
w
c
(
x
)
w_c(x)
wc(x)是平衡不同样本的权重,
d
1
(
x
)
d_1(x)
d1(x),
d
2
(
x
)
d_2(x)
d2(x)表示像素点距离最近的细胞边缘的距离和距离第二近的细胞边缘的距离。距离越小,权重越大。
2. 本文方法特点
- 提出了U型的网络结构,通过收缩路径提取特征,通过扩展路径实现对像素的预测。和FCN相比,每次上采样过程只过大二倍特征尺寸,结果更精确。从收缩路径提取的更高分辨率的特征和上采样特征的结合,提高了分类精度。
- 利用弹性形变实现了数据增强。
3.使用到实际过程时的问题
- 所使用的弹性形变的数据增强方法不适合在刚性物体分割时应用。
- 所有的卷积过程都是没有加pad的,这样就会导致每做一次卷积,特征的长宽就会减少两个像素,最后网络的输出和输入大小不一样。这提高了网络的设计难度。
参考资料
https://www.zhihu.com/question/269914775?sort=created
推荐阅读
-
C++ Linux 项目推荐 - 网络多人聊天 + MySQL + Redis + Websocket + Json,用于撰写简历的 C++ 项目
-
【论文笔记】DKTNet:用于小物体检测的双键变压器网络
-
三维医学图像的翻译一致性半监督分割 阅读-摘要
-
Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏-JavaFX历史## 跟java在服务器端和web端成绩相比,桌面一直是java的软肋,于是Sun公司在2008年推出JavaFX,弥补桌面软件的缺陷,请看下图JavaFX一路走过来的改进 从上图看出,一开始推出时候,开发者需使用一种名为JavaFX Script的静态的、声明式的编程语言来开发JavaFX应用程序。因为JavaFX Script将会被编译为Java bytecode,程序员可以使用Java代码代替。 JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。 JavaFX 2.0 包含非常丰富的 UI 控件、图形和多媒体特性用于简化可视化应用的开发,WebView可直接在应用中嵌入网页;另外 2.0 版本允许使用 FXML 进行 UI 定义,这是一个脚本化基于 XML 的标识语言。 从JDK 7u6开始,JavaFx就与JDK捆绑在一起了,JavaFX团队称,下一个版本将是8.0,目前所有的工作都已经围绕8.0库进行。这是因为JavaFX将捆绑在Java 8中,因此该团队决定跳过几个版本号,迎头赶上Java 8。 ##JavaFx8的新特性 ## ###全新现代主题:Modena 新的Modena主题来替换原来的Caspian主题。不过在Application的start方法中,可以通过setUserAgentStylesheet(STYLESHEET_CASPIAN)来继续使用Caspian主题。 参考http://fxexperience.com/2013/03/modena-theme-update/ ###JavaFX 3D 在JavaFX8中提供了3D图像处理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子类),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子类),SceneAntialiasing等。Camera类也得到了更新。从JavaDoc中可以找到更多信息。 ###富文本 强化了富文本的支持 ###TreeTableView ###日期控件DatePicker 增加日期控件 ###用于 CSS 结构的公共 API
-
MPLClassifier用于分类的神经网络
-
基于图像分类网络VGG的计算机视觉(CV)研究:中草药识别实现(一)
-
使用Unet技术进行生物医学图像分割的自动学习方法
-
探讨网络流量:最大化流通与最小化分割的奥秘
-
使用Graph-Cut算法在MATLAB中实现图像目标分割的模拟实验
-
UVA1660: 电视网络的电缆电视系统剖析与最优分割研究