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

文章目录

  • 一、基于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.mzph.cn/news/666463.shtml

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

相关文章

【Linux】统信服务器操作系统V20 1060a-AMD64 Vmware安装

目录 ​编辑 一、概述 1.1 简介 1.2 产品特性 1.3 镜像下载 二、虚拟机安装 一、概述 1.1 简介 官网:统信软件 – 打造操作系统创新生态 统信服务器操作系统V20是统信操作系统(UOS)产品家族中面向服务器端运行环境的,是一款…

Linux驱动 SPI子系统

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

CSS要点总结

一、CSS 快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css 快速入门</title><!-- 解读1. 在 head 标签内&#xff0c;出现了 <style type"text/css"></style…

Redis 的持久化机制是什么?各自的优缺点?

Redis 提供两种持久化机制 RDB&#xff08;默认&#xff09; 和 AOF 机制: RDB&#xff1a;是Redis DataBase缩写快照 RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中&#xff0c;对应产生的数据文件为dump.rdb。通过配置文件中的save参数来…

ChatLaw:基于LLaMA微调的法律大模型

文章目录 动机数据组成模型框架模型评估 北大团队发布首个的中文法律大模型落地产品ChatLaw&#xff0c;为大众提供普惠法律服务。模型支持文件、语音输出&#xff0c;同时支持法律文书写作、法律建议、法律援助推荐。 github地址&#xff1a;https://github.com/PKU-YuanGroup…

备份RK35XX 设备的ubuntu根文件系统的方法

简介 我们使用 RK35XX 提供的SDK包制作了一个完整的 ubuntu 镜像,烧录到设备中,会在设备中安装很多我们需要的软件,运行的一些自己写的脚本和业务程序,当我们有很多台设备时,不可能每台都一个个去安装,此时我们就需要一个工具来备份当前设备的根文件系统,然后再放到 SD…

2023年上-未来几年我要做什么

1月份&#xff0c;离职。 2月份&#xff0c;春节休假回来&#xff0c;中旬去参加了一个月的瑜伽培训&#xff0c;学会了倒立、鹤蝉。。。。 3月份&#xff0c;瑜伽培训结束&#xff0c;开始收拾房子&#xff0c;并调研各类项目。 4月份&#xff0c;参与了朋友的区块链项目 …

Leetcode—203. 移除链表元素【简单】

2024每日刷题&#xff08;一零九&#xff09; Leetcode—203. 移除链表元素 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(n…

嵌入式linux移植篇之kernel

Linux的启动过程概述 Linux内核的启动过程是一个复杂而又有序的流程&#xff0c;涉及到硬件初始化、引导加载、内核初始化等多个步骤。以下是Linux内核的典型启动流程&#xff1a; BIOS/UEFI阶段&#xff1a; 电源启动&#xff1a;计算机通电后&#xff0c;BIOS&#xff08;…

#从零开始# 在深度学习环境中,如何用 pycharm配置使用 pipenv 虚拟环境

为Python项目创建虚拟环境 在深度学习环境和一般python环境中安装pipenv基本一致&#xff0c;只需要确认好pipenv指定的python版本即可,安装pipenv前&#xff0c;可以通过python --version来确认安装版本 快捷键&#xff1a;crtl alt S 查看interpreter&#xff0c;查看所有…

聊聊比特币----比特币地址

⽐特币地址是⼀个标识符&#xff08;帐号&#xff09;&#xff0c;包含27-34个字母数字拉丁字符&#xff08;0&#xff0c;O&#xff0c;I除外&#xff09;。地址可以以QR码形式表⽰&#xff0c;是匿名的&#xff0c;不包含关于所有者的信息。 地址⽰例&#xff1a;14qViLJfdG…

【51单片机】开发板和单片机的介绍(2)

前言 大家好吖&#xff0c;欢迎来到 YY 滴单片机系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

[Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例

什么是无监督学习&#xff1f; 无监督学习是机器学习中的一种方法&#xff0c;其主要目的是从无标签的数据集中发现隐藏的模式、结构或者规律。在无监督学习中&#xff0c;算法不依赖于任何先验的标签信息&#xff0c;而是根据数据本身的特征和规律进行学习和推断。无监督学习…

论文分享:利用对象存储进行高性能数据分析

本次分享的是慕尼黑工业大学&#xff08;TUM&#xff09; Dominik Durner&#xff0c;Viktor Leis&#xff0c;和 Thomas Neumann 于 2023 年 7 月发表在 PVLDB&#xff08;Volume 16 No.11) 的论文&#xff1a; Exploiting Cloud Object Storage for High-Performance Analyt…

PyQT——蓝牙收发数据(上位机案例-小车控制器)

实现功能 由于本人水平有限&#xff0c;仅用了最简单的进行实现&#xff0c;主要功能&#xff1a; 蓝牙设备扫描以及刷新蓝牙连接蓝牙数据发送蓝牙数据接收 页面实现效果 代码目录结构 代码案例 代码已经全部添加注释&#xff0c;故不再做单独解释。 Main.py ble_contr…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用&#xff0c;大数据信用越来越被人熟知&#xff0c;由于线下没有查询大数据信用的地方&#xff0c;想要查询大数据信用报告只有在线上查询&#xff0c;那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…

【Springcloud篇】学习笔记九(十五、十六章):Cloud Alibaba介绍、Nacos服务注册、服务配置中心

第十五章_Cloud Alibaba简介 1.出现SpringCloud Alibaba的原因 SpringCloud Netflix项目进入维护模式 技术的发展 2.SpringCloud Alibaba简介 2.1是什么 2.2能干嘛 2.3去哪下 阿里巴巴中文文档下载网站&#xff1a; spring-cloud-alibaba/README-zh.md at 2022.x alibaba…

学成在线:采用XXL-JOB任务调度方案使用FFmpeg处理视频转码业务

分片技术方案 概述 XXL-JOB并不直接提供数据处理的功能&#xff0c;它只会给所有注册的执行器分配好分片序号&#xff0c;在向执行器下发任务调度的同时携带分片总数和当前分片序号等参数 设计作业分片方案保证多个执行器之间不会查询到重复的任务,保证任务不会重复执行 任…

由于误删了node依赖,导致这后面的一系列操作

文章目录 1. 事发原因&#xff1a;Delete select files2. Delete select files引起的cross-env报错3. cross-env是node_modules的依赖工具4. 那么Delete selected files到底是什么操作5. 重装node_modules依赖包&#xff0c;也报错6. 报错&#xff1a;cb() never called!7. 算了…

JSR303参数校验-SpringMVC

文章目录 JSR303技术标准简介JSR303标准几个具体实现框架validation-apijakarta.validation-apihibernate-validatorspring-boot-starter-validation Spring Validationjavax.validation.constraints包下提供的注解org.hibernate.validator.constraints包扩展的注解校验注解默认…