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

眼底图像生成新 SOTA:GeCA模拟生物细胞的演变过程

眼底图像生成新 SOTA:GeCA模拟生物细胞的演变过程

    • 提出背景
    • GeCA 框架
    • 生成元胞自动机:从单细胞到生物体的过程
      • 生物体从单个像素细胞开始
      • 细胞扩散:从细胞演变为生物体
      • 通过基因遗传改进逆向采样
      • 视网膜疾病分类
      • GeCA 逻辑拆解
        • 子解法1:神经元胞自动机基本框架
        • 子解法2:扩散过程优化
        • 子解法3:时间调度机制
        • 子解法4:基因遗传引导机制

 


论文:https://arxiv.org/pdf/2407.03018

代码:https://github.com/xmed-lab/GeCA

 


提出背景

生成建模旨在逼近真实数据的统计属性,从而合成与原始分布高度相似的新数据。

生成对抗网络(GANs)和去噪扩散概率模型(DDPMs)分别借鉴了博弈论和热力学的思想,在生成建模方面取得了显著进展。

然而,通过生物进化的视角来探索生成建模的研究仍然很少。

在本文中,我们介绍了一种新的模型家族,称为生成元胞自动机(GeCA),其灵感来源于从单细胞进化到生物体的过程。

GeCA 被评估为视网膜疾病分类的有效增强工具,跨越了两种成像方式:眼底图像和光学相干断层扫描(OCT)。

在OCT成像中,数据稀缺且类别分布本质上不平衡的情况下,GeCA显著提升了对11种不同眼科疾病的表现,平均F1分数相比于传统基线提升了12%。

GeCA 生成图像:

效果对比:
在这里插入图片描述

GeCA 框架

在这里插入图片描述

生成元胞自动机:从单细胞到生物体的过程

生物体从单个像素细胞开始

  • 像素细胞的概念:我们将图片中的每一个小格子称为“像素细胞”。

    这些像素细胞会像生物体的细胞一样,随着时间变化。

  • 像素细胞的组成:每个像素细胞包含四个部分:输入值、位置编码、输出值和隐藏状态。

    输入值是图像的初始值,位置编码帮助像素细胞知道自己在图像中的位置,输出值是像素细胞目标状态,而隐藏状态则反映像素细胞的内部状态。

  • 像素细胞的演变:像素细胞会随机更新,意味着并不是所有细胞都同时变化。

    更新时,输入值和位置编码保持不变,只更新隐藏状态和输出值。

细胞扩散:从细胞演变为生物体

  • 训练模型:我们使用一种扩散过程来训练模型。在这个过程中,除了位于图像中心的一个像素细胞外,所有像素细胞的初始值都设为零。

    中心的像素细胞初始化为随机值。

  • 前向扩散:图像中的每个像素细胞逐渐加入噪声,这样到最后所有像素细胞都变得像噪声一样。

  • 逆向采样:通过减少噪声,我们可以一步一步地从随机噪声中生成新的图像。这个过程类似于“去噪”。

通过基因遗传改进逆向采样

  • 基因遗传引导:在图像生成过程中,我们利用像素细胞的隐藏状态来保持长期信息,就像遗传物质一样。

    这有助于在生成图像时保持一致性。

  • 改进去噪:在去噪过程中,我们利用隐藏状态来指导逆向生成,使图像生成更加平滑和自然。

视网膜疾病分类

  • 数据稀缺的挑战:由于OCT图像的数据很少,使用这些图像来分类视网膜疾病非常困难。

    我们通过生成建模来扩展数据集,即用生成的合成图像来增加训练数据。

  • 保持数据分布:我们确保生成的合成数据集在类别分布上与原始数据集一致,这样可以避免数据偏差,并提高分类模型的准确性。

我们的方法是通过模拟生物细胞的演变过程,生成更多的OCT图像,帮助改进视网膜疾病的分类精度。

GeCA 逻辑拆解

解法:GeCA = 神经元胞自动机基本框架 + 扩散过程优化 + 时间调度机制 + 基因遗传引导机制

子解法1:神经元胞自动机基本框架
  • 因为:它可以模拟生物细胞的生长和演化过程,适合于处理图像生成中的复杂模式和结构。
  • 之所以使用神经元胞自动机基本框架,是因为它可以将图像的每个像素看作一个像素细胞,通过局部自注意力机制和随机更新规则,使图像逐步演变成目标状态。
  • 例如,在模拟皮肤细胞生成的研究中,可以通过调整细胞间的相互作用规则来模拟不同类型的皮肤纹理。
子解法2:扩散过程优化
  • 因为:扩散过程可以模拟从随机噪声到详细图像的逐步精化过程,适用于生成复杂的医学图像。
  • 之所以使用扩散过程优化,是因为它通过逐步增减噪声层,精确控制图像的生成过程,逐步接近目标图像。
  • 例如,在生成OCT图像时,扩散过程能够从基本的噪声背景逐步细化出视网膜层次结构。
子解法3:时间调度机制
  • 因为:合理的时间调度可以优化生成过程中的计算资源使用,提高模型的运行效率。
  • 之所以使用时间调度机制,是因为它允许模型在生成过程中根据需要动态调整更新频率和优先级,从而更加高效地处理图像的不同区域。
  • 例如,在生成较为复杂的中央区域时,可能需要更频繁的更新。
子解法4:基因遗传引导机制
  • 因为:它能够利用已有的生成样本特征来引导新样本的生成,提高生成质量和一致性。
  • 之所以使用基因遗传引导机制,是因为这种方法能够在生成过程中保持特征的连续性和一致性,特别是在涉及长期依赖的图像特征时。
  • 例如,在生成具有连续病变特征的视网膜图像时,遗传引导可以帮助模型记忆和再现病变区域的特定特征。

GeCA 逻辑链是链条式的,因为每个子解法都依赖于前一步的结果,形成一个依次递进的过程:

  • 神经元胞自动机 NCA 提供了基础的像素细胞演变机制。
  • 基因遗传引导 GHG 在NCA的基础上,利用隐藏状态进行逆向采样,保留长程依赖性。
  • 扩散过程 将NCA和GHG结合,提供了一种通过噪声生成图像的机制。
  • 选择性通道维度采样 在生成过程中优化图像的细节和质量。
  • 更新的时间调度 提高了生成过程的效率和连贯性。

GeCA模型生成图像的过程与OCT(光学相干断层扫描)图像生成的过程:

  1. 神经元胞自动机 NCA — 基础图像采集

    • 就像OCT图像生成的初步扫描,神经元胞自动机(NCA)为图像生成提供基础框架。
    • 在OCT中,这一步骤涉及获取眼底的初始扫描图像,提供关于眼部结构的基本信息。
    • NCA通过为每个像素(视为单个细胞)定义初始状态和演化规则来模拟这一过程。
  2. 基因遗传引导 GHG — 详细层次增强

    • 基因遗传引导(GHG)在图像生成过程中增加细节层次,类似于OCT在初步图像基础上通过精细的层次调整来增强图像细节。
    • GHG使用隐藏状态来保持图像特征的长期依赖性,确保图像生成的连贯性和精确性,类似于OCT中使用高级成像技术来增强图像的清晰度和分辨率。
  3. 扩散过程 — 噪声处理和图像优化

    • 在OCT图像生成中,需要通过软件处理来消除噪声并优化图像质量。
    • 类似地,GeCA中的扩散过程通过逐步添加和去除噪声来细化生成图像。
    • 这一步骤确保最终图像在保持真实性的同时,也具有高质量和清晰度。
  4. 选择性通道维度采样 — 局部图像细节调整

    • 选择性通道维度采样可以看作是OCT在图像处理中对特定区域进行焦点调整,以突出重要结构或细节。
    • 这在GeCA中通过针对性地调整图像的特定通道来实现,优化整体图像的表现。
  5. 更新的时间调度 — 成像过程的效率优化

    • 在OCT中,扫描过程的时间效率至关重要。
    • 同样,GeCA中的更新时间调度确保图像生成过程不仅质量高,也高效。
    • 这一步骤管理了各个生成阶段的时间分配和优先级,确保图像生成既快速又准确。

相关文章:

  • 性能测试:JMeter与Gatling的高级配置
  • 五.核心动画 - 图层的变换(平移,缩放,旋转,3D变化)
  • 超融合服务器挂载硬盘--linux系统
  • BugkuCTF-Crypto(1-5)
  • 102.沉没孤岛
  • (七)glDrawArry绘制
  • Redis深度解析:核心数据类型与键操作全攻略
  • UI还原度小技巧之缩放
  • 香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别
  • Websocket通信实战项目(图片互传应用)+PyQt界面+python异步编程(async) (上)服务器端python实现
  • Java增加线程后kafka仍然消费很慢
  • 如何说服技术老大用 Redis ?
  • FFmpeg 硬件编码加速文档介绍
  • 数据库之SQL(二)
  • uniapp实现图片懒加载 封装组件
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • co模块的前端实现
  • Laravel 菜鸟晋级之路
  • leetcode讲解--894. All Possible Full Binary Trees
  • python学习笔记 - ThreadLocal
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 阿里云购买磁盘后挂载
  • 闭包--闭包之tab栏切换(四)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 前端性能优化——回流与重绘
  • 入门级的git使用指北
  • 事件委托的小应用
  • 《码出高效》学习笔记与书中错误记录
  • # 数据结构
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #QT(TCP网络编程-服务端)
  • #数据结构 笔记三
  • #图像处理
  • (1)(1.13) SiK无线电高级配置(六)
  • (6)设计一个TimeMap
  • (ZT)一个美国文科博士的YardLife
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (一)基于IDEA的JAVA基础1
  • (译) 函数式 JS #1:简介
  • (杂交版)植物大战僵尸
  • .Net - 类的介绍
  • .net FrameWork简介,数组,枚举
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 反编译_.net反编译的相关问题
  • .Net 垃圾回收机制原理(二)
  • .Net 路由处理厉害了
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • @GlobalLock注解作用与原理解析
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [20171101]rman to destination.txt
  • [BT]BUUCTF刷题第9天(3.27)
  • [bzoj1912]异象石(set)
  • [C#]C# winform部署yolov8目标检测的openvino模型