👨🎓个人主页
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
三维重建技术是指对场景或物体建立起能在计算机环境下进行处理与分析的数学模型的过程。目
前,建立三维物体模型的方法主要分为三种:一是通过多角度的相机拍摄,通过计算机视觉技术建立三维数学模型,也称为基于图像的三维重建;二是运用传统的几何建模技术构建三维模型,例如 Nurbs、KitBashing、布尔建模等技术方法;三是基于点云的三维重建方法,通过对物体进行扫描
,生成该物体点云视角下的三维模型。
图像的三维重建方法分为两种:一是基于单幅图像的三维重建方法,依靠单张图像获取物体的形状、颜色、共面性等信息。该方法获取的信息有限,另一方面,单幅图像中的遮挡现象使得重建过程难度加大;二是基于多幅图像的三维重建,该方法主要是利用三角测量计算多个视角下物体的三维数据,通过对关键特征点的提取与匹配,对物体表面局部纹理进行填充与优化,恢复三维模型。基于图像的三维重建方法能够快速得到物体的三维模型,且虚拟化后的模型逼真,但是也存在着虚构场景无法重建、基于单幅图像的三维重建方法在大规模场景中伪影严重,重建效果差等问题。
基于传统几何技术实现三维重建的方法发展最为成熟,现在已经广泛地应用于生产生活当中,利用
该方法可以得到高精度的三维模型。但重建过程中存在对物体需要进行逐一测量、操作烦琐、建模周期长等问题。基于点云的三维重建是通过移动测绘系统(Mo⁃ bile Mapping System),包括相机和移动激光扫描系统, 采集得到点云数据,通过点云数据恢复图像,经过计 算机处理得到三维模型,模型的质量取决于点云的精细度和准确度,所以该方法的重点与难点在于如何获取高水平的点云数据、点云数据的后期降噪处理、多 个点云数据的拼接。近些年得益于深度学习方法的发展与应用,基于深度学习的三维重建技术得到了充分发展并取得了一定成就。
2014年,D.Eigen[1] 首次使用CNN神经网络进行三维重建研究工作,使用三维数据的深度特征表
示,依靠深度学习方法实现三维模型的构建,开启了基于深度学习的三维重建方法,也为研究者们指出了未来新的研究方向。 基于点云的表面表示方法进行三维重建点云从字面意思可以理解为“大量的点”,它是三 维空间坐标系下点分布的样本集合,通过扫描仪器得到的物体表面的点数据集合被称为点云数据集,该数据集中包含有大量信息,如颜色数据、距离、点在三维空间坐标系中的位置、光反射强度等,点云数据集与点云模型如图1所示。获取原始点云数据的方法主要
有 LiDAR 激光雷达、RGB-D 相机、多传感器融合等, 其中多传感器融合得到的原始点云数据最为全面,可 信度较高。点云数据集从获取到的点数量上的多少 可划分为稀疏点云与密集点云,两者在基于深度学习的表面重建过程与方法上有差异。
超声弹性成像刚度图像C平面切片的三维重建研究
一、超声弹性成像技术基础与刚度图像的作用
-
基本原理
超声弹性成像(Ultrasound Elastography)通过检测组织在外力作用下的形变特性(如应变或剪切波传播速度)来量化组织的弹性模量。相较于传统超声,它能更敏感地反映组织硬度变化,对肿瘤、纤维化等病变具有诊断价值。- 应变弹性成像(SE) :通过手动压缩或内源性压力(如呼吸、心跳)诱导组织形变,计算应变分布。
- 剪切波弹性成像(SWE) :利用声辐射力产生剪切波,通过测量波速(cs=G/ρcs=G/ρ,GG为剪切模量)直接量化组织刚度。
-
刚度图像的意义
刚度图像以彩色编码或灰度映射显示组织的弹性模量分布。例如,SWE生成的图像中,高剪切波速度区域(颜色偏红)代表高硬度,常用于肝纤维化分级和乳腺癌鉴别。
二、C平面切片的定义与三维重建需求
-
C平面切片的概念
C平面通常指横断面(Coronal Plane),是医学成像中垂直于人体长轴的二维切面。在超声弹性成像中,C平面切片包含组织刚度信息,可作为三维重建的基础数据。 -
三维重建的必要性
- 空间可视化:二维切片难以全面展示病变的三维形态,三维模型能辅助医生观察病变的立体结构和与周围组织的空间关系。
- 定量分析:三维刚度分布可用于计算病灶体积、硬度梯度等定量指标,提升诊断客观性。
三、三维重建流程与技术方法
-
数据采集与预处理
- 多平面扫描:通过超声探头获取多个C平面切片,需保证相邻切面的空间连续性。
- 噪声抑制:采用滤波算法(如各向异性扩散滤波)减少超声图像中的斑点噪声。
-
图像配准
- 刚性配准:通过平移、旋转对齐切片,适用于探头位置固定的场景。
- 非刚性配准:处理组织形变(如呼吸运动影响),常用算法包括B样条变换或基于深度学习的形变场预测。
-
三维重建算法
- 传统方法
- 面绘制(Surface Rendering) :基于Marching Cubes算法提取等值面,生成表面网格模型,适合快速可视化但可能丢失内部细节。
- 体绘制(Volume Rendering) :直接操作体素数据,保留全部信息但计算复杂度较高,常用于精细化分析。
- 深度学习方法
- 卷积神经网络(CNN) :用于端到端的切片配准与三维重建,例如U-Net结构可同时处理图像分割和空间对齐。
- 生成对抗网络(GAN) :生成缺失切片的弹性模量数据,解决稀疏采样问题。
- 多模态融合
结合B超解剖图像与弹性成像数据,通过特征匹配实现解剖结构与刚度分布的融合显示,增强诊断信息。
四、研究现状与挑战
-
技术进展
- 3D SWE技术:部分商用设备已支持实时三维剪切波成像,直接生成三维弹性模量数据,减少后处理复杂度。
- 深度学习优化:如基于3D Gaussian Splatting的算法在精度与效率上优于传统方法,平均误差可降至0.15mm以下。
-
关键挑战
- 运动伪影:呼吸、心跳导致切片间位移,需动态配准算法或门控技术同步数据采集。
- 计算效率:实时三维重建对硬件要求高,需优化算法并行性(如GPU加速)。
- 标准化评估:缺乏统一的量化指标(如空间分辨率、弹性模量误差)评估重建质量。
五、应用案例与效果评估
-
典型案例
- 肝脏纤维化评估:通过三维刚度模型量化肝硬度分布,结合体积分析提升肝硬化分期准确性。
- 乳腺癌手术规划:三维重建肿瘤边界与周围组织硬度差异,辅助精准切除。
-
评估指标
- 几何精度:通过对比CT/MRI解剖模型,计算表面距离误差(如Hausdorff距离)。
- 弹性模量一致性:使用仿体(Phantom)验证重建模量与真实值的相关系数(R²)。
- 临床效用:统计诊断灵敏度/特异性提升幅度(如某研究显示三维重建使乳腺癌诊断特异性提高15%)。
六、未来研究方向
- 实时动态重建:结合4D超声技术,实现呼吸周期内组织刚度的动态可视化。
- 多模态融合增强:整合超声弹性成像与光声成像、MRI弹性成像,构建多参数生物力学模型。
- 轻量化算法部署:开发适用于便携式超声设备的边缘计算模型,推动床旁即时三维重建应用。
📚2 运行结果
部分代码:
% FUNCTION [zgrid, xgrid, ygrid, ocvlambda, lambdaVec, valVec] = ...
% CPLANE_CROSSVAL( x, y, f, xvec, yvec )
% Inputs: (x,y) known data locations
% f known data point at location (x,y)
% (xvec,yvec) query location(s), both monotonic increasing vectors
% Outputs: zgrid imputed values at grid locations
% (xgrid,ygrid) use with surf()
% ocvlambda lambda to minimize OCV leave-out-one score
% lambdaVec vector of lambdas used for gridsearch
% valVec vector of OCV scores on the lambdaVec grid
% Generates the "best" cplane fit by repeatedly fitting with one data
% point left out and using the lambda that makes the smallest ocv score
% lambda is searched using a gridsearch.
% Uses laplacian+backslash solver options in cplane()
function [zgrid, xgrid, ygrid, ocvlambda, lambdaVec, valVec] = ...
cplane_crossval( x, y, f, xvec, yvec )
lambdaVec = [logspace( -5, 0, 10 ), 10]; % change this to your favorite range
valVec = [];
penalty = 'laplacian';
solver = 'backslash';
lno = 0;
for lambda = lambdaVec
lno = lno+1;
fprintf('[%2d/%2d]: %0.2e\n', lno, numel(lambdaVec), lambda);
val = 0;
Nd = numel(x);
for ii=1:Nd % we will skip the ii^th data point
[zgrid, ~,~,~] = cplane(xvec, yvec, x([1:ii-1, ii+1:end]), ...
y([1:ii-1, ii+1:end]), f([1:ii-1, ii+1:end]),...
penalty, solver, lambda, 0);
% now predict the value at fd(Nd) using bilinear interpolation
% for notation see Wikipedia article on bilinear interpolation
xidx = find( xvec < x(ii), 1, 'last');
yidx = find( yvec < y(ii), 1, 'last');
x1 = xvec(xidx); x2 = xvec(xidx+1);
y1 = yvec(yidx); y2 = yvec(yidx+1);
fq11 = zgrid(yidx, xidx ); fq12 = zgrid(yidx+1, xidx );
fq21 = zgrid(yidx, xidx+1); fq22 = zgrid(yidx+1, xidx+1);
fr1 = (x2 - x(ii))/(x2-x1)*fq11 + (x(ii)-x1)/(x2-x1)*fq21;
fr2 = (x2 - x(ii))/(x2-x1)*fq12 + (x(ii)-x1)/(x2-x1)*fq22;
fdpred = (y2-y(ii))/(y2-y1)*fr1 + (y(ii)-y1)/(y2-y1)*fr2;
val = val + (fdpred - f(ii))^2;
end
val = val/Nd;
valVec = [valVec; val];
end
ocvlambda = lambdaVec( valVec == min(valVec) );
if ocvlambda==lambdaVec(end) || ocvlambda==lambdaVec(1)
warning('optimal lambda was at the endpoint of gridsearch');
end
[fgrid,xgrid,ygrid,~] = cplane(xvec, yvec, x, y, f, penalty, solver, ocvlambda);
end
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]熊思博,王琦,刘光洁.三维重建技术的发展与现状研究综述[J].电脑知识与技术,2022,18(36):114-117.DOI:10.14004/j.cnki.ckt.2022.2248.
[2]李刚,王满庭,张丰萍.CT三维重建联合超声引导下经皮球囊扩张成形术治疗自体动静脉内瘘狭窄的应用研究[J].基层医学论坛,2021,25(28):4002-4004.DOI:10.19435/j.1672-1721.2021.28.003.
[3]张涛,陈伟,徐军,徐文虎,吕伟波,李炳伟,李泽福.C臂CT三维重建技术在三叉神经球囊压迫术中的临床应用[J].介入放射学杂志,2020,29(09):913-916.