医学肝分割论文H-DenseUnet解析

时间:2024-05-31 20:50:04

1 基本说明

本文对H-DenseUnet进行了解析,包括网络结构、数据处理、训练测试过程及结果分析。

2 网络结构

网络主要有4个模块组成:ResNet轮廓粗提取、2D DenseUnet提取切片内特征、3D DenseUnet提取切片间特征、HFF层2D和3D特征融合。网络结构图如图2.1。

医学肝分割论文H-DenseUnet解析

 

      2D和3D的DenseUnet首先经过由DenseNet Block构成的Unet结构提取切片内部和切片空间特征,然后将两者特征融合并经由HFF层预测最终结果。网络结构解析如表2.1,其中对每一层的网络操作和数据维度进行了计算。表2.2对Dense block进行了描述,以2D DenseUnet中dense block1为例。

表2.1 网络结构解析

ResNet粗轮廓提取部分

描述

输入

输出

参数量

volumes数据

224*224*12

---

---

2D ResNet提取每张切片肝粗糙轮廓

224*224*12

224*224*12

---

transformation process(处理成12组三张连续的切片)

224*224*12

224*224*3

---

2D DenseUnet部分

描述

输入

输出

参数量

input

224*224*3

---

---

conv1:7*7,#C 96,#S 2

224*224*3

112*112*96

14208

max pool: 3*3, #S 2

112*112*96

56*56*96

---

dense block1:

56*56*96

56*56*384

747936

transition layer1: 1*1 conv,2*2 aver pool

56*56*384

28*28*192

73920

dense block2:

28*28*192

28*28*768

2048832

transition layer2:1*1 conv,2*2 aver pool

28*28*768

14*14*384

295296

dense block3:

14*14*384

14*14*2112

11454912

transition layer3:1*1 conv,2*2 aver pool

14*14*2112

7*7*1056

2231328

dense block4:

7*7*1056

7*7*2208

9401472

upsampling layer1:2*2 upsample

7*7*2208

14*14*2208

---

sum with dense block3

---

14*14*2112

---

conv:3*3,#C 768

14*14*2112

14*14*768

14598912

upsampling layer2:2*2 upsample

14*14*768

28*28*768

---

sum with dense block2

---

28*28*768

---

conv:3*3,#C 384

28*28*768

28*28*384

2654592

upsampling layer3:2*2 upsample

28*28*384

56*56*384

---

sum with dense block1

---

56*56*384

---

conv:3*3,#C 96

56*56*384

56*56*96

331872

upsampling layer4:2*2 upsample

56*56*96

112*112*96

---

sum with conv1

---

112*112*96

---

conv:3*3,#C 96

112*112*96

112*112*96

83040

upsampling layer5:2*2 upsample

112*112*96

224*224*96

---

conv:3*3,#C 64,即文中的X2d

224*224*96

224*224*64

55360

conv:1*1,#C 3

224*224*64

224*224*3

195

总计参数量

46978875

3D DenseUnet 部分

描述

输入

输出

参数量

2D DenseUnet输出由连续3张切片转化为单张的volume形式(12组)

12*224*224*3

224*224*12*1

---

与原始数据提取过粗轮廓volume通道连接

---

224*224*12*2

---

conv1:7*7*7,#C 96,#S 2

224*224*12*2

112*112*6*96

65952

max pool: 3*3*3, #S 2

112*112*6*96

56*56*3*96

---

dense block1:

56*56*3*96

56*56*3*192

381408

transition layer1: 1*1*1 conv,2*2*1 aver pool

56*56*3*192

28*28*3*96

18528

dense block2:

28*28*3*96

28*28*3*224

516736

transition layer2: 1*1*1 conv,2*2*1 aver pool

28*28*3*224

14*14*3*112

25200

dense block3:

14*14*3*112

14*14*3*496

1746816

transition layer3: 1*1*1 conv,2*2*1 aver pool

14*14*3*496

7*7*3*248

123256

dense block4:

7*7*3*248

7*7*3*504

1099008

upsampling layer1:2*2*1 upsample,

7*7*3*504

14*14*3*504

---

sum with dense block3

---

14*14*3*496

---

conv:3*3*3,#C 504

14*14*3*496

14*14*3*504

6750072

upsampling layer2:2*2*1 upsample,

14*14*3*504

28*28*3*504

---

sum with dense block2

---

28*28*3*224

---

conv:3*3*3,#C 224

28*28*3*224

28*28*3*224

1354976

upsampling layer3:2*2*1 upsample,

28*28*3*224

56*56*3*224

---

sum with dense block1

---

56*56*3*192

---

conv:3*3*3,#C 192

56*56*3*192

56*56*3*192

995520

upsampling layer4:2*2*2 upsample,

56*56*3*192

112*112*6*192

---

sum with conv1

---

112*112*6*96

---

conv:3*3*3,#C 96

112*112*6*96

112*112*6*96

248928

upsampling layer5:2*2*2 upsample

112*112*6*96

224*224*12*96

---

conv:3*3*3,#C 64,即文中的X3d

224*224*12*96

224*224*12*64

165952

conv:1*1*1,#C 3

224*224*12*64

224*224*12*3

195

总计参数量

13492547

HFF layer部分

描述

输入

输出

参数量

2D DenseUnet upsampling layer5 层后的X2d转为volumes结构X’2d

---

224*224*12*64

---

3D DenseUnet upsampling layer5后X3d

---

224*224*12*64

---

X’2d和X3d sum求和

---

224*224*12*64

---

通过1*1*1卷积或者其他same卷积

224*224*12*64

224*224*12*3

---

 

表2.2 Dense block网络结构

2D DenseUnet 中dense block结构

描述

输入

输出

参数量

stage1输入

56*56*96

---

---

conv1:1*1,#C192,#S 2,same

56*56*96

56*56*192

18624

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1 conv2输出通道结合

---

56*56*(96+48)

= 56*56*144

---

stage2输入

56*56*144

---

---

con1v:1*1,#C192,#S 2,same

56*56*144

56*56*192

27840

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1、stage2 conv2输出通道结合

---

56*56*(96+48*2)

=56*56*192

---

stage3输入

56*56*192

---

---

conv1:1*1,#C192,#S 2,same

56*56*192

56*56*192

37056

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1、stage2、stage3 conv2输出通道结合

---

56*56*(96+48*3)

=56*56*240

---

stage4输入

56*56*240

---

---

conv1:1*1,#C192,#S 2,same

56*56*240

56*56*192

46272

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1、stage2、stage3、stage4 conv2输出通道结合

---

56*56*(96+48*4)

=56*56*288

---

stage5输入

56*56*288

---

---

conv1:1*1,#C192,#S 2,same

56*56*288

56*56*192

55488

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1、stage2、stage3、stage4、stage5输出通道结合

---

56*56*(96+48*5)

=56*56*336

---

stage6输入

56*56*336

---

---

conv1:1*1,#C192,#S 2,same

56*56*336

56*56*192

64704

conv2:3*3,#C48,#S 2,same

56*56*192

56*56*48

82992

concat:将输出与stage1、stage2、stage3、stage4、stage5、stage6 conv2输出通道结合

---

56*56*(96+48*6)

=56*56*384

---

总计参数量

747936

 

 

 

3 数据处理

 

 

肝切片数据使用LiTS的数据集,总共包含131例和70例病人的数据用于训练和测试,每张切片的分辨率从0.55到1.0毫米,切片厚度从0.45到6.0毫米。数据处理时,首先将数据的范围进行规定,去除无关的数据,文章中将范围设定为[-200,250]。然后根据任务的不同,数据的处理又有一些区别,粗轮廓的提取,将数据的分辨率调整为0.69*0.69*1.0;肝病变的分割时,考虑到病变较小,人工处理可能对切片造成影响,所以采用原始的切片分辨率。训练过程还增加了一些数据增强策略,数据尺度变换和镜像对称等。

4 训练测试过程

优化函数使用预测结果的加权交叉熵函数。

 

4.1 训练过程

1)       2D粗分割ResNet网络的训练,按照上述数据处理的结果,标签为肝真实分割数据,损失函数为上式;

2)       2D DenseUnet训练:encoder部分采用DenseNet预训练模型,decoder部分随机初始化,首先不增加Unet连接进行训练几代,然后增加Unet连接去优化模型,损失函数为上式;

3)       3D DenseUnet训练:所有参数随机初始化,采用上式约束进行训练;

4)       联合训练:采用下述的约束函数进行联合训练。

 

4.2 测试过程

首先通过ResNet得到肝部粗轮廓,然后通过H-DenseUnet得到肝和病变轮廓。肝轮廓后处理:通过后处理去除预测结果中的空洞;肝病变后处理:将肝轮廓外部的预测病变去除。

5 结果分析

1)     使用预训练模型与否对结果的影响,使用预训练模型可以得到比较优秀的模型。

2)     单独使用2D DenseUnet和3D DenseUnet对结果的影响,训练速度和效果上3D模型都较2D模型差,而且2D模型包含预训练模型。

3)     2D DenseNet和2D DenseUnet的比较,说明Unet在分割网络中是有效果的。

4)     结果2D和3D的H-DenseUnet不但训练过程还是测试结果,都是所有方法中最好的。