AI在医学领域:使用眼底图像和基线屈光数据来定量预测近视
关键词:深度学习、近视预测、早期干预、屈光数据
儿童近视已经成为一个全球性的重大健康议题。其发病率持续攀升,且有可能演变成严重且不可逆转的状况,这不仅对家庭幸福构成威胁,还带来巨大的经济负担。当前的研究着重指出,精确预测近视进程对于实施及时有效的干预至关重要,以防止儿童遭受严重的视力损伤。然而,这类预测主要基于主观的临床评估,这些评估本质上存在偏差且资源消耗大,从而限制了它们在广泛领域的应用。
本文介绍了一种新颖的、高精度的方法,使用眼底图像和基线屈光数据来定量预测儿童的近视发展轨迹和近视风险。这种方法通过在中国河南省对3,408名儿童进行的为期六年的纵向研究中得到了验证,研究使用了16,211张眼底图像和相应的屈光数据。此外,本文的方法旨在仅依赖眼底图像和屈光误差数据,无需元数据或医生的多次询问,从而大幅降低相关的医疗费用,并促进大规模筛查。
眼底图像预处理技术和深度学习网络模型构建、训练验证的代码:https://github.com/19376357/Myopia-prediction-model/tree/main。
1 方法
核心思想是通过分析眼底图像中与近视进展相关的特征,并结合屈光度数据,预测儿童未来近视的发展轨迹和风险。

a. 系统示意图:系统接收儿童的眼底图像序列,并能够筛选出具有未来近视高风险和快速近视发展的高风险儿童。系统还可以定量预测儿童未来几年的近视发展情况。
b. 数据分段示意图:将儿童连续六年的数据根据已知和预测的年份分类为15个类别,例如,使用2年的眼底序列预测接下来的4年近视发展,每个类别根据已知和预测的年份进一步分为支持数据和测试数据。
c. 儿童人群特征的实际检查:比较原本近视和原本非近视儿童的近视发展,并研究儿童近视发展的数据显示,儿童的近视在五年内发展得非常迅速。
d. 模型示意图:模型使用n年的眼底图像序列和球面等效屈光度(SE)序列进行特征提取和时间序列建模,以预测未来m年的近视情况,并用于创建模型的热图
1.1 数据集
对河南省安阳市 11 所小学的 3408 名一年级学生进行了为期六年的纵向研究,收集了 16,211 张眼底图像和相应的屈光度数据。
1.2 流程
1.2.1 数据预处理
为了提高模型的准确性和鲁棒性,研究人员开发了一套图像预处理和增强系统。该系统包括图像裁剪、缩放、缺陷检测和特征增强算法,用于突出眼底图像中的生理特征。
1.2.2 模型构建
研究人员设计了一个名为“多年度近视预测网络”(MMPN)的深度学习模型。该模型由编码器和解码器两部分组成。
- 编码器: 使用基于 ResNet34 架构的卷积神经网络 (CNN) 从单个眼底图像中提取特征。
- 解码器: 使用基于 LSTM 架构的循环神经网络 (RNN) 分析眼底图像序列中的时间动态信息,并结合屈光度数据,预测未来几年的屈光度发展和近视/高度近视风险。
1.2.3 模型训练和评估
使用 Python 1.12.0 和 A5000-24G 显卡对 MMPN 模型进行训练和评估。他们使用了准确率、特异性、灵敏度、ROC 曲线和 AUC 面积等指标来评估模型的预测性能。
1.3 模型优势
- 数据效率高: 仅需一次就诊的数据即可进行预测,节省时间和人力成本。
- 预测能力强: 能够对近视和高度近视进行短期和长期预测,并提供近视进展的定量轨迹。
- 预测准确率高: AUC 值分别为 0.944 和 0.995,平均预测误差为每年 0.311D。
- 可解释性强: 可以通过热力图分析模型关注的区域,发现与近视发展相关的潜在因素和新的生物标志物。
1.4 研究局限性
- 模型的泛化能力: 需要在不同人群中进行测试,以评估模型的泛化能力。
- 数据集的局限性: 高度近视样本数量较少,可能影响模型的灵敏度。
- 快速进展近视的预测: 对于快速进展近视的儿童,模型的预测误差可能较大。
2 实验
2.1 实验结论
- 预测准确率高:模型预测近视和高度近视风险的 AUC 值分别为 0.944 和 0.995,平均预测误差为每年 0.311D。
- 与传统的预测方法相比,该方法的准确率和 AUC 值更高。
- 预测能力强:该方法能够对近视和高度近视进行短期和长期预测,并提供近视进展的定量轨迹。即使只使用一年的数据,模型也能预测未来三年的近视风险,准确率仍然很高。
- 数据效率高:该方法只需一次就诊的数据即可进行预测,节省时间和人力成本。
- 可解释性强:热力图分析显示,模型关注的区域主要集中在视盘、黄斑区和视网膜上下方区域,这与高度近视的眼底病变区域一致。这表明模型能够识别与近视发展相关的潜在因素和新的生物标志物。
2.2 结论分析
- 近视风险预测:模型预测未来一年近视风险的准确率为 87.9%,AUC 值为 0.944。模型预测未来一年高度近视风险的准确率为 99.5%,AUC 值为 0.995。
- 这表明模型能够有效识别高风险儿童,并预测近视/高度近视的发生概率。
- 屈光度预测:模型预测未来一年等效球面屈光度的平均误差为 0.311D,R² 值为 0.843。这表明模型能够准确预测儿童未来几年的屈光度发展轨迹。
- 性别差异:模型在男性和女性儿童中的预测性能没有显著差异。这表明模型对性别没有偏见。
- 初始近视状态:模型对初始近视儿童未来近视进展的预测误差大于初始非近视儿童,这表明初始近视状态对预测结果有较大影响。然而,使用相对误差进行测量时,两组预测结果的差异可以缩小,因为初始近视儿童的屈光度本身更高。
相关文章:
AI在医学领域:使用眼底图像和基线屈光数据来定量预测近视
关键词:深度学习、近视预测、早期干预、屈光数据 儿童近视已经成为一个全球性的重大健康议题。其发病率持续攀升,且有可能演变成严重且不可逆转的状况,这不仅对家庭幸福构成威胁,还带来巨大的经济负担。当前的研究着重指出&#x…...
VB.NET中如何利用WPF(Windows Presentation Foundation)进行图形界面开发
在VB.NET中,利用Windows Presentation Foundation (WPF) 进行图形界面开发是一个强大的选择,因为它提供了丰富的UI元素、动画、数据绑定以及样式和模板等高级功能。以下是在VB.NET项目中使用WPF进行图形界面开发的基本步骤: 1. 创建一个新的…...
Go语言标准库中的双向链表的基本用法
什么是二分查找区间? 什么是链表? 链表节点的代码实现: 链表的遍历: 链表如何插入元素? go语言标准库的链表: 练习代码: package mainimport ("container/list""fm…...
手机游戏录屏软件哪个好,3款软件搞定游戏录屏
在智能手机普及的今天,越来越多的人喜欢在手机上玩游戏,并希望能够录制游戏过程或者分享游戏技巧。然而,面对市面上众多的手机游戏录屏软件,很多人可能会陷入选择困难。究竟手机游戏录屏软件哪个好?在这篇文章中&#…...
【力扣】4.寻找两个正序数组的中位数
题目描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1: 输入:nums1 [1,3], nums2 [2] 输出:2.0…...
【C++】初识面向对象:类与对象详解
C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性 本章将介绍C中一个重要的概念——类。通过类,我们可以类中定义成员变量和成员函数,实现模块化封装,从而构建更加抽象和复杂的工程。 &…...
知识图谱学习总结
1 知识图谱的介绍 知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过知识图谱能够将Web上的信息、数据以及链接关系聚集为知识,使信息资源更易于计算、理解以及评价,并能实现知识的快速响…...
2021-10-23 51单片机LED1-8按秒递增闪烁
缘由51单片机,八个LED灯按LED1亮1s灭1s,LED1亮2s 灭2s以此类推的方式亮灭-编程语言-CSDN问答 #include "REG52.h" sbit K1 P1^0; sbit K2 P1^1; sbit K3 P1^2; sbit K4 P1^3; sbit P1_0P2^0; sbit P1_1P2^1; sbit P1_2P2^2; sbit P1_3P2^3; sbit P1_…...
在Linux中宏观的看待线程
线程一旦被创建,几乎所有的资源都是被所有的线程共享的。线程也一定要有自己私有的资源,什么样的资源应该是线程私有的? 1.PCB属性私有 2.要有一定的私有上下文结构 3.每个线程都要有独立的栈结构 ps -aL ##1. Linux线程概念 ###什么是线程…...
提示libfakeroot.so或libfakeroot-sysv.so出错处理方法
在RK3588 Buildroot SDK里面,uboot和kernel使用的是prebuild目录下的交叉编译链,而buildroot和APP编译则使用Buildroot生成的交叉编译链来编译(如:位于buildroot/output/rockchip_rk3588/host目录为交叉编译工具链目录)…...
【计算机网络】什么是socket编程?以及相关接口详解
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
LeetCode.19.删除链表的倒数第n个节点
题目描述: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点 输入输出实例: 思路:这道题目我们可以用双指针来做,让first和second指针之间的距离为n1,然后我们first和second指针…...
vue-cesium
vue-cesium: Vue 3.x components for CesiumJS. cesium 文档中文版 ArcGisMapServerImageryProvider - Cesium Documentation all参考 https://juejin.cn/post/7258119652726341669 cesium官网 Cesium Sandcastle...
《npm 学习过程中遇到的诸多问题》
npm 开发 1.开发过程中难免会使用到npm ,进行安装第三方包 遇到的问题 match 报错:npm i报错npm ERR! Cannot read property match of undefined 可以尝试清除本地的package-log.json 文件,再试试...
CentOS 介绍
引出 Linux 系统内核与 Linux 发行套件系统的区别? Linux 系统内核指的是一个由 Linus Torvalds(Linux之父,内核主要开发者)负责维护,提供硬件抽象层、磁盘、文件系统控制及多任务功能的系统核心程序。 Linux 发行套…...
模拟面试题1
目录 一、JVM的内存结构? 二、类加载器分为哪几类? 三、讲一下双亲委派机制 为什么要有双亲委派机制? 那你知道有违反双亲委派的例子吗? 四、IO 有哪些类型? 五、Spring Boot启动机制 六、Spring Boot的可执行…...
CTFHUB-web-RCE-综合过滤练习
开启题目 查看网页源代码发现这次网页对 | 、 && 、 || 、 \ 、 / 、; ,都进行了过滤处理 发现换行符 %0a 和回车符 %0d 可以进行测试,在 URL 后面拼接访问 127.0.0.1%0als 用 ls flag_is_here 查看 flag 文件中的内容,发现回显为空…...
Leetcode75-7 除自身以外数组的乘积
没做出来 本来的思路是遍历一遍得到所有乘积和然后除就行 但是题目不能用除法 答案的思路 for(int i0;i<n;i) //最终每个元素其左右乘积进行相乘得出结果{res[i]*left; //乘以其左边的乘积left*nums[i];res[n-1-i]*right; //乘以其右边的乘积right*nums[n-1-i]…...
AI绘画工具介绍:以新奇角度分析与探索AI绘画艺术与技术的交汇点
目录 前言 一、AI绘画工具的前沿技术 1.1 深度学习的进化 1.2 GANs的创新应用 1.3 风格迁移的多样化 1.4 交互式AI绘画的智能化 二、艺术与技术的交汇点 2.1 艺术创作的普及化 2.2 艺术风格的创新 2.3 艺术与科技的深度融合 三、新颖的思考角度 3.1 AI作为艺术创作…...
基于Springboot + Vue的宿舍管理系统
前言 文末获取源码数据库 感兴趣的可以先收藏起来,需要学编程的可以给我留言咨询,希望帮助更多的人 精彩专栏推荐订阅 不然下次找不到哟 Java精品毕设原创实战项目 作者的B站地址:程序员云翼的个人空间-程序员云翼个人主页-哔哩哔哩视频 csd…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
Element-Plus:popconfirm与tooltip一起使用不生效?
你们好,我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip,产品要求是两个需要结合一起使用,也就是鼠标悬浮上去有提示文字,并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...
npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...
自定义线程池1.2
自定义线程池 1.2 1. 简介 上次我们实现了 1.1 版本,将线程池中的线程数量交给使用者决定,并且将线程的创建延迟到任务提交的时候,在本文中我们将对这个版本进行如下的优化: 在新建线程时交给线程一个任务。让线程在某种情况下…...
