关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm

这篇具有很好参考价值的文章主要介绍了关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景 background

In LED-base Photoacoustic imaging,DAS algorithm was always used for the image reconstruction. This note is about illustrate the details of DAS algorithm.
LED-based Photoacoustic imaging technology often use a linear probe, generally they have 128 elements in this probe,when the exciting light incident to the samples, if there is an absorb in the sample then it will generate the ultrasound signals and all the 128 elements will detected this signal, but due to the different distance between this absorb to every element, it will have a time-delay in each channel, the small distance will get the signal early and the large distance will get it later.
Therefore if you wanna build the image, you need to know the signal amplitude in every pixel, and each pixel was detected by 128-channels, so you need to sum all the 128-channel’s value together to get the right amplitude of every-pixel.

在LED光声中最基本的图像重建算法就是延迟求和算法DAS,通常我们都会使用128陈元的线性探头。当激励光源照射进成像样品之后,如果样品中存在一个吸收体,那么这个吸收体产生的光声信号会被这128个阵元都检测到,但由于每个阵元到这个吸收体的距离不一样,因此导致每个通道监测到的信号有不同的时间延迟,离吸收体近的阵元将会早一点的接收到超声信号,离得远点的就会晚一点接收到这个信号,但是这个信号就是这个吸收体的,只是在接收的时间上有一定的差异,因此为了正确得到这个吸收体产生的光声信号的幅值应该将这128个阵元监测的信号加起来。

存在问题(个人思考)

There is a condition on this algorithm,because if you just based on the distance difference to determine where is the absorb it will make some confuse problems, we all know that the incident light is scattered as a ball in the tissue, consequently,the generated signal can not existed on a plane, it should positioned as a ball, but in generally we assume all the signal was on a plane, then use the DAS algorithm to build the image.

有一个问题就是入射光进入组织以后会散射向各个方向,因此我们接收到的信号不应该只是来自一个平面上的,而应该是一个立体范围内的,但是为了方便计算成像,我们假设用线阵探头进行光声成像的时候接收到的光声信号来自与一个平面即我们通常所说的B-scan,B-plane.而这种线阵探头之所以成像速度快就是其可以一次就完成一个B-scan,不像Photoacoustic microscopy 需要先扫描A-line 然后组成B-plane.
假设所有的吸收体都来自这个B-plane 以后我们就可以根据这个B-plane每个像素距离每个阵元的距离来判断信号的延迟时间,然后根据每个通道接收到信号的时间差异提取出每个通道处信号的具体位置进行叠加,即可以重建出图像。

算法说明及代码示例

DAS延迟和算法,不难从字面理解,计算延迟+数据求和。

(1)延迟时间:通过计算从目标点P到传感器接收单元的距离,再根据传输介质的速度,以及超声传感器阵列的采集频率,求光声信号从目标点到信号接收所需要的时间,由此定位出所收集的数据点在传感器接收数据集中的位置,找到目标点在某个传感器单元所对应的时间的接收信号。

(2)数据求和:在确定了传感器阵列中每个单元所对应的接收时间及对应的信号强度,将数据全部提前进行求和,即为该目标点的信号强度。

根据这个方法,可以求出图像中每个像素所对应的所有阵列信号之和,由此得到整个图像区域的强度信息。
参考:参考来源
这个参考中的图像表述的不够清楚:手画图方便大家理解

关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm,计算成像,算法,人工智能,计算机视觉

  1. 首先计算延迟时间
    要计算延迟时间就得知道每个像素到每个阵元的距离,因为可以由距离得到信号的飞行时间。那么根据两点间的距离公式,第(i,j)个像素到第(N,0)个阵元之间的距离可以表示为(以图象上边的中心和线性探头的中心为原点)N为阵元数量:
    我们现在设成像大小为M x M,每个阵元之间的距离为Pitch_size, 每个像素大小为dx,dy

d = s q r t ( (( i − N / 2 ) ∗ d x − ( C h a n n e l i − N / 2 ) ∗ P i t c h s i z e ) 2 + ( j ∗ d y − 0 ) 2 ) d = sqrt (((i-N/2)*dx-(Channel_i - N/2)*Pitch_size)^2+(j*dy - 0)^2) d=sqrt(((iN/2dx(ChanneliN/2)Pitchsize2+(jdy0)2)
飞行时间就是用计算出来的距离处理声音传播的速度。
为了确定在每个通道中采集到的到底是一维信号的哪一个点还需要乘以采样频率,采样频率就代表每秒钟产生了多少个数据点,因此有 Vs是声速,fs是探头的采样频率。
t i m e = ( d / V s ) ∗ f s time = (d/Vs)*fs time=(d/Vs)fs

%% 参数定义
%%

% 定义图像信息
X = 550; Y = 550;	% 定义图像大小
dx = 0.1e-3;        % 定义图像像素尺寸,单位:m
dy = 0.1e-3;        % 定义图像像素尺寸,单位:m
IM = zeros(X,Y);    % 定义一个背景图像

% 定义换能器信息
N = 128;            % 超声换能器阵列单元数量
fs = 80e6;          % 数据的采集频率,单位:Hz
dt = 1/fs;          % 数据的采集时间分辨率,单位:s
pitch = 0.3e-3;     % 阵列单元间隔,单位:m

% 传播介质信息
vs = 1.43e3;         % 介质声速,单位:m/s

%% DAS图像重构
%%

for i=1:X
    for j=1:Y
        for channel_i = 1:N
            
            % 计算目标点到传感器的距离,基于两点距离公式,探头与图像中间对齐(为保证中间较强信号保留)
            d = sqrt(((i-X/2)*dx-(channel_i-N/2)*pitch)^2+(j*dy-0)^2); 
            
            % 计算传输需要的时间(延迟时间)
            time = floor(d/vs*fs)+1; 
            
            % 在像素位置对所有阵元的数据叠加处理
            IM(i,j) = IM(i,j) + sensor_data(channel_i,time);
            
        end
    end
end

% 根据实际需要进行图像变换
IM=IM'; % 图像反转

相关解释:

(1)有关图像参数设置,可以以现有数据为参考;

(2)探头参数的定义,以实际情况为准;

(3)注意sensor data中通道和时间的行列分布;

(4)可能存在数据叠加时,报错超出数组范围的情况。起初,所采用的解决办法是调整传感器采集频率。传感器实际采集频率为80M Hz,由于超出数据,程序中使用的是75M Hz。后来,改了图像的大小,从600改到了500,感觉比较合适。整体只需要把图像的大小和像素大小控制在比较合适的范围即可。最后,在叠加语句前加了判定语句,如果时间超过时间检测大小,就不执行叠加;时间在采集范围内则叠加。

修改后的叠加程序:

 if time<=size(sensor_data,2)
                % 在像素位置对所有阵元的数据叠加处理
                IM(i,j) = IM(i,j) + sensor_data(channel_i,time);
            end

重点参考:https://zhuanlan.zhihu.com/p/606874661文章来源地址https://www.toymoban.com/news/detail-737772.html

到了这里,关于关于超声和光声中的延迟求和算法的详细说明 Detail description of DAS algorithm的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最详细STM32,cubeMX 超声波测距

    这篇文章将详细介绍 STM32使用 cubeMX驱动超声波测距 。 实验材料:STM32F103C8T6开发板, HC-SR04 超声波模块。 所需软件:keil5 , cubeMX ,AiThinker Serial Tool 串口助手。 实验目的:了解 STM32使用 cubeMX驱动超声波 。 实验:超声波测距。 HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触

    2024年02月08日
    浏览(37)
  • 关于MacOS 程序坞自动显示隐藏的延迟解决方法

    使用Mac的时候把程序坞放左边能有更大的显示空间,但是把程序坞设置成自动隐藏能有更更更大的空间。但是设置程序坞显示或隐藏会有一点点(大概1秒左右)的延迟,逼急强迫症,可以使用下面的方法可以消除这个延迟: 打开 应用程序——实用工具——终端 输入代码:

    2024年02月16日
    浏览(51)
  • 关于MAC M1 输入中文 卡顿 延迟 滞后的解决方法

    首先说下我的情况, 设备是mac studio ultra, 是的算的上是一个工作站级别的配置了把? 结果19年的mbp16寸英特尔版没出现过中文输入延迟, 但是这mac studio ultra一开始就延迟特别厉害, 症状: 绝大部分软件 只要输入中文或韩文, 我估计日文也会一样,, 延迟明显, 比如我1秒敲击5个字母

    2024年02月10日
    浏览(76)
  • 算法leetcode|67. 二进制求和(rust重拳出击)

    给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 1 = a.length, b.length = 10 4 a 和 b 仅由字符 \\\'0\\\' 或 \\\'1\\\' 组成 字符串如果不是 \\\"0\\\" ,就不含前导零 面对这道算法题目,二当家的再次陷入了沉思。 直接用API将字符串按照2进制转成整型,相加,然后再按照2进制转

    2024年02月14日
    浏览(31)
  • 详细介绍MATLAB中的图论算法

    MATLAB是一种功能强大的编程语言和环境,提供了许多用于图论算法的工具和函数。图论是研究图及其属性和关系的数学分支,广泛应用于计算机科学、网络分析、社交网络分析等领域。在MATLAB中,我们可以使用图论算法来解决各种问题,如最短路径问题、最小生成树问题、最

    2024年02月16日
    浏览(34)
  • [超详细]RabbitMQ安装延迟消息插件

    Community Plugins — RabbitMQ https://www.rabbitmq.com/community-plugins.html 进入以上地址以后,找到Routing里边的rabbitmq_delayed_message_exchange然后点击Releases   下载完成以后  然后解压到plugins文件中  然后再sbin目录下运行 rabbitmq-plugins enable rabbitmq_delayed_message_exchange  查看交换机类型中是否有

    2024年02月07日
    浏览(39)
  • flink数据延迟原因及详细处理方案

    数据输入环节问题:可能是数据来源的数据增长速度过快,导致flink消费者处理数据的速度跟不上数据生成的速度。解决方案:增加flink消费者的并发度,使用分区和并行流的方式来处理数据,以保证消费者可以快速地处理大量的数据。 数据输出环节问题:可能是flink消费者完

    2024年02月13日
    浏览(31)
  • 机器学习中的分类算法详细介绍一(KNN、决策树)

    机器学习中的分类算法有:KNN算法、决策树、随机森林、SVM、极限学习机、多层感知机(BP神经网络)、贝叶斯方法。 关键知识:数据预处理(数据标准化)、K个邻居(需要由用户指定)、距离计算方式(需要考虑数据的特点) 核心思想:物以类聚人以群分,空间相近则类

    2024年02月09日
    浏览(33)
  • 如何解决RabbitMQ中的延迟消息问题

    首先我们要知道什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false。 消息是一个过期消息,超时无人消费。 要投递的队列消息堆积满了,最早的消息可能成为

    2024年02月14日
    浏览(38)
  • 关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化:输入延迟、卡顿,大小核调度

    电脑更换12/13代CPU后,大小核调度的优化有一定的问题,这点在使用VMware操作Linux虚拟机时比较明显。个人遇到的比较严重的问题有两个: 键鼠输入有明显延迟及卡顿 编译时使用的可能是小核而不是大核 环境:13400台式机 + 12500h笔记本 注:win11系统下,使用VMware15可能会报错

    2024年02月07日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包