当前位置: 首页 > news >正文

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块的主要目的是将特征图视为一系列不同的特征组,然后对这些组应用通道级注意力

过程:将输入X \in R^{H \times W \times C}分成两个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局部传播系数图,公式定义如下:

其中,h^p_i是其邻居p在位置i处的置信度值,并且m×m是propagation neighbors的大小,w^p_i表示位置i处的局部传播系数向量。

自适应融合的定义如下:

其中f^p_i是来自SCS模块的位置i处的邻居p的置信向量,并且g_i是位置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文件 加载器代码&#xff1a; #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对象&#xff0c;Button的文本由子节点Text对象显示&#xff0c;Button对象的组件除了基础组件外&#xff0c;还有Image用来显示Button常规态的图片&#xff0c;还有Button组件用来控制点击过渡效果和点击事件的响应。 二.Button组件的属…...

认知智能最新研究成果

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

Armv8/Armv9 Cache知识大纲分享--思维导图

关键词&#xff1a;cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频&#xff0c;cache视频、mmu视频&#xff0c;armv8视频、armv9视频、FF-A视频、密码学视频、RME/CC…...

如何使用百度“云一朵”来分析PDF文件

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

IIS解决上传文件大小限制

IIS解决上传文件大小限制 目的&#xff1a;通过配置文件和IIS来解决服务器对上传文件大小的限制 1&#xff1a;修改配置文件&#xff08;默认为4M 值的大小根据自己情况进行修改&#xff09; <httpRuntime maxRequestLength"2048000" /> 2&#xff1a;修改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性能测试

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

Cocos Creator3.8 实战问题(四)巧用九宫格图像拉伸

一、为什么要使用九宫格图像拉伸 相信做过前端的同学都知道&#xff0c;ui &#xff08;图片&#xff09;资源对包体大小和内存都有非常直接的影响。 通常ui 资源都是图片&#xff0c;也是最占资源量的资源类型&#xff0c;游戏中的ui 资源还是人机交互的最重要的部分&#xff…...

Linux shell编程学习笔记7:只读变量

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

Scala第十七章节

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

BGP高级特性——4字节AS号

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

cesium源码无法更新的解决方案

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

大数据-玩转数据-双流JOIN

一、双流JOIN 在Flink中, 支持两种方式的流的Join: Window Join和Interval Join 二、Window Join 窗口join会join具有相同的key并且处于同一个窗口中的两个流的元素. 注意: 1.所有的窗口join都是 inner join, 意味着a流中的元素如果在b流中没有对应的, 则a流中这个元素就不会…...

from PIL import Image,文字成图,ImageFont import jieba分词,input优雅python绘制图片

开始的代码 import os from PIL import Image, ImageDraw, ImageFont import jiebadef generate_image_with_white_bg(text, font_path, output_path):# 设置图片大小和背景颜色image_width 800image_height 600bg_color (255, 255, 255) # 白色# 创建图片对象image Imag…...

渗透测试信息收集方法笔记

一、指纹识别 1、钟馗之眼https://www.zoomeye.org/ 2、天眼查https://www.tianyancha.com/ 3、工具&#xff1a;御剑WEB指纹识别系统正式版&#xff0c;可以查网站用了哪些框架&#xff0c;什么版本&#xff0c;有哪些漏洞 4、kali whatweb 二、信息泄露 1、csdn https://www.…...

协议栈——连接服务器

如对方的ip和port配置信息&#xff0c;这里的连接是指通信前的准备工作 上一篇介绍查看套接字的命令时&#xff0c;可以看到很多信息&#xff0c;但是刚刚创建出来的套接字是什么信息都没有的&#xff0c;协议栈也因此不知道和谁通信&#xff1b; 客户端填补信息 这一步中调…...

数据结构--队列与循环队列的实现

数据结构–队列的实现 1.队列的定义 比如有一个人叫做张三,这天他要去医院看病,看病时就需要先挂号,由于他来的比较晚,所以他的号码就比较大,来的比较早的号码就比较小,需要到就诊窗口从小号到大依次排队,前面的小号就诊结束之后,才会轮到大号来,小号每就诊完毕就销毁,每新来…...

数据结构—栈、队列、链表

一、栈 Stack&#xff08;存取O(1)&#xff09; 先进后出&#xff0c;进去123&#xff0c;出来321。 基于数组&#xff1a;最后一位为栈尾&#xff0c;用于取操作。 基于链表&#xff1a;第一位为栈尾&#xff0c;用于取操作。 1.1、数组栈 /*** 基于数组实现的顺序栈&#…...

2023年4月到7月工作经历

2023年4 有同事说程序崩溃一起分析得结果 unsigned uNum 2; std::string str "abc" uNum; std::cout << str; 结果是c 。如果uNum 很大的话&#xff0c;就可能崩溃。 unsigned uNum 2; //std::string str "abc" uN…...

嵌入式Linux应用开发-驱动大全-同步与互斥③

嵌入式Linux应用开发-驱动大全-同步与互斥③ 第一章 同步与互斥③1.4 Linux锁的介绍与使用1.4.1 锁的类型1.4.1.1 自旋锁1.4.1.2 睡眠锁 1.4.2 锁的内核函数1.4.2.1 自旋锁1.4.2.2 信号量1.4.2.3 互斥量1.4.2.4 semaphore和 mutex的区别 1.4.3 何时用何种锁1.4.4 内核抢占(pree…...

力扣-383.赎金信

Idea 使用一个hashmap 或者一个int数组存储第二次字符串中每一个字符及其出现的次数 遍历第一个字符串&#xff0c;讲出现的重复字符减1&#xff0c;若该字符次数已经为0&#xff0c;则返回false AC Code class Solution { public:bool canConstruct(string ransomNote, strin…...

计算机网络 第二章物理层

计算机网络第二章知识点速刷 其中重要的是信源和信宿&#xff0c;以及调制解调器在通信模型当中起到的作用。...

uniapp:动态修改页面标题

我们经常遇到这种情况&#xff0c;点击新增按钮&#xff0c;进入一个空白表单页面&#xff0c;点击修改按钮&#xff0c;其实也是进入这个表单页面&#xff0c;只是表单内容已经被数据库的记录反显了&#xff0c;为了区别页面&#xff0c;我们还需要动态设置页面的标题&#xf…...

wordpress去除无用标签/百度怎么搜索关键词

在使用FTP向服务器传送问文件的时候&#xff0c;要注意选择传输模式&#xff0c;如果服务器用的是linux,那么一定要选二进制模式,否则传送文件的时候会出错转载于:https://blog.51cto.com/wll2015/1655774...

微信怎么做网站推广/活动推广方案

tracer token是SQL SERVER 2005引入的一个追踪机制, 应用在replication的场景中.用于查看replication的延迟情况. tracer token的原理如下: 在publication database的日志里生成一条记录,该记录被标记成需要被复制. LogReader agent读取这条记录,插入到distribution database D…...

南通五建宏业建设工程有限公司网站/怎么做公司网页

2. 支持DDL语句的审计&#xff0c;数据库表创建表、删除表、修改表结构&#xff08;DDL&#xff09; 1&#xff09;新建模式&#xff1a; create schema test; 1&#xff09;创建表&#xff1a; create table test.table1 (id int primary key, a varchar(255)); 2&#x…...

网站建设公司做前端/私人网站管理软件

1.1 问题 编写一个send_mail.py脚本&#xff0c;实现以下功能&#xff1a; 1.创建bob和alice帐户 2.编写发送邮件件程序&#xff0c;发件人为root&#xff0c;收件人是本机的bob和alice帐户 1.2 步骤 实现此案例需要按照如下步骤进行。 步骤一&#xff1a;创建bob和alice帐…...

绿色在线网站/服务营销的七个要素

...

wordpress 更新url/网站快速排名

1、PNP逻辑数据库。 LOOP获取信息类型数据。 TABLES: PERNR . INFOTYPES: 0000, 0001 .START-OF-SELECTION.GET PERNR .LOOP AT P0000 WHERE ......ENDLOOP.LOOP AT P0001 WHERE ......ENDLOOP. 宏获取信息类型数据。 TABLES: PERNR, T001P. INFOTYPES: 0000, 0001 .GET PERNR …...