基于深度卷积神经网络的图像配准(DeepSlice)

news2024/9/21 20:55:04

文章目录

  • 一、基于DeepSlice的切片配准
    • 1.1、研究现状
    • 1.2、网络模型(DeepSlice)
    • 1.3、优化策略
      • 1.3.1、开发了一个基准数据集(GT)
      • 1.3.2、构建了阶段二的训练数据集(增强训练)
      • 1.3.3、角度集成 + 切割索引(论文核心)
    • 1.4、配准结果展示
      • 1.4.1、必读信息
      • 1.4.2、适用范围
      • 1.4.2、论文结论 + 个人看法
  • 二、环境配置
    • 2.1、无需安装的Web应用
    • 2.2、项目安装
      • 2.2.1、创建虚拟环境
      • 2.2.2、配置相关环境
  • 通用知识
    • (1)CCF 和 Atlas
    • (2)冠状面 + 矢状面 + 横断面

一、基于DeepSlice的切片配准

  • 中文翻译:DeepSlice: 快速全自动配准小鼠脑成像到体积图谱
  • 论文地址:DeepSlice: rapid fully automatic registration of mouse brain imaging to a volumetric atlas
  • github源码:https://github.com/PolarBean/DeepSlice
  • web界面:https://www.deepslice.com.au/

在这里插入图片描述

1.1、研究现状

当前现状

  • 精准配准的难易程度:依赖于专业知识,需要具备神经解剖学知识;
  • 现有工具的使用条件:大数据的图像处理、高水平的编程能力、高耗时的脑区处理。
  • 卷积神经网络CNN:在影像数据的自动分析(包括细胞组织学和姿态估计)中显示出了巨大的前景,但目前还没有用于将切片组织配准到体积图谱的等效工具。

基于上述问题,论文提出了将冠状小鼠的脑切片自动向CCF对齐的深度神经网络(DeepSlice)

1.2、网络模型(DeepSlice)

  • DeepSlice是一个构建在 Xception 基础上的CNN模型,通过移除 Xception 最后一层的Softmax,并替换为2个Dense层 + 1个全连接层。

Xception简介

  • 是一种深度卷积神经网络,由Google于2017年提出。Xception是由 “Extreme Inception” 衍生而来,表示对 Inception 架构进行极端的改进。
  • Xception在Inception架构的基础上进行改进,引入深度可分离卷积来增强网络性能,将卷积操作拆分为深度卷积和逐点卷积两个步骤的结构,并在一定程度上减少了参数数量
  • Xception基于Keras深度学习框架,大约有2100万个可训练参数,在ImageNet数据集上具有高性能。
  • 输入图像均采用灰度化处理,并自动降采样到固定尺度:299 x 299像素。
  • DeepSlice调用(在ImageNet数据集上的预训练模型)Xception进行微调
    • DeepSlice模型参数:使用MSE均方误差损失函数和Adam优化器进行模型优化。初始学习率=0.001,batch_size=8。
    • DeepSlice模型微调:初始冻结Xception的所有层,训练随机初始化的Dense层,然后迭代解冻,直到整个模型解冻。
    • 在 RTX 2080 Ti 工作站上大约需要训练3~4天才能达到收敛。

全连接层由9个具有线性激活函数的输出神经元组成。通过分析冠状小鼠脑图像,并预测与图像的三个角坐标对应的输出向量(Oxyz, Uxyz, Vxyz) = [ox, oy, oz, ux, uy, uz, vx, vy, vz]

在这里插入图片描述
数据集下载链接:使用来自艾伦脑科学研究所(Allen Institute for Brain Science)提供的冠状小鼠脑切片,该数据集已经与CCF对齐。

  • 阶段一(效果较差):IHC + FISH + Nissl + ISH + BDA + S2P
    • 来自艾伦数据库的 131k 张切片
  • 阶段二(增强训练):S2P + Synthetic Nissl + Synthetic S2P
    • 来自艾伦连接图谱的 443k 张切片
  • IHC: 免疫组织化学:用于检测组织中蛋白质表达的技术。通过使用抗体来标记特定的蛋白质,从而在组织切片中可视化这些蛋白质的分布。
  • FISH: 荧光原位杂交:用于检测DNA序列的技术。通过使用荧光标记的探针来结合目标DNA,从而在细胞或组织中可视化特定基因的位置。
  • Nissl: 尼氏染色:用于染色神经组织的技术,通常用于显示神经元和神经胶质细胞的分布和形态。
  • ISH: 原位杂交:检测RNA序列的技术。类似于FISH,但通常用于检测特定基因的mRNA。
  • BDA: 生物素-蛋白质-抗生素复合物追踪:用于神经追踪的技术,通过注射生物素标记的物质来标记和追踪神经通路。
  • S2P: 拉曼光谱图像:用于获得样本中化学成分信息的技术,通过使用拉曼光谱技术来获得高分辨率的化学图像。
  • Synthetic Nissl(合成尼氏染色): 通过模型或计算方法合成的类似于尼氏染色的图像,而不是通过实际的尼氏染色技术获得的图像。
  • Synthetic S2P(合成拉曼光谱图像):通过模型或计算方法合成的拉曼光谱图像,而不是通过实际的拉曼光谱技术获得的图像。

1.3、优化策略

1.3.1、开发了一个基准数据集(GT)

主要原因:用于训练的数据缺乏 “地面真相” 的注册数据集。
(1)Allen组织学数据集很大,由不同染色技术获取。
(2)在阶段一图像中,除了S2P数据集具有高度精确配准,其余均容易出现撕裂、气泡和变形。

优化策略:
开发了一个基准数据集,由来自不同实验室的、使用常见染色技术处理的、7个小鼠大脑的305个切片组成。

  • 使用 QuickNII 工具分别对7个脑进行手动注册:3名新手(本科生)、2名中级研究人员(研究生)、2名神经解剖学专家(具有十年经验)。
    • allen2quicknii.py 脚本:用于通过 Allen Institute 的 API 下载神经影像数据集,并将其转换为 QuickNII 工具所需的 XML 文件格式。
  • 模型训练:随机指定3个大脑作为验证,4个大脑作为测试

1.3.2、构建了阶段二的训练数据集(增强训练)

主要原因:在阶段一训练时,由于部分数据集的不对齐,导致模型的准确性较差。

优化策略:
(1)构建第二个训练数据集:S2P、合成Nissl、合成S2P。 Qslicer工具:用于合成数据集(Qslicer.zip=1.1GB)
(2)经验证,S2P配准精确高,因此分别在两个训练阶段都加入了S2P。

1.3.3、角度集成 + 切割索引(论文核心)

  • 角度集成(Angle Integration,AI):由于连续切割的大脑切片时具有相同的切割角度的,因此需要将数据集中所有切片的(背腹侧和中外侧)的切割角度进行归一化,使其生成的角度等于预测的平均值。
  • 切割索引(cutting index metadata,CI):表示切片的切割顺序,在一个图像文件的元数据中,以文件名显示:slice1、slice2…。通过加权CI调整切片间的间距,提高了预测精度。

在这里插入图片描述

  • 角度集成AI:所有组织切片都来源于冠状小鼠,但若在冠状面的连续切割中出现角度不一致,如AI左侧图中的线条表达的是矢状面的切割角度。
  • 切割索引CI:如CI左侧图中的线条表达的是矢状面的切割角度(均匀),但每个切割索引的位置不均为。如:060+055+050的间距是5,070+060的间距也是5,但是在图像中的位置都是5。

图形化理解:背腹侧 + 中外侧
在这里插入图片描述

1.4、配准结果展示

整体的配准效果还是很不错的,但是在细节上的精度不佳。
在这里插入图片描述

1.4.1、必读信息

由于博主精通Elastic图像配准,可能是有一些先入为主的观念,故一直都不能理解:为什么DeepSlice模型只预测了图像的9个角坐标就可以实现图像配准???

经过对论文和源码的反复阅读,深入研究,终于领悟其中的要点。
总结如下:

  • (总结1)论文中的全部数据集均与CCF对齐(训练+测试):这意味着输入图像与Atlas模板都是标准化图像,区别只在于输入图像与Atlas模板存在角度不对齐问题。 该操作是DeepSlice模型的必要条件
  • (总结2)使用DeepSlice模型训练9个角坐标(用于矫正输入图像与Atlas模板的角度偏差),然后使用角坐标对Atlas进行 " 角度集成 " (目前只支持背腹侧与中外侧的角度矫正) 。即:将Atlas模板在9个角坐标的基础上进行反角度变换,使其与输入图像对齐。
  • (总结3)" 加权 - 切割索引 " :根据输入图像的文件名称(切片编号),在Atlas模板中索引相匹配的帧图像。 该操作同样验证了总结1
    • 加权表示只是作为辅助选项,训练模型具有自主能力。
    • (实际操作的结果显示):将文件名 slice197 修改为 slice007,输出仍是与slice197对应的Atlas模板。

1.4.2、适用范围

  • 训练数据全部来自艾伦脑科学研究所提供的均已经与CCF对齐的数据集,用于与Atlas对齐
    • 故对于非标准化图像的效果待评估(理论上不支持)
  • DeepSlice调用Xception在ImageNet数据集上的预训练模型进行微调。输入图像均采用灰度化处理,并自动降采样到固定尺度 299 x 299 像素。
    • 因此使用高分辨率图像并不会带来优势,反而会增加处理时间。
  • 只适用于冠状面切片,未来将发布一个矢状面和横段面的切片组织学。
  • 依赖于视觉线索来确定位置。亮度+对比度敏感,且对遮挡组织、畸形组织的表现不佳
  • 核心优势在于角度集成、加权 - 切割索引对于单帧图像的配准较差。为了获取最佳效果,每批最少使用10-20个切片。

1.4.2、论文结论 + 个人看法

论文结论个人看法
可靠地(只适用于冠状切片)整体的配准效果不错,但在细节上的精度不佳。
论文摘要:速度提高了1000倍以上(人工标记需要几个小时,而DeepSlice只需要秒级)只和人工标记比较,有些噱头。
与切片配准算法相比,能够泛化不同的成像模式和染色类型阶段一 + 阶段二(虽然输入图像的类型较多,但除了S2P具有高精度,其余都很差)
不需要图像预处理或编码能力深度学习的天生优势

二、环境配置

2.1、无需安装的Web应用

若想使用 DeepSlice 但不想安装,请查看 DeepSlice Flask,这是一个功能齐全的 Web 应用程序,它允许您上传数据集并下载对齐的结果。Web 界面由Michael Pegios开发。
在这里插入图片描述

2.2、项目安装

2.2.1、创建虚拟环境

【Python虚拟环境】创建 + 激活 + 查看 + 退出 + 复制 + 删除

2.2.2、配置相关环境

【深度学习环境配置】Anaconda +Pycharm + CUDA +cuDNN + Pytorch + Opencv(资源已上传)

# Install the required packages
pip install numpy
pip install Python==3.7
pip install scikit-learn
pip install scikit-image
pip install tensorflow==1.15.0
pip install h5py==2.10.0
pip install typing
pip install pandas==1.3.5
pip install requests
pip install protobuf==3.20
pip install lxml

详细请看官网介绍:https://github.com/PolarBean/DeepSlice


通用知识

(1)CCF 和 Atlas

CCF 和 Allen 都是与神经科学和脑研究相关的工具,由艾伦脑科学研究所(Allen Institute for Brain Science)开发。

  • 艾伦通用坐标框架(Allen Common Coordinate Framework,CCF):是一个标准化的三维空间坐标框架,用于定位、比较和分析小鼠不同脑区的解剖结构。

  • 艾伦脑图谱(Allen Brain Atlas):是一个基于 CCF 的高分辨率三维脑图谱,用于理解脑区的解剖学信息、基因表达信息、功能区域的标定、神经元连接图等。

    • CCF提供一个共同的坐标系统,使研究人员能够一致地定位脑区,以便进行数据比较和整合。
    • Allen提供丰富的脑科学数据和工具,帮助研究人员深入探索小鼠脑的结构、功能以及基因表达等方面。

(2)冠状面 + 矢状面 + 横断面

在这里插入图片描述

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

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

相关文章

[ChatGPT们】ChatGPT 如何辅助编程初探

主页:元存储的博客 全文 9000 字, 原创请勿转载。 我没有写过诗,但有人说我的代码像诗一样优雅 -- 雷军 图片来源:https://www.bilibili.com/video/BV1zL411X7oS/ 1. 引言 作为一个程序员,我们不仅要熟悉各种编程语…

ctfshow web入门 1-2 +密码签到

web1 F12源代码 web2 ctrlu cypto 签到 a}wohs.ftc{galf print(a[::-1])

使用 LoRA 在 vi​​ggo 数据集上微调 Microsoft phi-2 小语言模型

一、说明 Microsoft 的基于 Transformer 的小语言模型。它可以根据 MIT 许可在HuggingFace上使用。 它在 96 个 A100 GPU 上使用 1.4T 令牌进行了 14 天的训练。Phi-2 是一个 27 亿个参数的预训练 Transformer,不使用 RLHF 或指示微调。它进行下一个标记预测&#x…

RNN(神经网络)

目录 介绍: 数据: 模型: 预测: 介绍: RNN,全称为循环神经网络(Recurrent Neural Network),是一种深度学习模型,它主要用于处理和分析序列数据。与传统…

Python入门:生成器迭代器

一、列表生成式 现在有个需求,列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,怎么实现?你可能会想到2种方式 二逼青年版 1 2 3 4 a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b [] for i in a:b.append(i1) print(b) …

如果通过浏览器调试?

背景:博主是一个有丰富经验的后端开发人员,在前端开发中感觉总是有种力不从心的感觉,因为没有后端debug调试的清晰感。 解决办法:掌握chorm浏览器调试技巧。 F12, F5 打上断点之后,这不就是梦寐之中的调试…

Linux驱动 SPI子系统

1、SPI协议 SPI(Serial Peripheral Interface)是一种同步串行数据通信协议,通常用于连接微控制器和外部设备,如传感器、存储器、显示器等。SPI协议使用四根线进行通信,包括时钟线(SCLK)、数据输…

第十二篇【传奇开心果系列】Python的OpenCV技术点案例示例:视频流处理

传奇开心果短博文系列 系列短博文目录Python的OpenCV技术点案例示例短博文系列短博文目录一、前言二、视频流处理介绍三、实时视频流处理示例代码四、视频流分析示例代码五、归纳总结系列短博文目录 Python的OpenCV技术点案例示例短博文系列 短博文目录 一、前言 OpenCV视频…

【面试官问】Redis 持久化

目录 【面试官问】Redis 持久化 Redis 持久化的方式RDB(Redis DataBase)AOF(Append Only File)混合持久化:RDB + AOF 混合方式的持久化持久化最佳方式控制持久化开关主从部署使用混合持久化使用配置更高的机器参考文章所属专区

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

Qt|实现时间选择小功能

在软件开发过程中,QtDesigner系统给出的控件很多时候都无法满足炫酷的效果,前一段时间需要用Qt实现选择时间的小功能,今天为大家分享一下! 首先看一下时间效果吧! 如果有需要继续往下看下去哟~ 功能 1:开…

池化技术的总结

文章目录 1.什么是池化技术2.池化技术的应用一、连接池二、线程池三、内存池 3.池化技术的总结 1.什么是池化技术 池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 在系统开发过程中,我们经常会用到池化技术。通俗的讲&am…

xlsx xlsx-style 使用和坑记录

1 安装之后报错 npm install xlsx --savenpm install xlsx-style --save Umi运行会报错 自己代码 import XLSX from "xlsx"; import XLSXStyle from "xlsx-style";const data [["demo1","demo2","demo3","demo4&quo…

电路设计(9)——八路智力抢答器的proteus仿真

1.设计要求 运用模拟电路、数字电路知识,设计、制作一个8路智力竞赛抢答器,要求有优先锁存、数显、声响及复位电路。 主要元器件:CD4511,IN4148,共阴数码管,NPN三极管9013,NE555,喇叭…

在工业制造方面,如何更好地实现数字化转型?

实现工业制造的数字化转型涉及利用数字技术来增强流程、提高效率并推动创新。以下是工业制造领域更好实现数字化转型的几个关键步骤: 1.定义明确的目标: 清楚地概述您的数字化转型目标。确定需要改进的领域,例如运营效率、产品质量或供应链…

[SWPUCTF 2021 新生赛]Do_you_know_http

我们看到它让我们用WLLM浏览器登录 那我们修改User-Agent的值即可 发现有一个a.php的我们进入该目录 它提示我们不在本地服务器上 发现有一个/secretttt.php的目录 我进入即可获得flag

Netflix Mac(奈飞mac客户端) v2.13.0激活版

Clicker for Netflix Mac版是一款适用于Mac的最佳独立Netflix播放器,具有直接从从Dock启动Netflix,从触摸栏控制Netflix,支持画中画等多种功能,让你拥有更好的观看体验。 软件特色 •直接从Dock启动Netflix •从触摸栏控制Netflix…

何以穿越产业周期?解读蓝思科技2023年增长密码

1月30日晚,蓝思科技发布了2023年业绩预告,2023年预计实现归母净利润29.38亿元-30.60亿元,同比增长20%-25%。 松果财经注意到,蓝思科技通过垂直整合,构筑了更具竞争力的产业链条。一方面,公司打造了包含ODM…

[349. 两个数组的交集](C语言)(两种解法:双指针+排序,哈希)

✨欢迎来到脑子不好的小菜鸟的文章✨ 🎈创作不易,麻烦点点赞哦🎈 所属专栏:刷题 我的主页:脑子不好的小菜鸟 文章特点:关键点和步骤讲解放在 代码相应位置 前提: 看本文章之前,建…

php微信退款:订单金额或退款金额与之前请求不一致,请核实后再试问题

bug出现情况&#xff1a; 微信支付退款 解决方案 php将float转换成int类型&#xff0c;在要转换的变量之前加上用括号括起来的目标类型 <?php $a 16.90; echo (int)($a * 100); echo "<br/>"; echo (int)strval($a * 100);