【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

news2024/11/27 9:17:39

文章目录

    • 前言
    • 文章一
      • 研究背景
      • 主要方法
      • 部分实验结果
      • 总结与思考
      • 参考资料
    • 文章二
      • 研究背景
      • 主要方法
      • 部分实验结果
      • 总结与思考

前言

人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力,比如我们能够准确地识别物体距离和三维几何关系等,这是当前人工智能难以比拟的能力。在人类视觉感知系统中,外部视觉刺激会经过神经编码为神经信号,而神经解码就是根据神经信号得到相对应的视觉刺激,通过研究这个编解码过程能够帮助我们进一步去理解大脑不同区域的功能。

根据不同任务的复杂性和具体目标,这类研究可以分为刺激分类(stimuli classification)、刺激识别(stimuli recognition)和刺激重建(stimuli reconstruction)。比如刺激分类就是根据大脑活动信息去区分视觉刺激中包含的物体类别,刺激识别就是从一组已知的图像中识别特定的视觉刺激,而刺激重构就是直接生成图像。

这篇博文将介绍今年两个比较新的根据人脑活动信号直接生成视觉刺激图像的工作,具体地说,就是根据观测图像时生成的脑补fMRI信号去重建观测图像

文章一

在这里插入图片描述

研究背景

在这里插入图片描述
本文要做的一个任务就是根据人脑活动重建视觉图像,更具体地说就是根据人脑的功能性磁共振成像(functional magnetic resonance imaging, fMRI)来重建其观测到的图像。如上图所示,第一行是现有的图像(观测者看到的图像),第二行是模型根据其中一个观测者的fMRI重建得到的图像。

本文提出的方法主要基于Stable Diffusion模型,并且探讨了LDM(latent diffusion model)与人脑独特功能之间的联系,从神经科学的角度对LDM不同成分提供了一种的定量解释。

主要方法

Stable Diffusion
关于Stable Diffusion模型这里就不过多介绍了,感兴趣可以参考我这篇博客(一文速览扩散模型优化过程:从DDPM到条件生成模型Stable Diffusion),其模型结构大致如下所示:
在这里插入图片描述
其中z是原始图像输入编码器得到的潜在表征(latent representation),c是输入文本信息表征,数学公式: $ z_c $是去噪后得到的表征,其会送入解码器得到最终的生成图像。

本文直接用的其开源的代码与预训练参数(version 1.4).

解码过程:从fMRI重构图像
解码过程如下图所示,本论文主要要训练的只有两个线性模型(红色部分),其负责将fMRI信号转换成对应的潜在表征(z和c),而Stable Diffusion的其他参数不需要调整。
在这里插入图片描述
(i)首先第一步观测者早期视觉皮层(early visual cortex)对应的fMRI信号得到潜在表征z,然后送入解码器得到得到一个粗(coarse)解码图像 X z X_z Xz
(ii) X z X_z Xz随后会被送入解码器,然后进行加噪过程(扩散模型的前向过程);
(iii)将观测者高层视觉皮层(higher visual cortex)的fMRI信号编码称为潜在的文本表征c,然后与加噪后的表征 z T z_T zT一起进行去噪过程(扩散模型的逆向过程)得到最终的生成图像 X z c X_{zc} Xzc.

线性模型使用的是L2正则化的线性回归,针对不同的观测者单独训练.

编码过程:全脑体素建模
为了去解释LDM模型与人脑活动之间的联系,本文构造了一个全脑体素(whole-brain voxel-wise)编码模型,如下图所示。其通过线性模型来构造Stable Diffusion中潜在表征与人脑体素之间的对应关系,分别对比了不同噪声条件下、不同扩散阶段、不同U-Net层的特征与大脑部位的对应关系。
在这里插入图片描述
这一部分就不详细介绍了,感兴趣的可以参见原文,主要是从生物神经学的角度分析了LDM的内在机理。

部分实验结果

在这里插入图片描述
上图展示了同一名受试者根据不同潜在表征生成的图像,可以发现:① 仅使用z重建的图像与原图像视觉一致(visually consistent),但语义内容不一致(个人认为这里的视觉一致指的就是整体的颜色与纹理结构);② 仅使用c生成的图像具有高度的语义保真度但视觉不一致;③ 从 z c z_c zc生成的图像同时具有高度语义保真度和视觉一致性。

在这里插入图片描述
上图展示了不同观测者对同一副图像的fMRI信号生成的重构图像,可以看到整体的重建质量还是可以的。(不同观测者重建出来的图像相互间有差距,可能是因为每个人关注的区域不一致导致激活有差异)。

总结与思考

本文基于Stable Diffusion模型提出了一个可以从人脑fMRI信号重构图像的方法,它不需要对大模型进行重新训练,只需要学习fMRI到LDM潜在表征的线性映射即可。此外,模型从生物神经科学的角度探讨了LDM的内在机理。

读完全文,可以发现本文的主要方法和思路都不难,并且从重建的效果上来看还不错,基本能够认出原始图像的特征,但整体细节还有待进一步加强。此外,方法需要针对不同观测者去构建线性映射模型,这里也值得优化。

参考资料

[1] 【AI论文学习笔记】大脑信号重建图像 High-resolution image reconstruction with LDM from human brain activity

文章二

在这里插入图片描述

研究背景

针对fMRI信号重建的任务,作者分析了目前工作存在的问题:首先是早期方法虽然能够顺利重建出原始图像的结构信息,比如轮廓、大小等,但其重建结果缺乏明显的语义信息导致难以辨认;而最近的方法采用预训练的生成模型进行重建,能生成语义相似的图像(比如上面那篇文章),但其生成结果在结构信息上是不可控的,比如位置、朝向等。

在这里插入图片描述

第一行图像展示了早期方法的重建结果,第二行展示了当前方法的生成结果,最后一行为本文提出MindDiffuser的生成结果

为了去解决这两个问题,本文提出了一个两阶段的模型MindDiffuser,结合了“优化”和“生成”两种方法的思想,使得重构结果在语义上相似的同时结构也一致。

主要方法

MindDiffuser的模型框架如上图所示,其包括两个阶段。首先MindDiffuser要构建三个不同的回归模型,去学习fMRI与图像图像潜层特征之间的映射,包括VQ-VAE编码特征 Z Z Z,CLIP提取的图像特征 Z C L I P Z_{CLIP} ZCLIP和文本特征 C C C(这些都是在后面过程中要用到的)。在第一阶段(a),会利用Z和C两个特征去进行图像生成,这和Stable Diffusion的过程一模一样。
在这里插入图片描述

作者认为在第一阶段主要是嵌入了语义信息和细粒度细节信息,解决了"what is contained"

在第二阶段,作者利用CLIP输出的视觉特征 Z C L I P Z_{CLIP} ZCLIP来进一步对齐结构信息。具体地, Z C L I P Z_{CLIP} ZCLIP包括了图像对应的一组浅层特征(浅层特征包含了视觉低层信息,如结构位置信息等),通过计算生成图与 Z C L I P Z_{CLIP} ZCLIP之间的L2距离来反向优化生成图像,通过反向传播进行多次迭代来对齐结构信息,从而得到最终的生成结果。

在这里插入图片描述

部分实验结果

在这里插入图片描述
上图展示了MindDiffuser与当前不同主流方法之间的重构结果对比,可以看到MindDiffuser是能够较好地捕获到原始图像的语义和结构信息的。此外,第三行也证明了第二阶段的重要性(without control)。

在这里插入图片描述
此外,在定量指标的对比上,MindDiffuser也具有明显优势。

在这里插入图片描述
上图展示了MindDiffuser对于不同受试者fMRI的重建结果,需要注意的是,这里的结果都是由同一个模型生成,这说明MindDiffuser能够适应于不同个体。

文中还探讨了VQ-VAE特征z对于重构生成的重要性,更多实验参照原文.

总结与思考

MindDiffuser第一阶段的过程与上面第一篇文章基本上一样,都是基于直接构造fMRI到不同特征空间的映射模型,然后通过Stable Diffusion来进行图像重构。但不同点在于它没有引入过多先验,即通过ROI定位不同脑部视觉皮层区域的fMRI信号,而是直接针对完整的fMRI信号进行学习,这有助于简化数据获取难度。此外,MindDiffuser可以直接针对多个受试者同时训练模型,这说明其针对个体差异的泛化能力更强。

本论文的主要贡献就是利用CLIP的图像特征,额外引入了一个结构信息对齐功能。因为在StableDiffusion框架下的生成过程会引入一定程度的随机性,在前向和逆向过程中都有随机噪声的参与,所以在浅层特征上引入一致性损失会改善这种现象。

对于这个任务,能达到这种效果其实还是比较惊艳了,如果要完全重构出完整图像应该是不可能的,因为不同的人在观测时会注意到不同的模块,大脑产生的信号也不同。随着人工智能技术的发展,脑机接口时代到临可能真的不远了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023/6/4总结

CSS的学习: 2023-06-01 19-57-46-649 移动开发流式布局: 流式布局,是根据百分比布局,因为手机的尺寸会不一样,所以利用百分比布局可以很好的解决缩放以及尺寸问题: 这是跟着视频做的一个案例:…

Lecture 8 Deep Learning for NLP: Recurrent Networks

目录 Problem of N-gram Language Model N-gram 语言模型的问题Recurrent Neural Network(RNN) 循环神经网络RNN Language Model: RNN 语言模型Long Short-Term Memory Model (LSTM) 长短期记忆模型(LSTM)Gating Vector 门向量Forget Gate 忘记门Input G…

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

ChatGPT 使用 拓展资料:大模型时代的开发者新机遇

Nginx-rewrite模块详细介绍

Nginx-rewrite模块 前言一、Nginx-rewrite模块概述1、rewrite场景2、rewrite实现3、rewrite执行顺序4、语法格式 二、rewrite示例1、基于域名的跳转2、基于客户端IP访问跳转3、基于旧域名跳转到新域名后面加目录4、基于参数匹配的跳转5、基于目录下所有 php 结尾的文件跳转6、基…

代码报错 | 出bug-->该如何调试?

代码报错 | 出bug-->该如何调试? 什么叫做bug调试是什么?有多重要?Debug和Release的介绍调试常用的快捷键调试时查看程序当前的信息 如何写出好(易于调试)的代码对const的通俗生活中举例assert的理解 编译常见的错误…

Java程序员面试经验总结

目录 一、企业是如何筛选简历的1.简历筛选流程2.HR如何筛选简历3.部门负责人筛选简历4.总结-简历筛选规则 二、简历注意事项1.简历整体结构2.职业技能3.项目经历4.总结 三、应届毕业生改如何找到合适的练手项目1.项目来源2.如何深入学习项目3.应该学习哪些模块4.模块该如何吃透…

【owt】WebrtcNode, subscribe-sdp offer 流程(1)

sdp offer 流程 1. AmqpClient - New message received sdp offer 的消息 2023-04-26T21:54:19.790 - DEBUG: AmqpClient - RpcServer New message received {method: onTransportSignaling,args: [b149e44bb10d4e91bd162a8c6806ae7b,{sdp: v0\r\n o- 7177131362423164715 …

K8S常见应用场景(六)

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源于希腊语,意为“…

【Java系列】Mybatis-Plus 使用介绍二

序言 你只管努力,其他交给时间,时间会证明一切。 MyBatis-Plus 是 MyBatis 的增强工具,它简化了 MyBatis 的开发,并提供了许多实用的功能和工具类。下面是 MyBatis-Plus 的使用方法: 1 使用方法 1. 引入依赖 在 Maven…

MySQL数据库 9.DQL操作

目录 ​编辑 🤔前言: 🤔DQL介绍: 🤔查询种类: 1.基本查询: 🔍1.查询多个字段: 🔍2.查询所有字段: 🔍3.去除重复记录&#xff…

【数据结构】常见排序算法——常见排序介绍、插入排序、直接插入排序、希尔排序

文章目录 1.排序的概念和应用1.1排序的概念1.2排序的运用1.3常见的排序算法 2.常见的排序算法2.1插入排序2.1.1直接插入排序2.1.2希尔排序 1.排序的概念和应用 1.1排序的概念 在计算机科学中,排序是将一组数据按照指定的顺序排列的过程。排序算法由于执行效率的不同…

01_爬虫基础知识和requests模块简介

爬虫基础知识 1、爬虫简介: 爬虫的作用:帮助我们把网站信息快速提取并保存爬虫的分类: 通用爬虫聚集爬虫爬虫的安全知识:目前来说,无明确法律规定,但每个官网都有自己的爬虫协议(网址后面加/robots.txt)爬虫的爬取流程: 1、获取网页2、提取信息3、保存数据2、爬虫必须…

分布式软件架构——远程服务调用

序言 “架构师”可以是做企业战略设计的架构师,也可以说做业务流程分析的架构师。 架构师视角特指软件系统中技术模型的系统设计者。 在做架构设计的时候,架构师应该思考哪些问题、可以选择哪些主流的解决方案和行业标准做法,以及这些主流方…

【自制C++深度学习框架】前言

KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架,使用C编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计…

气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

✨博主:命运之光 ✨专栏:Java经典程序设计 前言:这篇博客在手机上打开可能会自动播放视频,视频有音乐,请及时关闭手机音乐哈🙂 目录 ✨导语 ✨引言 ✨简单介绍一下Javaswing这项技术简单介绍一下Javaswi…

简单的UDP网络程序·续写

该文承接文章 简单的UDP网络程序 对于客户端和服务端的基本源码参考上文,该文对服务器润色一下,并且实现几个基本的业务服务逻辑 目录 demo1 第一个功能:字典翻译 初始化字典 测试代码:打印 字符串分割 客户端修改 成品效果…

idea如何一个项目启动两个tomcat服务(不同端口)

目录 第一步:创建一个普通的springboot项目 第二步:编写一个controller代码,用来接收请求 第三步:复制服务,端口设置为8081 第四步:依次访问8080、8081两个服务进行测试 第一步:创建一个普通…

基于JavaWeb的保护动物管理系统设计与实现

摘要:随着全球一些稀有物种、野生动物日益稀少,保护动物已经成为全球多个国家开始重视并投入大量物力着手解决的重要课题。动物是大自然的产物,自然界是由许多复杂的生态系统构成的。有一种植物消失了,以这种植物为食的昆虫就会消…

easyExcel导入失败提示用户第几行有误并回滚数据

思路: 在controller定义一个map,将map传入excel监听器,在监听器中处理excel的数据,读取到某一行出现错误就将错误提示信息存入map并抛出一个异常给service。在service方法上开启事务,并将异常出实现数据回滚&#xff0…

vite使用vue3 v-for渲染图片时的写法

写法一 <template><divclass"demo-img"v-for"item in demoOption":key"item.code":style"background-image: url(${getImageUrl(../assets/imge/${item.img}.jpeg)})"></div> </template><script lang&qu…