OCTA数据集(Rose)+ OCTA-Net
ROSE: A Retinal OCT-Angiography(视网膜眼底相干光层析血管成像术) Vessel Segmentation(血管分割) Dataset and New Model
论文:ROSE: A Retinal OCT-Angiography Vessel Segmentation Dataset and New Model
代码和数据集:ROSE1&2 - 医疗影像/眼科影像团队 - imed.nimte.ac.cn
目录
一、摘要
二、创新点
三、数据集
A. ROSE-1
B. ROSE-2
四、Method
A. Coarse Stage: Split-based Coarse Segmentation Module(粗分割模块)
1. SCS模块概述(两个版本)
2. ResNeSt模块
3. 像素级分割和中心线级分割网络
B. Fine Stage: Split-based Refined Segmentation Module(精细化分割模块)
五、实验
六、结论
一、摘要
研究背景:摘要-光学相干断层扫描血管造影术(OCTA)是一种非侵入性成像技术,已越来越多地用于以毛细血管水平分辨率对视网膜血管进行成像。然而,由于诸如低毛细血管可见性和高血管复杂性等各种挑战,OCTA中视网膜血管的自动分割一直研究不足,尽管其在理解许多视觉相关疾病方面具有重要意义。
研究问题:此外,目前还没有公开可用的OCTA数据集,其中包含人工分级的血管,用于训练和验证分割算法。
主要工作:为了解决这些问题,在视网膜图像分析领域:
1. 首次构建了一个专用的视网膜OCTA分割数据集(ROSE),该数据集由229张OCTA图像组成,其中包含中心线水平或像素水平的血管注释。
2. 其次,我们提出了一种新的基于分割的OCTA图像粗到细血管分割网络(OCTA-Net),能够分别检测粗细血管。
3. 在OCTA-Net中,首先使用基于分割的粗分割模块来产生血管的初步置信图,然后使用基于分割的细化分割模块来优化视网膜微血管的形状/轮廓。
研究成果:我们对最先进的血管分割模型和OCTANet在构建的ROSE数据集上进行了全面评估。实验结果表明,我们的OCTA-Net在OCTA中的血管分割性能优于传统和其他深度学习方法。此外,我们还提供了分段微血管的分形维数分析,统计分析表明健康对照组和阿尔茨海默病组之间存在显著差异。这一结果表明,视网膜微血管的分析可能为研究各种神经退行性疾病提供一种新的方案。
二、创新点
1. 在视网膜图像分析领域,首次建立了一个公开可用的视网膜OCTA数据集,并对视网膜微血管网络进行了精确的手动注释,以促进社区的相关研究。
2. 提出了一种新的基于分裂的粗到细血管分割网络,用于OCTA中的血管分割,旨在分别检测厚血管和薄血管。在该方法中,基于分裂的粗分割(SCS)模块首先用于产生血管的初步置信图,然后使用基于分割的细化分割(SRS)模块来优化更精细的血管,以期获得更准确的整体分割结果。
3. 对OCTA微血管分割给予了全面的评估/基准测试,包括定量和定性。比较分析表明,建议的OCTA-Net工程鲁棒性不同类型的视网膜图像,并产生准确的血管分割。
三、数据集
A. ROSE-1
从上到下分别是浅层血管(SVC)、深层血管(DVC)和浅 + 深层血管(SVC+DVC),从左至右:面、中心线级标签和像素级标签。
受试人群:ROSE-1集由来自39名受试者(包括26名阿尔茨海默病(AD)患者和13名健康对照)的总计117张OCTA图像组成。AD组的平均年龄为68.4 ± 7.4岁,对照组的平均年龄为63.0 ± 10.2岁。患有已知眼部疾病(如青光眼、年龄相关性黄斑变性、高度近视等)和已知全身性疾病(如糖尿病患者被排除在本研究之外)。AD的诊断基于NINCDSADRDA标准,参与者未接受PET成像或腰椎穿刺以评估生物标志物状态。
设备配置:所有OCTA扫描均由配备AngioVue软件的RTVue XR Avanti SD-OCT系统(Optovue,USA)捕获,图像分辨率为304 × 304像素。扫描面积为3 × 3 mm^2,以中心凹为中心,在中心凹中心周围直径为0.6 mm-2.5 mm的环形区域内。
标注种类:1. 中心线级标注 ,2. 像素级标注。
B. ROSE-2
对于ROSE 2,只有中心线在单个像素级别进行注释。
采集对象和设配信息:ROSE-2子集包含从112只眼睛拍摄的总共112张OCTA图像,由具有Spectralis软件的Heidelberg OCT 2系统(Heidelberg Engineering,Heidelberg,德国)采集。这些图像来自患有各种黄斑疾病的眼睛。
采集细节:该数据集中的所有图像均为中心凹3×3 mm^2 区域内SVC的正面血管造影片。这些OCTA图像由512 × 512次重复A扫描重建,采用Heidelberg自动真实的(ART)和Trutrack系统来减少伪影和噪声。将每张图像调整大小为840 × 840像素的灰度图像。由经验丰富的眼科医生使用Matlab编写的内部程序(Mathworks R2018,Natwick)手动追踪所有可见的视网膜血管。
四、Method
OCTA-Net网络的架构,OCTA-Net主要由SCS模块(粗分割)和SRS模块(细化分割)构成,如下图:
A. Coarse Stage: Split-based Coarse Segmentation Module(粗分割模块)
粗阶段:基于分割的粗分割模块(SCS模块),主要由编码器和解码器构成,其中编码器中每个层主要由ResNeSt模块 + Maxpool构成,解码器中每个层主要由Upsample + ResNeSt模块构成,如下图所示:
1. SCS模块概述(两个版本)
版本一: 由于ROSE-1数据集中每个OCTA图像都包含了像素级和中心线级血管标注,所设计的粗分割(SCS)模块包括一个部分共享编码器和两个解码器分支,以平衡像素级和中心线级血管信息两者的重要性。如上图所示。
版本二: 对于ROSE-2数据集和ROSE-1数据集中深层血管(DVC),所设计的SCS模块只包括一个编码器和一个解码器(与像素级血管分割相同的架构),因为它们只有中心线级别的标注。
2. ResNeSt模块
ResNeSt模块的详细结构,如图所示:
目的: ResNeSt块的主要目的是将特征图视为一系列不同的特征组,然后对这些组应用通道级注意力。
过程:将输入分成两个cardinal组,分别送入两个结构相同的cardinal模块。在每个cardinal模块中,cardinal组被进一步等分并输入到两个并行分支。每个分支由1×1和3×3卷积层组成,然后是批量归一化(BN)和ReLU层,并输出大小为H x W x C/4的特征图。再馈入split注意力模块(其实就是sk模块)以整合来自两个分支的这些特征图,如图B所示。
1. cardinal组是一个由特征图 X 等分为大小H x W x C/2的特征图。
2. cardinal模块是一个由双分支(多个卷积层) + split注意力模块组成的模块。
3. 像素级分割和中心线级分割网络
(1)像素级的血管分割网络
网络结构:是一个 u 形网络,包括 5 个编码器层和对称的解码器层。
(2)中心线的血管分割网络
网络结构:在主干的第三编码器层之后,附加几个ResNeSt块,然后是上采样层,作为中心线级血管分割网络的解码器。最后,解码器的输出由一个具有Sigmoid函数的1×1卷积层处理,以实现中心线级分割图。(较为浅的U型结构)
设计出发点:1. 一方面,与像素级标注相比,中心线级血管标注旨在对对比度差、拓扑结构更复杂、直径相对较小的区域进行血管分级。更深的架构可能不利于更密切地关注低级别特征,这对于中心线级别血管分割具有重要意义。
2. 另一方面,由于两种类型的血管注释之间的空间依赖性,像素级和中心线级血管分割可以在特征提取之后进行共享特征。
B. Fine Stage: Split-based Refined Segmentation Module(精细化分割模块)
目的:为了进一步恢复小血管的连续细节,引入了精细模块,以自适应地细化粗阶段的血管预测结果。
过程:为了完全整合来自SCS模块的像素级和中心线级血管信息,首先将预测的像素级和中心线级血管图以及原始OCTA图像(沿通道方向)连接为SRS模块的输入。然后,通过一个包括三个卷积层的迷你网络,为像素级和中心线级图的所有位置产生归一化的m×m局部传播系数图。将像素级和中心线级图的自适应传播系数与原图分别进行自适应融合(逐元素相乘??),再从两个结果图中选择较大的值,得到细化的像素级图和中心线级图,最后,细化的像素级图和中心线级图合并成完整的血管分割图。产生归一化的m×m局部传播系数图,公式定义如下:
其中,是其邻居p在位置i处的置信度值,并且m×m是propagation neighbors的大小,
表示位置i处的局部传播系数向量。
自适应融合的定义如下:
其中是来自SCS模块的位置i处的邻居p的置信向量,并且
是位置i处的最终预测向量。
模块中的迷你网络每个卷积层具有3 × 3内核,用于从粗阶段细化像素级映射。此外,一个额外的3 × 3卷积层被附加到迷你网络的第二层,以细化粗阶段的中心线级别映射。在每个卷积层之后采用BN和ReLU层。
五、实验
损失函数:对于粗化阶段,取均方误差(MSE)作为损失函数,对于精细阶段,取Dice系数损失作为损失函数。
训练配置:初始学习率为 0.0005,批量大小为 2,权重衰减为 0.0001 的 Adam 优化。
评价指标:ROC曲线下面积(AUC),灵敏度(SEN),特异性(Specificity),精准度(ACC),Kappa得分,G-mean评分,dice系数。
对比网络:在ROSE-1和ROSE 2上本文提出方法与其他最先进的分割方法进行了比较,包括三种传统方法:无限周长活动轮廓(IPAC),可训练COSFIRE滤波器和基于曲波去噪的最佳定向通量增强(COOF),用于检测具有不规则和振荡边界的血管的有效性;六种深度学习方法:U-Net,ResU-Net,CE-Net,DUNet,CS-Net和三级网络。
在ROSE-1中SVC层上,OCTA-Net达到了最优。在ROSE-1中DVC层上,但所提出的网络优于其他所有比较方法,kappa和Dice分别增加了约12.0%和11.9%,FDR比CS-Net减少了约13.2%。在ROSE-1中SVC + DVC造影上,所提出的方法实现了总体上最佳的性能,FDR分数除外。在ROSE-2数据集上,提出的方法分别获得了最佳的AUC、ACC、Kappa和Dice。
所提出的分割方法的好处可以从代表性区域(绿色斑块)观察到。从目视检查中可以清楚地看出,提出的方法已经识别出更完整和更薄的血管,特别是在ROSE-1子集中(以紫色显示)。
六、结论
1. 本文提出了一种新的视网膜OCTA分割数据集(ROSE)数据集,其中包含两个子集ROSE-1和ROSE-2拥有中心线水平或像素水平标注。
2. 本文提出了一种新的两阶段框架,用于OCTA图像中的血管分割。在粗分割阶段,设计了基于分割的粗分割(SCS)模块,ResNeSt块被用作框架的主干。在精细阶段,基于分裂的精细分割(SRS)模块,用以改善血管分割结果。
3. 在ROSE数据集上的实验结果表明,提出的血管分割方法优于其他最先进的方法。
相关文章:

OCTA数据集(Rose)+ OCTA-Net
ROSE: A Retinal OCT-Angiography(视网膜眼底相干光层析血管成像术) Vessel Segmentation(血管分割) Dataset and New Model 论文:ROSE: A Retinal OCT-Angiography Vessel Segmentation Dataset and New Model 代码和数据集:ROSE1&2 - 医疗影像/眼…...

java Spring Boot 手动启动热部署
好 接下来 我们讲一个对开发非常重要的东西 热部署 因为 我们在开发过程中总会希望快点看到效果 或者 你的企业项目一般很大很复杂,重启是一件非常麻烦的事 或者你在和前端同事联调,有一点小问题 你改完就要重启 前端还得等你,非常不友好 那…...

Autosar诊断实战系列20-UDS首帧数据接收及流控帧发送代码级分析
本文框架 前言1. 长帧数据的首帧接收2. 首帧数据的处理及流控帧发送2.1 首帧数据的处理2.2 流控帧数据的发送前言 在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/CanTp/Fim模块配置开发及注意事项,诊断与Bs…...
C/C++ 数据结构 - 队列
1.队列 https://blog.csdn.net/LiuBo_01/article/details/80412290 1 #include <stdio.h>2 #include <stdlib.h>3 4 typedef struct Node5 {6 int data;7 struct Node* next;8 }N;9 10 typedef struct11 {12 N* front;13 N* rear;14 }Q;15 16 //…...

免杀对抗-DLL劫持免杀
C&Py-DLL劫持-语言-调用加载 1.使用visual studio创建项目 2.将文件名重命名为.c后缀 3.将如下加载器代码生成dll文件 加载器代码: #include "pch.h" #include <Windows.h> #include <stdio.h> #include <string.h>#pragma comment…...
Anaconda添加channels后出现unexpected urllib3 DEBUG logging from conda-build
1.问题描述 anaconda更新之后添加channels后出现bug: (base) ~/zlib-feedstock % conda build recipe 2>&1 | tee out ... INFO:conda_build.metadata:Attempting to finalize metadata for libzlib DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1):…...
python 将二维数组的数据保存到csv文件中
import csv# 将数据保存为有标题(第一行为标题)的csv文档 lst [[日期, 最高气温, 最低气温, 天气, 风向],[2022-10-01 星期六, 34℃, 25℃, 雾, 东风 1级],[2022-10-02 星期日, 37℃, 26℃, 晴, 东南风 1级],[2022-10-03 星期一, 38℃, 24℃, 晴, 南风 1级],[2022-10-04 星期二…...

UGUI交互组件Button
一.初识Button对象 从菜单中创建Button对象,Button的文本由子节点Text对象显示,Button对象的组件除了基础组件外,还有Image用来显示Button常规态的图片,还有Button组件用来控制点击过渡效果和点击事件的响应。 二.Button组件的属…...

认知智能最新研究成果
声明:以下内容仅代表个人对现象和本质探索,不代表对学术成果评价。曾有幸和马文明斯基的学生段老师和方老师一起讨论过人工智能问题。随着自己对问题进一步理解,刚好18年左右开始接触认知智能理论核心认知计算部分。 第一:算法是一…...

Armv8/Armv9 Cache知识大纲分享--思维导图
关键词:cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CC…...

如何使用百度“云一朵”来分析PDF文件
PDF 文件是一种常见的文件格式,用于存储文档、图像和其他内容。在许多情况下,我们需要对 PDF 文件进行分析,以提取其中的信息。百度“云一朵”提供了一个 PDF 分析 API,可以帮助我们轻松地对 PDF 文件进行分析。 在本博客文章中&…...

IIS解决上传文件大小限制
IIS解决上传文件大小限制 目的:通过配置文件和IIS来解决服务器对上传文件大小的限制 1:修改配置文件(默认为4M 值的大小根据自己情况进行修改) <httpRuntime maxRequestLength"2048000" /> 2:修改IIS配…...

多源最短路径的原理及C++实现
时间复杂度 O(n3),n是端点数。 核心代码 template<class T, T INF 1000 * 1000 * 1000> class CNeiBoMat { public: CNeiBoMat(int n, const vector<vector<int>>& edges,bool bDirectfalse,bool b1Base false) { m_vMat.assign(n, vector<…...

JMeter性能测试
性能测试前言 老师开局一句话:性能测试和你会不会JMeter一点关系没有…… 作者坚持技多不压身的原则,还是多学一点JMeter吧,看老师到底要怎么讲下去,什么并发量、吞吐量啥的…… 性能测试的核心思想:在于创造大量并发去…...

Cocos Creator3.8 实战问题(四)巧用九宫格图像拉伸
一、为什么要使用九宫格图像拉伸 相信做过前端的同学都知道,ui (图片)资源对包体大小和内存都有非常直接的影响。 通常ui 资源都是图片,也是最占资源量的资源类型,游戏中的ui 资源还是人机交互的最重要的部分ÿ…...

Linux shell编程学习笔记7:只读变量
在编程过程中,我们经常会使用到一些常量,也就是值不需要改变的变量,在许多编程语言提供了常量的定义方式,比如c/c的define MAXNUM 99999 或 const int a 7,javasccipt的const a7, 等等。 跟以上这些方法…...

Scala第十七章节
Scala第十七章节 scala总目录 文档资料下载 章节目标 了解集合的相关概念掌握Traversable集合的用法掌握随机学生序列案例 1. 集合 1.1 概述 但凡了解过编程的人都知道程序 算法 数据结构这句话, 它是由著名的瑞士计算机科学家尼古拉斯沃斯提出来的, 而他也是1984年图灵…...

BGP高级特性——4字节AS号
目录 4字节AS号 相关概念 两种过渡属性 4字节AS号的格式 4字节AS号建立邻居 4字节AS号路由传递 配置命令 4字节AS号 相比于2字节AS号,范围更大。由1~65535扩展到1~4294967295 支持4字节AS号的BGP设备兼容仅支持2字节AS号的BGP设备 相关概念 Speaker&#…...

cesium源码无法更新的解决方案
一、环境: 中国移动的宽带 win10操作系统 二、问题复现步骤: 1、开了VPN,设置为全局代理 2、在vscode中执行git pull命令 3、结果显示无法更新 三、解决方案: 1、安装Github官方开发的软件Github Desktop 下载地址…...

大数据-玩转数据-双流JOIN
一、双流JOIN 在Flink中, 支持两种方式的流的Join: Window Join和Interval Join 二、Window Join 窗口join会join具有相同的key并且处于同一个窗口中的两个流的元素. 注意: 1.所有的窗口join都是 inner join, 意味着a流中的元素如果在b流中没有对应的, 则a流中这个元素就不会…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...