光学分辨率光声显微镜中基于深度学习的运动校正算法

news2024/11/16 21:41:55

在这项研究中,我们提出了一种基于深度学习的方法来校正光学分辨率光声显微镜 (OR-PAM) 中的运动伪影。该方法是一种卷积神经网络,它从具有运动伪影的输入原始数据建立端到端映射,以输出校正后的图像。首先,我们进行了仿真研究,以评估所提出方法的可行性和有效性。其次,我们采用这种方法处理具有多个运动伪影的大鼠脑血管图像,以评估其在体内应用中的性能。结果表明,该方法适用于大血管和毛细血管网络。与传统方法相比,本研究中提出的方法可以通过修改训练集轻松修改,以满足 OR-PAM 中运动校正的不同场景。

介绍

光学分辨率光声显微镜( OR-PAM)是光声成像 (PAI)的一个独特子类别 [ 1、2、3 ]。通过将锐聚焦脉冲激光与快速热膨胀引起的超声波信号的高灵敏度检测相结合,OR-PAM 提供了微米级的光学衍射极限横向分辨率和毫米级的成像深度。凭借这些特殊的特性,OR-PAM 被广泛应用于生物学、医学和纳米技术的研究 [ 4]. 然而,高分辨率成像模式对运动伪影也极为敏感,这主要归因于动物的呼吸和心跳。运动伪影对于体内目标成像几乎是不可避免的,这会导致图像定量分析的关键信息丢失。因此,有必要探索可以减少 OR-PAM 中运动伪影影响的图像处理方法。

最近,已经为PAI提出了几种运动校正方法以获得高质量图像 [ 5、6、7、8 ]。大多数现有算法主要基于广泛应用于光声计算机断层扫描 (PACT) 且仅适用于横截面 B 扫描图像的去模糊方法[ 5、6 ]。施瓦茨等。[ 7 ] 提出了一种算法来校正声学分辨率光声显微镜 (AR-PAM) 的相邻 B 扫描图像之间的运动伪影。不幸的是,该算法需要一个动态参考,这在高分辨率 OR-PAM 图像中是不可行的。Zhao 等人提出的一种方法。[ 8] 具有解决这些缺点的能力,但只能纠正沿慢扫描轴方向的位错。最近基于深度学习的方法在许多领域展示了最先进的性能,例如自然语言处理、音频识别和视觉识别[ 9、10、11、12、13、14 ]。深度学习通过使用反向传播算法来指示网络应如何更改其内部参数来发现复杂的结构,这些参数用于根据前一层中的表示计算每一层中的表示。卷积神经网络 (CNN) 是图像处理中深度学习的常用模型 [15 ]。在这项研究中,我们提出了一个完整的 CNN [ 16 ] 来校正 OR-PAM 的最大振幅投影 (MAP) 图像而不是体积中的运动伪影。为了评估该方法的性能,我们进行了模拟测试和体内实验。实验结果表明,所提出的方法可以消除模拟和体内 MAP 图像中的位移。

方法

实验装置

本研究中的 OR-PAM 系统已在以前的出版物中进行了描述 [ 17]. 高重复频率激光器作为重复频率为 50 KHz 的照射源。激光束耦合到单模光纤中,通过光纤准直透镜(F240FC-532,Thorlabs Inc.)准直,并通过物镜聚焦以照亮样品。定制的微机电系统扫描仪由多功能数据采集卡(PCI-6733,National Instrument Inc.)驱动,实现快速光栅扫描。我们使用中心频率为 10 MHz、带宽为 80% 的平面超声换能器(XMS-310-B,Olympus NDT)检测光声信号。原始光声信号由自制前置放大器以 ~ 64 dB 放大,并由高速数据采集卡以 250 MS/s 的采样率(ATS-9325,Alazar Inc.)数字化。使用 Matlab (2014a, 数学)。我们使用希尔伯特变换导出每个深度分辨光声信号的包络,并沿轴向投影最大幅度以形成 MAP 图像。我们使用张量流包实现了我们的运动校正算法,并在个人计算机上使用 Python 软件训练了这个神经网络。

CNN算法

图 1举例说明了 CNN 的映射过程。在这种情况下,输入是一个二维的 4×4 矩阵,卷积核是一个 2×2 矩阵。首先,我们选取​​输入矩阵右上角相邻的四个元素(a,b,e,f),将每个元素与卷积核中对应的元素相乘,将所有计算出的元素相加,形成输出矩阵中的S1 . 我们通过在输入矩阵的任一方向上将 4 × 4 矩阵移动一个像素来重复相同的过程,以计算输出矩阵中剩余的像素值。CNN 按两个主要属性分类:局部连通性和参数共享。如图 1所示,元素S1不与输入层中的所有元素相关联;它仅与空间局部区域(a、b、e、f)中的少量元素相关联。一个隐藏层有多个特征图,一个特征图内的所有隐藏元素共享相同的参数,进一步减少了参数的数量。

图。1

卷积神经网络的映射过程

本文中 CNN 的结构如图 2所示。用于训练的带有运动伪影的图像是从地面实况图像中获得的。如图2所示,该方法由三个卷积层组成。第一个卷积层可以表示为

(1)

图 2

 

基于卷积神经网络的运动校正结构

 

结果

训练结束后,我们进行了一系列实验来评估该方法的性能。在模拟中,我们创建了一个沿 Y 轴方向的位移,用白色箭头表示(图 3 (a))。我们用经过训练的 CNN 处理图像并获得结果,如图3 (b) 所示。对比处理前后的图像,我们观察到位移已经被校正,这表明我们的算法在模拟情况下效果很好。

图 3

仿真实验结果

 

我们创建了水平伪影和垂直运动伪影,如图 4 (a) 所示。图 4 (c) 和 (d) 分别显示了蓝色矩形和黄色矩形中运动伪影的放大视图。图4 (b) 描绘了通过所提出的方法校正后的 MAP 图像,其中水平伪影和垂直运动伪影都已得到校正,如图 4 (e) 和图4 ( f ) 所示。

图 4

 

校正水平和垂直错位运动伪影的结果。对应于大鼠大脑原始数据的 MAP 图像b运动校正后的 MAP 图像。cd ( a )中两个框的放大图像。ef ( b )中相应区域的放大图

我们使用不同的内核大小评估了网络性能。我们进行了三个实验:(1)第一个实验中的内核大小为 3×3;(2) 第二个内核大小为 4 × 4;(3) 第三个实验中的内核大小为 5×5。图 6 中的结果 表明,使用更大的内核大小可以显着提高该算法的性能。但是,处理效率会降低。因此,网络规模的选择应该始终是性能和速度之间的权衡。

图 6

使用不同内核大小的结果

结论

我们通过实验证明了所提出方法的可行性,该方法使用 CNN 来校正 OR-PAM 中的运动伪影。与现有算法[5、6、7、8]相比,所提出的方法在消除没有任何参考对象的所有方向上的运动伪影方面表现出更好的性能。此外,我们验证了该方法的性能随着内核大小的增加而提高。尽管此方法是为 OR-PAM 设计的,但在使用相应的训练集时,它能够校正其他成像方式(例如光声层析成像、AR-PAM 和光学相干层析成像)中的运动伪影。

 

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

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

相关文章

PYTHON爬虫基础

一、安装package 在使用爬虫前,需要先安装三个包,requests、BeautifulSoup、selenium。 输入如下代码,若无报错,则说明安装成功。 import requests from bs4 import BeautifulSoup import selenium二、Requests应用 了解了原理…

关于IDEA中Thread.activeCount()的问题记录

回顾: Thread类的activeCount()方法用于返回当前线程的线程组中活动线程的数量。返回的值只是一个估计值,因为当此方法遍历内部数据结构时,线程数可能会动态更改。总之它返回当前线程的线程组中活动线程的数量。 在研究多线程对同一变量的修…

【FAQ】集成分析服务的常见问题及解决方案

常见问题一:如何验证Analytics是否上报/接入成功?以及关键日志含义是什么? 在初始化Analytics SDK前添加SDK日志开关如下: HiAnalyticsTools.enableLog (); 2.初始化SDK代码如下: HiAnalyticsInstance instance Hi…

kettle安装部署_简单认识_Spoon勺子界面---大数据之kettle工作笔记002

然后我们来看一下这个kettle的安装,很简单,下载解压就可以了 上面的地址是官网很烂 下面的地址好一些 这个是官网可以看到很慢,很不友好 这个是下面那个地址,可以看到 最新的是9.0了,一般都用 一般都用8.2 这里下载这个就可以了 下载以后可以看到有个pdi

【代码随想录训练营】【Day19休息】【Day20】第六章|二叉树|654.最大二叉树|617.合并二叉树|700.二叉搜索树中的搜索|98.验证二叉搜索树

最大二叉树 题目详细:LeetCode.654 这道题在题目几乎就说明了解题的思路了: 创建一个根节点,其值为 nums 中的最大值;递归地在最大值左边的子数组上构建左子树;递归地在最大值右边的子数组上构建右子树;…

计算机系统基础知识

计算机的基本组成 计算机组成逻辑图 计算机部件作用 一级部件作用 运算器:计算机的执行部件,受控制器控制,执行算术运算或逻辑运算控制器:决定计算机运行过程的自动化。不仅能保证程序指令的正确执行,还能处理异常事…

12款适合小团队协作、任务管理和进度跟踪的在线任务管理的工具推荐?

国内外12款主流任务管理软件测评: 1.开发任务管理PingCode; 2.多合一项目任务管理Worktile;3.个人和小团队项目任务管理Notion; 4.企业任务管理平台SmartTask; 5.小团队任务管理Teambition;6.IT任务追踪管理Jira等。无论是做好工作任务管理还是个人任务管理,从来都不…

web网页如何实现响应式导航栏--移动端导航栏

背景: 一提到响应式导航栏,大家第一反应可能就是bootstrap响应式导航栏,这个响应式的一般是针对屏幕变小时,视口出现导航栏,可是,展示到移动端的时候,并没有变化??&#…

LabVIEW利用矢量量化直方图开发人脸识别

LabVIEW利用矢量量化直方图开发人脸识别通常,人脸识别系统会检查场景的静止图像或视频图像,然后使用存储的人脸数据库识别或验证场景中的一个或多个人。我程序专注于静止图像人脸识别,使用来自众所周知的人脸数据库的人脸图像,用于…

Prometheus之pushgateway

Pushgateway简介 Pushgateway是Prometheus监控系统中的一个重要组件,它采用被动push的方式获取数据,由应用主动将数据推送到pushgateway,然后Prometheus再从Pushgateway抓取数据。使用Pushgateway的主要原因是: Prometheus和targ…

Teradata 离场,企业数据分析平台如何应对变革?

近日大数据分析和数仓软件巨头 Teradata(TD)宣布基于中国商业环境的评估,退出在中国的直接运营。TD 是全球最大的专注于大数据分析、数仓和整合营销管理解决方案的供应商之一,其早在 1997 年就进入中国,巅峰期占据半数…

基于卷积神经网络图像风格迁移系统的设计与实现(flask系统)

1.摘要 Leon Gatys 等人研发的深度神经网络使用神经的表达来分离任意图片的内容和风格,为生成艺术图片提供一个神经算法。本文基于Style Transfer算法,使用风格成本函数训练CNN,用卷积神经网络提取图像特征,依次提取内容图像的内…

数据库面试——锁的12连问,赶紧收藏!

目录 1. 为什么需要加锁 2. InnoDB有哪些锁? 2.1 共享/排他锁 2.2 意向锁 2.3 记录锁(Record Lock) 2.4 间隙锁(Gap Lock) 2.5 临键锁(Next-Key Lock) 2.6 插入意向锁 2.7 自增锁 3. 什么是死锁?如…

从红队视角看AWD攻击

AWD的权限维持 攻防兼备AWD模式是一种综合考核参赛团队攻击、防御技术能力、即时策略的比赛模式。在攻防模式中,参赛队伍分别防守同样配置的虚拟靶机,并在有限的博弈时间内,找到其他战队的薄弱环节进行攻击,同时要对自己的靶机环…

20230220华南金牌主板u盘启动

20230220华南金牌主板u盘启动 2023/2/20 10:29 百度搜索:华南金牌主板u盘启动 https://www.zhihu.com/question/498121895?utm_id0 华南金牌主板b85u盘启动怎么设置? 华南金牌主板b85u盘启动怎么设置 海的那边 上小学后才发现还是幼儿园好混…… 华南一般是F7和F1…

ADRC自抗扰控制总结

目录 前言 1.ADRC形式 1.1形一 1.2形二 2.被控对象 3.仿真分析 3.1仿真模型 3.2仿真结果 4.学习问题 前言 前面的3篇文章依次介绍了微分跟踪器TD、状态观测器ESO和非线性状态误差反馈NLSEF三部分内容,至此ADRC的结构已经介绍完毕,现在对分块学习…

【数据结构与算法】2.八大经典排序

文章目录简介1.分析排序算法2.插入排序2.1.直接插入排序2.2.希尔排序3.选择排序3.1.直接选择排序3.2.堆排序3.2.1.堆的数据结构3.2.2.算法实现4.交换排序4.1.冒泡排序4.2.快速排序5.归并排序6.基数排序7.八大排序算法总结简介 排序对于任何一个程序员来说,可能都不会…

从技术上来看,互联网技术开始衍生和蜕变出更多的新技术

很多人在看待产业互联网的问题上,一味地割裂它与互联网之间的联系,甚至还有人将产业互联网看成是对于传统互联网的颠覆。如果仅仅只是以这样的眼光来看待产业互联网,那么,他们势必是无法完整把握产业互联网的本质内涵和原始奥义的…

2023什么是分销商城?怎么搭建分销商城

当实体机构都接连探索线上营销模式的时候,分销也随着社交电商的兴起应运而生。 大家好,我是你们熟悉而又陌生的好朋友梦龙,一个创业期的年轻人 它借助裂变效率高的属性,建立更多用户触点,更好的提升企业运营的势能&am…

ros-sensor_msgs/PointCloud2消息内容解释

1.字段解释 header-----头文件,包含消息的序列号,时间戳(系统时间)和坐标系id,其中secs为秒,nsecs为去除秒数后剩余的纳秒数 height-----点云的高度,如果是无序点云,则为1,例子中的点云为有序点…