资源
文章代码:ITerNet
1 数据集
DRIVE:共40张,大小565✖584,具体介绍及下载:DRIVE
CHEASE_DB1:大小:999✖960,具体介绍:CHEASE_DB1
STARE:大小:700✖605,具体介绍及下载:STARE
相关的也可以去Kaggle上寻找
2 数据增强方式
包含:color, shape, brightness, and position
Image patches,这个没接触过,给个介绍:【Python】实现图片切成patch,以及有间隙的拼接代码
说和没说一样的,后期复现代码的时候回来填坑
2022.11.30回来填坑,这里的Image patches,指的是将一张大的图片切割成相同大小的多个小图片,是扩充数据集的一种方法,这里需要将图片和GT一起切割,不能只切割原始图像。这种眼底血管分割是可以切割的,因为模型学习的是血管分布,切割成小的图片时,模型也是可以学习到分割边界的;但是如果针对单一大病灶区域分割,是不能切割图片的,因为其学不到完整的病灶分割轮廓
训练时:使用128像素的补丁传入模型
测试时:使用图像补丁预测和整个图像预测
3 初始设置
Loss: sigmoid cross entropy
MiNi-UNet:三个
optimizer: 文章未说,应该是Adam
4 比较范围
比较的三个对象: UNet:,DenseBlock-UNet,Deform-UNet
常见指标比较 + Connectivity比较:
ROC比较:
ROC和AUC介绍
5 核心方法
文章重点就是利用UNet的分割结果冗余去做进一步的优化,文章中最后的N是4,意味着有三个Mini-UNet进行迭代。
第一个BaseUNet: 和原始UNet的结构是一样的,保留着其本身强劲的分割能力
第一个Mini-Unet: 输入包括两个部分,一个是BaseUNet倒数第二层的输出,一个是BaseUNet第二层的输出
后两个Mini-Unet: 输入包括三个部分,一个是BaseUNet倒数第二层的输出,一个是BaseUNet第二层的输出,最后一个就是前一层的Mini-UNet倒数第二层的输出,将三个输入使用cat进行通道链接,同时使用1*1卷进进行通道降维。
模型整体输出: 是最后一个Mini-UNet的输出
6 源码
后期真正开始进行实验的时候,可以作为一个Baseline,等用到了再复现吧!