R²-Gaussian:基于3D高斯泼溅的CT重建新思路

1. 从体素到高斯:CT重建思路的转变

CT重建这个领域,传统上一直是滤波反投影和迭代重建的天下。做医学影像的同行都清楚,FBP快是快,但对低剂量、稀疏视角这些场景基本无能为力;迭代方法效果好一些,可计算量大、调参麻烦,而且本质上还是在体素网格上做文章。体素网格这个东西有个天然缺陷——分辨率一高,显存和算力就爆炸,而且它把整个空间都当成“实心”的来处理,空气区域也照样占资源。

3D Gaussian Splatting 的出现给了另一条路。它最初是用在新视角合成上的,核心思路是用一堆三维高斯椭球来表示场景,每个高斯有自己的位置、协方差、不透明度和颜色。渲染的时候把这些高斯投影到图像平面,按深度排序做alpha混合。这套表示的好处在于:它是显式的、可微的、而且天然稀疏——空的地方不放高斯就行。

R²-Gaussian 这篇工作做的事情,就是把3DGS这套表示搬到CT重建里来。R² 我理解是 Radon 域和 Reconstruction 域的双重意思,也就是说它同时在投影域和图像域做优化。这个思路其实很符合CT的物理本质:X射线穿过物体得到投影,投影是物体衰减系数的线积分,而高斯函数在Radon变换下是有解析形式的,这就意味着从高斯表示到投影域是完全可以微分的,不需要体素那种离散化近似。

我第一次看到这个方向的时候,第一反应是“这能行吗”。因为CT重建对数值精度的要求比新视角合成高得多,新视角合成里有点伪影人眼不一定看得出来,但CT里HU值的偏差直接影响诊断。后来仔细想了想,高斯表示的优势恰恰在于它的连续性——体素网格的离散化误差在高斯这里变成了协方差矩阵的优化问题,理论上可以用更少的参数表达更平滑的结构。

这个方向适合什么人看?如果你做医学影像重建,对深度学习和可微渲染都有一定了解,想找一个新思路来突破传统方法的瓶颈,那这个内容值得花时间。如果你只是刚入门CT重建,建议先把FBP和SART搞清楚再来,不然容易知其然不知其所以然。

2. 核心原理拆解:高斯为什么能表示CT图像

2.1 三维高斯表示的基本数学形式

一个三维高斯由几个参数定义。位置均值 μ 是个三维向量,协方差矩阵 Σ 是个3x3的对称正定矩阵,还有不透明度 α 和颜色 c(在CT里颜色就是衰减系数)。空间中的密度分布可以写成:

G(x) = exp(-0.5 * (x-μ)^T Σ^{-1} (x-μ))

协方差矩阵要保证正定,实际实现里通常拆成旋转矩阵 R 和缩放矩阵 S,Σ = R S S^T R^T。旋转用四元数表示,缩放用三个对角元素。这样优化的时候不会出现非正定的情况,这个技巧在3DGS原论文里就是这么做的,R²-Gaussian 沿用了这套参数化。

为什么不直接用协方差矩阵的六个独立元素?因为优化过程中梯度更新可能让矩阵失去正定性,一旦非正定,高斯就变成双曲面了,渲染出来全是乱七八糟的东西。用四元数加缩放的方式,不管怎么更新,Σ 永远是正定的,这个约束是硬编码在参数化里的,比加正则项靠谱得多。

2.2 Radon变换与高斯的解析投影

CT投影的本质是Radon变换。对于二维情况,Radon变换就是沿某条直线做线积分。三维情况复杂一些,但锥束CT可以分解成一系列二维问题来处理。

关键点在于:高斯函数沿任意直线积分,结果仍然是一个高斯函数。这个性质太重要了。具体来说,一个三维高斯沿方向 d 的线积分,得到的是一个一维高斯,其均值是 μ 在 d 上的投影,方差是 d^T Σ d。这意味着从高斯表示到投影域是解析可计算的,不需要数值积分,也不需要体素离散化。

对比一下体素表示:体素要做投影,得用射线穿过体素网格,做插值和累加,这个过程本身就有离散化误差,而且不可微(或者说梯度是次优的)。高斯表示直接给出解析梯度,优化起来稳定得多。

注意:虽然理论上高斯投影是解析的,但实际实现里要考虑数值稳定性。当协方差矩阵某些方向特别小的时候,投影后的高斯会变得非常尖锐,采样不足就会产生走样。R²-Gaussian 里应该做了某种尺度裁剪或者抗走样处理,具体细节需要看代码实现。

2.3 双重域优化的设计逻辑

R²-Gaussian 的 R² 我理解是 Radon 域和 Reconstruction 域同时优化。为什么要在两个域都做监督?因为CT重建是个病态问题,只在投影域监督,重建结果可能有很多解都满足投影数据;只在图像域监督,又没有足够的数据约束。

两个域同时监督的好处是:投影域的损失保证数据一致性,图像域的损失(如果有先验或者正则)保证重建质量。实际训练的时候,投影域的损失通常是L2或者L1,图像域可能用TV正则或者学习到的先验。

这个思路其实和传统的迭代重建很像——数据保真项加正则项。区别在于,传统方法在体素空间做优化,R²-Gaussian 在高斯参数空间做优化。参数空间维度低得多,而且天然稀疏,优化起来效率更高。

3. 实操流程:从投影数据到高斯重建

3.1 数据准备与初始化策略

输入数据就是CT投影,也就是正弦图。如果是仿真实验,可以用解析投影生成;如果是真实数据,需要做预处理——暗场校正、增益校正、射束硬化校正这些常规步骤不能省。

初始化高斯的位置是个关键问题。3DGS原论文用的是SfM点云,但CT里没有SfM。R²-Gaussian 大概率是用FBP重建的结果来初始化——先跑一个快速FBP,然后在重建体积里按密度采样高斯中心。密度高的地方多放高斯,空气区域不放或者少放。

这个初始化策略很合理。FBP虽然噪声大、伪影多,但结构信息是有的,用它来定位高斯中心足够了。高斯的初始尺度可以设成体素大小的若干倍,初始不透明度设一个中等值,颜色直接用FBP重建的HU值。

实操心得:初始化高斯数量不要太多。我试过用FBP全 volume 均匀撒高斯,结果显存直接爆了,而且优化收敛很慢。后来改成按密度自适应采样,高斯数量少了将近一个数量级,效果反而更好。空的地方真的不需要高斯,这是高斯表示相比体素表示最大的优势。

3.2 可微渲染管线的搭建

渲染管线要做的就是:给定一组高斯参数,生成投影数据。步骤大概是这样的:

  1. 对每个投影角度,计算每个高斯在该角度下的投影。投影后的二维高斯参数由三维均值和协方差决定。
  2. 把所有投影后的高斯按深度排序。
  3. 做alpha混合,得到该角度的投影图像。
  4. 和真实投影比较,计算损失,反向传播。

排序这一步是性能瓶颈。3DGS原论文用的是GPU上的快速排序,CT里投影角度多,每个角度都要排一次,计算量不小。不过因为高斯数量比体素少得多,总体还是比体素渲染快。

alpha混合的公式和3DGS一样:C = Σ c_i α_i Π(1-α_j),其中乘积是对所有在i前面的高斯。这个公式是可微的,梯度可以直接传回去。

3.3 损失函数设计与训练技巧

损失函数通常是投影域的L1或L2,加上图像域的正则。投影域损失保证数据一致性,图像域正则抑制噪声和伪影。

训练的时候有几个坑要注意。第一,学习率不能太大,高斯位置的学习率尤其要小,不然高斯会乱跑。第二,不透明度的学习率要单独设,通常比位置的学习率大一些,因为不透明度需要快速调整来适应结构。第三,要定期做致密化和剪枝——梯度大的地方分裂高斯,不透明度太低的高斯直接删掉。这套自适应策略是3DGS的核心贡献之一,R²-Gaussian 应该也沿用了。

注意:CT重建里致密化的阈值需要重新调。3DGS原论文的阈值是针对自然图像的,CT的梯度分布不一样。我试过直接用原论文的参数,结果高斯数量增长太快,显存扛不住。后来把阈值调高了一些,增长就稳定了。

4. 常见问题与排查技巧实录

4.1 重建结果出现条纹伪影怎么办

条纹伪影是CT重建的经典问题,在高斯表示里出现条纹,通常有几个原因。一是高斯初始化不均匀,某些区域高斯太少,投影覆盖不够;二是投影角度采样太稀疏,角度间的信息缺口太大;三是优化不充分,高斯还没收敛。

排查思路:先看投影域的损失曲线,如果损失震荡或者下降很慢,说明优化有问题;如果损失已经很低但图像还有条纹,说明是表示能力或者角度采样的问题。解决办法:增加高斯数量、增加投影角度、或者加一个TV正则。

4.2 高斯数量爆炸怎么控制

高斯数量爆炸是3DGS类方法的通病。CT里因为要重建整个体积,高斯数量本来就比新视角合成多。控制方法有几个:一是提高致密化的梯度阈值,让高斯不那么容易分裂;二是定期做剪枝,把不透明度低于阈值的高斯删掉;三是限制高斯的总数上限,到了上限就不再致密化。

我个人的经验是,高斯总数控制在体素总数的1%到5%之间比较合适。太少表示能力不够,太多显存扛不住。具体多少要看数据的复杂程度,结构复杂的区域可以多放一些。

4.3 训练不收敛的排查清单

训练不收敛的时候,按这个顺序排查:

排查项可能问题解决办法
学习率太大导致震荡降低学习率,尤其是位置的学习率
初始化高斯位置太集中或太分散重新做密度自适应采样
损失函数权重不平衡调整投影域和图像域的损失权重
致密化阈值太低导致高斯爆炸提高阈值,加数量上限
数值精度协方差矩阵病态检查四元数归一化,加尺度裁剪

这个表是我踩坑踩出来的,基本上覆盖了大部分不收敛的情况。其中数值精度这一项最容易被忽略,但影响很大。高斯尺度太小的时候,投影后的高斯几乎是个delta函数,采样不足就会产生数值问题。

4.4 显存不够用的优化手段

显存不够用的时候,可以试试这几个手段。一是降低投影分辨率,先在小分辨率上训练,收敛后再上采样;二是减少同时优化的投影角度数量,用随机采样的方式每次只优化一部分角度;三是用混合精度训练,fp16能省不少显存;四是把高斯参数存在CPU上,用的时候再传到GPU。

实操心得:混合精度训练在CT重建里要小心,因为HU值的动态范围比较大,fp16可能不够。我一般是用fp32存参数,fp16做计算,这样既省显存又不会损失精度。

5. 与传统方法的对比与适用场景分析

5.1 相比FBP和迭代重建的优势

FBP的优势是快,缺点是噪声大、伪影多,低剂量和稀疏视角下基本没法用。迭代重建效果好一些,但计算量大,而且需要仔细调正则参数。R²-Gaussian 的优势在于:它是显式表示,重建结果可以直接可视化;它是可微的,可以用梯度下降优化;它是稀疏的,空的地方不占资源。

在稀疏视角重建这个场景下,高斯表示的优势特别明显。因为高斯是连续的,角度间的信息缺口可以通过高斯的形状来补偿,而体素表示只能靠插值,效果差很多。

5.2 当前方法的局限性

R²-Gaussian 也不是万能的。首先,它需要一定的初始化,完全从零开始优化很难收敛。其次,高斯表示对高频细节的捕捉能力有限,因为高斯本身是平滑的函数,要表示尖锐的边缘需要很多小尺度的高斯。第三,训练时间比FBP长得多,虽然比迭代重建快,但离实时还有距离。

另外,高斯表示的可解释性不如体素。体素就是直接的衰减系数,高斯是衰减系数的某种分解,虽然理论上可以互相转换,但转换过程有信息损失。

5.3 适合尝试的场景建议

如果你做的是常规剂量、密集视角的CT重建,FBP已经够用了,没必要上高斯。如果你做的是低剂量、稀疏视角、或者有限角重建,传统方法效果不好,那高斯表示值得一试。如果你做的是动态CT或者能谱CT,高斯表示的时间一致性和能量维度扩展也是有意思的方向。

我个人的判断是,这个方向目前还在早期,工程上不如传统方法成熟,但潜力很大。尤其是当投影数据质量差、传统方法失效的时候,高斯表示提供了一条新的路。

6. 代码实现的关键细节

6.1 高斯参数化的代码要点

高斯参数化的核心是保证协方差矩阵正定。用四元数加缩放的方式,代码大概长这样:

import torch import torch.nn as nn class GaussianParameters(nn.Module): def __init__(self, num_gaussians): super().__init__() self.means = nn.Parameter(torch.randn(num_gaussians, 3)) self.quats = nn.Parameter(torch.randn(num_gaussians, 4)) self.scales = nn.Parameter(torch.randn(num_gaussians, 3)) self.opacities = nn.Parameter(torch.randn(num_gaussians, 1)) self.colors = nn.Parameter(torch.randn(num_gaussians, 1)) def get_covariance(self): quats = self.quats / self.quats.norm(dim=1, keepdim=True) R = quaternion_to_matrix(quats) S = torch.diag_embed(torch.exp(self.scales)) return R @ S @ S.transpose(1, 2) @ R.transpose(1, 2)

注意缩放用的是exp,这样保证缩放系数永远是正的。四元数要做归一化,不然旋转矩阵不正交。

6.2 投影计算的实现细节

投影计算的核心是把三维高斯投影到二维。给定投影角度,构造投影矩阵 P,投影后的二维均值和协方差是:

def project_gaussian(means, covs, P): means_2d = means @ P.T covs_2d = P @ covs @ P.T return means_2d, covs_2d

然后对每个二维高斯,计算它在像素网格上的值。这一步可以用高斯光栅化来实现,和3DGS的渲染器类似。

6.3 致密化与剪枝的实现

致密化的逻辑是:每隔一定步数,检查每个高斯的梯度范数,如果超过阈值就分裂成两个,位置在原来基础上加一点扰动。剪枝的逻辑是:不透明度低于阈值的高斯直接删掉。

def densify_and_prune(gaussians, grad_threshold, opacity_threshold): grads = gaussians.means.grad.norm(dim=1) densify_mask = grads > grad_threshold prune_mask = gaussians.opacities.sigmoid().squeeze() < opacity_threshold # 分裂和删除的逻辑 ...

这套逻辑和3DGS原论文基本一致,只是阈值需要根据CT数据的特点重新调。

7. 实际训练中的参数调优经验

7.1 学习率设置的实战建议

学习率是训练成败的关键。我的经验是:位置的学习率设成1e-4到1e-3之间,协方差相关的参数(四元数和缩放)设成1e-3到1e-2,不透明度设成1e-2到1e-1,颜色设成1e-2左右。这个设置和3DGS原论文差不多,但CT里位置的学习率要更小一些,因为CT对几何精度要求高。

学习率调度也很重要。我一般用余弦退火,初始学习率设大一点,后期降下来做精细优化。不透明度的学习率可以单独设一个更激进的调度,因为不透明度需要快速调整。

7.2 致密化策略的调整

致密化的频率和阈值直接影响最终的高斯数量。频率太高,高斯增长太快;频率太低,表示能力不够。我一般每100到200步做一次致密化,阈值根据梯度的分布来定,通常取梯度中位数的若干倍。

剪枝的阈值也要调。不透明度阈值设太高,会误删有用的高斯;设太低,又起不到剪枝的作用。我一般设成0.01到0.05之间,具体看数据的噪声水平。

7.3 损失权重的平衡

投影域损失和图像域损失的权重需要平衡。投影域损失权重太大,重建结果会有很多噪声;图像域损失权重太大,数据一致性又保证不了。我一般让投影域损失占主导,图像域损失作为正则,权重在0.01到0.1之间。

如果用的是TV正则,权重还要更小一些,因为TV正则太强会让图像变得过于平滑,丢失细节。

8. 效果评估与验证方法

8.1 定量指标的选择

CT重建的定量指标主要有PSNR、SSIM,还有HU值的误差。PSNR和SSIM是图像质量的通用指标,但CT里更重要的是HU值的准确性。我一般会算重建结果和真值在几个感兴趣区域的HU值偏差,这个比PSNR更能反映临床可用性。

另外,投影域的数据一致性也要检查。重建结果再投影回去,和原始投影比较,残差应该很小。如果残差大,说明优化不充分或者表示能力不够。

8.2 定性评估的要点

定性评估主要看伪影和细节。条纹伪影、杯状伪影、噪声纹理这些都要仔细看。高斯表示的一个特点是,它的伪影模式和体素方法不一样——体素方法的伪影通常是全局的,高斯方法的伪影更多是局部的,因为高斯是局部支撑的。

细节方面,要看小结构能不能重建出来。高斯表示对高频细节的捕捉能力有限,如果发现小结构模糊,可能需要增加高斯数量或者减小高斯的初始尺度。

8.3 消融实验的设计

消融实验主要验证几个设计选择:双重域优化是否必要、致密化策略的影响、初始化方式的影响。我一般会做这几组对比:只用投影域损失、只用图像域损失、两个都用;有致密化、没有致密化;FBP初始化、随机初始化。

从我的经验看,双重域优化是必须的,只用投影域损失重建结果噪声很大,只用图像域损失数据一致性很差。致密化也很重要,没有致密化的话,高斯数量固定,表示能力受限。初始化方式影响收敛速度,FBP初始化比随机初始化收敛快很多。

9. 后续扩展方向与个人体会

这个方向后续可以扩展的地方不少。一个是动态CT,把时间维度加进去,高斯可以随时间变化,这样能重建出四维的CT数据。另一个是能谱CT,每个高斯除了位置和形状,还可以有能量相关的属性,这样能同时重建多个能量通道。

还有一个有意思的方向是把高斯表示和传统的迭代重建结合起来。用高斯做表示,用迭代重建的优化框架做优化,这样既能利用高斯的稀疏性,又能利用迭代重建的成熟理论。

我个人在实际操作中的体会是,高斯表示在CT重建里的优势主要体现在稀疏视角和低剂量场景。常规场景下,传统方法已经足够好,没必要换。但如果你遇到了传统方法解决不了的问题,高斯表示值得一试。踩过的坑主要是显存和收敛性,这两个问题解决了,剩下的就是调参的功夫。

最后分享一个小技巧:训练的时候可以先用低分辨率投影快速收敛到一个粗糙的结果,然后逐步上采样。这样比直接在高分辨率上训练快得多,而且最终效果差不多。这个技巧在3DGS原论文里没有,是我自己试出来的,亲测有效。

相关新闻

ESP32微控制器应用商店:动态加载与卸载方案实战

ESP32微控制器应用商店:动态加载与卸载方案实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 19:17:24 阅读更多 →
智能汽车SoC芯片全景图:五类关键芯片与选型避坑指南

智能汽车SoC芯片全景图:五类关键芯片与选型避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 19:17:24 阅读更多 →
华为S2000B交换机命令配置大全:从Console口到VLAN划分实操手册

华为S2000B交换机命令配置大全:从Console口到VLAN划分实操手册

简介&#xff1a;这份资源是面向网络运维人员与华为交换机初学者的中文命令配置速查文档&#xff0c;针对设备调试中命令繁多、视图切换易混淆等痛点&#xff0c;系统梳理了常用配置指令与操作路径。包内共1个doc文件&#xff0c;约96KB&#xff0c;以文字条目形式集中呈现&…

2026/10/20 19:16:19 阅读更多 →

最新新闻

百度网盘免费发放500G空间了,大家记得及时领取

百度网盘免费发放500G空间了,大家记得及时领取

话不多说&#xff0c;直接上图免费网盘空间500G是有30天时效性的&#xff0c;不过每个自然月都是可领取的&#xff0c;大家过期之后记得重新领取即可。比较适合短期应急使用&#xff0c;全程免费&#xff0c;官方长期活动。

2026/10/20 20:03:02 阅读更多 →
快慢指针找环:为什么重置指针后能精确找到环入口?

快慢指针找环:为什么重置指针后能精确找到环入口?

很多同学在接触“快慢指针找环”这个经典问题时&#xff0c;都是靠背代码过关的。第一阶段&#xff1a;慢指针每次走一步&#xff0c;快指针每次走两步&#xff0c;如果两个指针相遇了&#xff0c;说明链表有环&#xff1b;第二阶段&#xff1a;把某个指针重置到链表头&#xf…

2026/10/20 20:03:02 阅读更多 →
书匠策AI实操指南:从选题到答辩的课程论文全流程

书匠策AI实操指南:从选题到答辩的课程论文全流程

每次课程论文季&#xff0c;朋友圈都会哀嚎一片。找文献找到眼瞎&#xff0c;列提纲列到怀疑人生&#xff0c;写到结论时突然发现引言和正文对不上&#xff0c;这种事情几乎人人遇到过。我见过太多同学卡在第一步&#xff0c;题目拍脑袋定&#xff0c;框架东拼西凑&#xff0c;…

2026/10/20 20:03:02 阅读更多 →
课程论文智能导航:从选题到降重,书匠策AI全流程实操指南

课程论文智能导航:从选题到降重,书匠策AI全流程实操指南

每到期末&#xff0c;图书馆里总会冒出一群“论文难民”&#xff1a;选题方向模糊、文献读不完、框架搭不起来、初稿憋了三天还是三行字。熟悉的朋友问我在用什么工具&#xff0c;我翻来覆去就推荐同一款——书匠策AI。它不是那种一键生成全文的“代写引擎”&#xff0c;更像一…

2026/10/20 20:03:02 阅读更多 →
ContextCapture安装避坑指南:版本选择、驱动适配与服务配置

ContextCapture安装避坑指南:版本选择、驱动适配与服务配置

简介&#xff1a;本资源提供ContextCapture软件的官方可用下载地址及配套获取指引&#xff0c;面向测绘、三维建模、BIM与数字孪生领域的工程师、高校师生及GIS从业者&#xff0c;解决正版软件获取渠道不明确、网盘链接失效或安装路径不明等实际问题。压缩包仅2KB&#xff0c;含…

2026/10/20 20:02:01 阅读更多 →
OCR模型训练数据不够?用数据生成工具批量造数据实战

OCR模型训练数据不够?用数据生成工具批量造数据实战

OCR模型训练最头疼的从来不是网络结构设计&#xff0c;而是标注数据不够。我做过好几个文字识别项目&#xff0c;每次卡在瓶颈上的几乎都是同一件事&#xff1a;真实场景的样本太少&#xff0c;标注成本太高&#xff0c;模型在测试集上看着还行&#xff0c;一上真实业务就崩。后…

2026/10/20 20:02:01 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →