zl程序教程

您现在的位置是:首页 >  Java

当前栏目

AROI2021——视网膜OCT分层提取

2023-02-18 16:34:19 时间

今天将分享视网膜OCT分层提取完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、AROI2021介绍

视网膜的光学相干断层扫描 (OCT) 图像不仅提供了结构表示,而且还深入了解新生血管性年龄相关性黄斑变性 (nAMD) 中存在的病理变化。

二、AROI2021任务

OCT眼底四层分割——ILM、IPL/INL、RPE和BM。

三、AROI2021数据库

对24 名 nAMD 患者的图像进行了注释。使用 Zeiss Cirrus HD OCT 4000 设备记录黄斑 SD-OCT 体数据。每个 OCT 卷由 128 次 B 扫描组成,分辨率为 1024 x 512 像素(像素尺寸1.96 x 11.74 μm)。

对 1136 次 B 扫描(24 名患者的 B 扫描总量为 3200 次 B 扫描)标注了视网膜液和层。如果相邻的 B 扫描相似,则跳过注释。在这些流体中,有以下注释:色素上皮脱离 (PED)、视网膜下液和视网膜下高反射材料(共同标记为 SRF)和视网膜内液 (IRF)。此外,还注释了层之间的四个边界。视网膜是眼睛内部的一层组织,通常分为十层。选择了在几乎所有图像中都可以轻松确定的边界,并且这些边界也与观察到的流体的定位相关:内界膜 – ILM、内丛状层和内核层之间的边界 (IPL/INL)、视网膜色素上皮 (RPE) ) 和布鲁赫膜 (BM)。

四、技术路线

1、由于数据是以png格式存储的,首先需要将png图像拼接转换成体数据格式。

2、将图像缩放到固定大小512x256x96,然后采用z-score归一化方式进行归一化处理,将数据划分成训练集(20例)和验证集(4例),其中训练集进行10倍数据增强,包括旋转和平移操作。

3、搭建VNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是1,epoch是200,损失函数采用多类dice和ce。

4、训练结果和验证结果

5、验证集分割结果

验证集平均结果

可以看到最大的错误发生在第 3 类(RPE 和 BM 之间的表面),导致错误分割的因素是显著的类别不平衡,如下所示。

为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击https://github.com/junqiangchen/PytorchDeepLearing即可访问。由于之前都是使用tensorflow1.14的进行代码实验开发的,为了方便pytorch的朋友们也可以复现实验结果,我将tensorflow版本的代码翻译转换成pytorch版本的。

如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。