<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>期刊论文 | 聂畅</title><link>https://changnie.top/zh/publication_types/article-journal/</link><atom:link href="https://changnie.top/zh/publication_types/article-journal/index.xml" rel="self" type="application/rss+xml"/><description>期刊论文</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>zh-Hans</language><lastBuildDate>Wed, 13 May 2026 00:00:00 +0000</lastBuildDate><image><url>https://changnie.top/media/icon_hu_3dd7560279821d57.png</url><title>期刊论文</title><link>https://changnie.top/zh/publication_types/article-journal/</link></image><item><title>面向嵌入式视觉系统的体素化三维高斯稠密视觉 SLAM</title><link>https://changnie.top/zh/publications/vcgs-slam/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://changnie.top/zh/publications/vcgs-slam/</guid><description>&lt;h2 id="稠密建图与存储开销"&gt;稠密建图与存储开销&lt;/h2&gt;
&lt;p&gt;基于稀疏特征的 SLAM 精度不错，但地图太稀疏，派不上用场。导航、路径规划和避障要的是表面信息，而不是一团关键点。稠密建图被研究了这么多年，原因就在这里。&lt;/p&gt;
&lt;p&gt;稠密方案各有各的代价。DTAM、Kintinuous、ElasticFusion 这类经典稠密融合系统吃内存、速度慢，精度也因此受损。神经辐射场 SLAM 的几何质量更好，却背着一个隐式解码器，渲染不再是光栅化，而成了一次网络推理。3DGS 看上去正是答案：高保真实时渲染，没有解码器，也不需要体积积分。&lt;/p&gt;
&lt;p&gt;接下来是部署。一个高斯泼溅 SLAM 系统要表示一间小屋大小的场景，通常得占 500 MB 以上。这个数字划分了演示和真能在机器人上跑起来的东西，也是这项工作的起点。&lt;/p&gt;
&lt;h2 id="冗余由-slam-制造而非高斯本身"&gt;冗余由 SLAM 制造，而非高斯本身&lt;/h2&gt;
&lt;p&gt;最容易得出的结论是：高斯基元本身就昂贵，解决办法是压缩。我们认为并非如此。诊断才是这篇论文里我们最希望被读到的部分。&lt;/p&gt;
&lt;p&gt;我们观察了这些系统生成的高斯椭球，发现它们的几何相似度远高于原始 3DGS。把高斯归一化到零均值之后再度量相似度，问题就归结为比较协方差，这一步把形状和大小从位置里剥了出来，KL 散度也随之只反映形状与尺度。SLAM 系统里呈现的分布是一根又高又窄的尖峰，离线方法的曲线则低而宽。这些系统在反复存储同一个椭球的近似副本。&lt;/p&gt;
&lt;p&gt;原因不在基元，而在优化调度。有两个结构性差异能解释它。&lt;/p&gt;
&lt;p&gt;离线 3DGS 一次性拿到全部图像，在所有图像上联合优化，挑选关键帧时也从整个集合里随机采样。SLAM 系统按时间戳顺序接收帧，必须等当前帧训练完成才能处理下一帧，而且只优化被选中的关键帧。同样的基元，顺序的、局部范围的优化，得到的分布却完全不同。在线这一套流程，在某种程度上放大了几何相似性。&lt;/p&gt;
&lt;p&gt;这个区别之所以重要，是因为它决定了哪些现成工具能用。离线压缩这一支文献，包括紧凑高斯表示、轻量高斯剪枝、自组织高斯网格，全都假定从一开始就拿到了所有图像、所有位姿和对应的点云。SLAM 是增量优化的。这些方法无论离线效果多好，在结构上就已经出局。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-锚点承载结构逐视角解码生成高斯属性"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="冗余来自优化调度，而非基元本身。"
srcset="https://changnie.top/publications/vcgs-slam/compact-representation_hu_6eb0b33932a9e09e.webp 320w, https://changnie.top/publications/vcgs-slam/compact-representation_hu_3be8a1f9d80cc63d.webp 480w, https://changnie.top/publications/vcgs-slam/compact-representation_hu_faf50de4fcd9bd9c.webp 768w, https://changnie.top/publications/vcgs-slam/compact-representation_hu_badbd3c07579d533.webp 1024w, https://changnie.top/publications/vcgs-slam/compact-representation_hu_fb571a920aec2d9a.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/vcgs-slam/compact-representation_hu_6eb0b33932a9e09e.webp"
width="1080"
height="398"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/vcgs-slam/compact-representation_hu_7da47ca4346135fd.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;锚点承载结构，逐视角解码生成高斯属性。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="在线压缩为什么棘手"&gt;在线压缩为什么棘手&lt;/h2&gt;
&lt;p&gt;压缩一张已经建好的地图是一回事，在线做要难得多，原因有三。&lt;/p&gt;
&lt;p&gt;离线 3DGS 用一个完整带位姿的点云初始化高斯。SLAM 里这样的点云只覆盖相机走过的地方，于是该在哪里增加表示能力，只能基于一张残缺的地图在线判断，而且不知道后面会出现什么。&lt;/p&gt;
&lt;p&gt;删除必须因果。判断一个高斯还有没有用，不能去查完整训练集，因为未来的视角还没到。&lt;/p&gt;
&lt;p&gt;只看透明度也不对。一个高斯可能透明度很低，却在多个视角里都很关键；也可能占着一块有用的体积，只是颜色贡献不多。把体积和透明度放在一起看，才更接近我们想要的标准。&lt;/p&gt;
&lt;p&gt;让网络自己学这个决策，还有一个特有的失效模式。我们的掩码损失把掩码值往下压，稀疏先验本来就是起这个作用；可如果一直压下去不停，优化最终会把地图里每一个高斯都消掉。单向的正则项没有重置，会毁掉它正在正则化的那个东西。&lt;/p&gt;
&lt;p&gt;最后，这里的压缩不是后处理。离线压缩量化的是一个已经完成的东西；在 SLAM 里，码本和仍在优化中的属性一起学习，量化器追的是一个还在移动的目标。&lt;/p&gt;
&lt;h2 id="先减锚点再减比特"&gt;先减锚点，再减比特&lt;/h2&gt;
&lt;p&gt;压缩分两层，顺序不能颠倒。&lt;/p&gt;
&lt;p&gt;第一层是结构层面。我们不再存高斯，改存锚点（anchor）。一个锚点由体素中心、一个规模很小的学习特征、一个尺度以及一组偏移组成。高斯中心由体素中心加上每个偏移乘以该锚点的尺度生成；透明度、旋转、尺度和颜色这些剩余属性，则从锚点特征连同当前的观察距离与方向解码得到。承载表示的是结构，而不是一个个基元；解码又依赖视角，所以细节是按视角生成的，不需要按高斯存下来。&lt;/p&gt;
&lt;p&gt;第二层是参数层面，等锚点数量降下来之后才动手。偏移和尺度是每个锚点都必须携带的几何信息，比特主要花在这里。我们用级联的残差矢量量化（residual vector quantization）压缩它们：第一个码本给出向量的粗略近似，之后每一级只量化前面几级留下的残差，索引通过在当前的残差上做最近邻搜索选出。&lt;/p&gt;
&lt;p&gt;这个类比来自神经音频编码，而且很贴切。第一个码本粗略描述这个数，后面的码本只描述剩下没说到的部分。码本在整个场景里共享，就像一张调色板被整幅图共用。我们用 K-means 初始化它们。&lt;/p&gt;
&lt;p&gt;有两个权衡值得摆出来。级数越多，要存的残差层级越多，推理越慢，而换来的收益很有限。码本越大，很多索引根本用不上，却照样占内存和训练时间；码本小了，精度就要付代价。论文的配置是在大小为 64 的码本上做六级残差量化。另外，缩写值得向接触过粒子滤波的读者说清楚：残差矢量量化和粒子群优化彼此毫无关系，这项工作里也没有出现任何粒子滤波。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-每一级只量化前面几级留下的残差"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="锚点几何以短索引的形式存入共享码本。"
srcset="https://changnie.top/publications/vcgs-slam/residual-codebook_hu_17d120a0fbe79fff.webp 320w, https://changnie.top/publications/vcgs-slam/residual-codebook_hu_8fdd47dc0e57dda.webp 480w, https://changnie.top/publications/vcgs-slam/residual-codebook_hu_f8dc67c5055c3d33.webp 768w, https://changnie.top/publications/vcgs-slam/residual-codebook_hu_447c353e71767f4b.webp 1024w, https://changnie.top/publications/vcgs-slam/residual-codebook_hu_ba36aed6d76c1656.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/vcgs-slam/residual-codebook_hu_17d120a0fbe79fff.webp"
width="1080"
height="317"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/vcgs-slam/residual-codebook_hu_febd3d8193dfc8e9.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;每一级只量化前面几级留下的残差。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="哪里优化不动就在哪里生长"&gt;哪里优化不动，就在哪里生长&lt;/h2&gt;
&lt;p&gt;没有运动恢复结构点云可以用来打底，容量该放在哪里就得到线上找答案。我们用的信号是梯度。&lt;/p&gt;
&lt;p&gt;如果某个体素里的高斯在连续若干次迭代中始终给出较大的平均梯度，说明优化器在这个位置上还在挣扎，也就有理由认为当前表示无法表达数据想要的东西。当这个平均梯度超过阈值，且该体素中心还没有锚点，我们就种一个下去。候选会被随机淘汰，避免增长失控；无足轻重的锚点则通过累加其高斯的透明度被剔除。&lt;/p&gt;
&lt;p&gt;三个分辨率并行工作，每层体素边长缩小到四分之一，梯度阈值翻倍。粗体素吸收墙面、地板这类大块几何，细体素处理椅子腿这样的细节。只用一个体素尺寸，就得让同一个选择同时应付两者，这套多分辨率阶梯因此存在。&lt;/p&gt;
&lt;p&gt;初始化是另一条路径：建图开始时，在累计透明度偏低、或者渲染深度与实测不一致的地方采样点。&lt;/p&gt;
&lt;h2 id="掩码是调光器不是开关"&gt;掩码是调光器，不是开关&lt;/h2&gt;
&lt;p&gt;在一个滑动窗口（sliding window）内，每个高斯带一个可学习的掩码参数，再经由带停梯度的直通（straight-through）形式变成二值掩码。渲染之前，这个掩码乘在高斯的尺度和透明度上，被掩掉的基元是从画面里淡出，而不是从数据结构里删掉。真正的移除发生在窗口边界，那里我们同时看命中频率和学习到的掩码。&lt;/p&gt;
&lt;p&gt;这个窗口是短期记忆，组成有明确定义：当前帧、与它重叠最多的那个关键帧，以及与当前深度点云视锥重叠最高的两个较早关键帧。视野之外的一切都被视锥剔除冻结，过去的几何因此保留下来，待优化的参数也少了一批。掩码只在关键帧上运行。&lt;/p&gt;
&lt;p&gt;让这套机制安全的是重置这个细节。在窗口边界处，移除执行完之后，梯度和掩码一起清零，系统可以重新学。少了这一步，前面说的稀疏压力就再也没有阻力，地图会把自己擦掉。&lt;/p&gt;
&lt;p&gt;窗口大小是实打实的权衡，不是随手调的超参数。窗口太大，会把本来还在干活的高斯掩掉，精度受损；窗口太小，内存和优化质量都要付出代价。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-掩码调节尺度与透明度移除发生在窗口边界随后掩码与梯度被重置"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="不再值得保留的高斯在移动窗口内淡出。"
srcset="https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_8cee7cb0ebdcdee8.webp 320w, https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_308658780aed5608.webp 480w, https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_4cccf8372ce76d89.webp 768w, https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_54201091216743be.webp 1024w, https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_4ad2fe597ea4c1dc.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_8cee7cb0ebdcdee8.webp"
width="1080"
height="404"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/vcgs-slam/sliding-window-mask_hu_da9790d4995859d4.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;掩码调节尺度与透明度；移除发生在窗口边界，随后掩码与梯度被重置。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="跟踪依赖刚刚压缩过的地图"&gt;跟踪依赖刚刚压缩过的地图&lt;/h2&gt;
&lt;p&gt;驱动跟踪的有三路信号，它们都来自同一次 alpha 合成。颜色、深度，以及一个只累加可见性权重的轮廓通道。三者共用光栅化，所以轮廓通道几乎不额外花代价。&lt;/p&gt;
&lt;p&gt;跟踪在深度有效的射线上最小化颜色误差平方与深度误差平方之和，并用轮廓门控：只有渲染器确信自己确实覆盖了东西的那些像素才被信任。一个 ICP 项把高斯中心与跨帧的最近点关联起来，理由是高斯本身就是一团点云，经典的几何关联方法对它同样适用。位姿用匀速前向投影初始化，消融实验认为这一步不可或缺。&lt;/p&gt;
&lt;p&gt;这里的消融最能说明这些部件都在承重。只留深度项，跟踪直接失败；只留颜色项，跟踪能跑，但误差明显更大；去掉轮廓门控，跟踪同样失败。来自渲染器的信任区域确实在起作用，一条光度流水线看来既需要几何项，也需要一块它敢相信的区域。&lt;/p&gt;
&lt;p&gt;束调整（BA）在两个尺度上运行。局部调整细化最近的窗口；全局阶段从一个刻意放大的关键帧数据库里采样射线，同时优化地图和位姿，并额外加了一个结构相似性项。这样做是为了在长轨迹和大场景中约束累计漂移，又不必去碰每一帧历史数据。&lt;/p&gt;
&lt;h2 id="证据以及它的形状"&gt;证据，以及它的形状&lt;/h2&gt;
&lt;p&gt;系统在 Replica、ScanNet 和 TUM RGB-D 上评测，硬件既有一个嵌入式模组，也有笔记本级 GPU；此外还有我们自己采集的多传感器移动机器人数据集，用 LiDAR、惯性单元和深度相机记录，场景面积超过一千平方米，并配有高质量的轨迹真值。做这个数据集，是为了回答标准基准回答不了的问题：地图是在移动的机器人上建的，而不是在办公桌上建的，这套表示还撑得住吗。&lt;/p&gt;
&lt;p&gt;最有说服力的评测不是一张表格。我们把紧凑表示分别插进 SplaTAM、MonoGS 和 Gaussian-SLAM 里重跑，三者的指标都朝同一个方向改善。这条证据指向的是我们的诊断，而不是我们的系统：一个表示能同时帮到三个不同的系统，说明它触到的是这三者共有的问题。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-紧凑性才让机器人端部署成为可能"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="这套流程可以跑在笔记本和嵌入式硬件上。"
srcset="https://changnie.top/publications/vcgs-slam/embedded-demo_hu_b67fdc482eb96c21.webp 320w, https://changnie.top/publications/vcgs-slam/embedded-demo_hu_4cbb071f25539270.webp 480w, https://changnie.top/publications/vcgs-slam/embedded-demo_hu_8a60b443b5fcb287.webp 768w, https://changnie.top/publications/vcgs-slam/embedded-demo_hu_e1c8c20647a174f8.webp 1024w, https://changnie.top/publications/vcgs-slam/embedded-demo_hu_244cf7b677229005.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/vcgs-slam/embedded-demo_hu_b67fdc482eb96c21.webp"
width="1080"
height="810"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/vcgs-slam/embedded-demo_hu_411cefe7e79372e.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;紧凑性才让机器人端部署成为可能。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="我们从中得到什么"&gt;我们从中得到什么&lt;/h2&gt;
&lt;p&gt;动手写压缩器之前，先诊断一下你从训练范式里继承来的表示。这项工作有意思的地方不在于设计了一个更好的量化器，而在于注意到顺序的在线优化会产生一种与联合优化不同、也更冗余的分布，并且在写任何代码之前先把它量了出来。&lt;/p&gt;
&lt;p&gt;与此相关，任何需要整个数据集的模块，在增量系统里从结构上就不成立，离线表现再好也没用。就这一条约束，排掉了大部分现成文献。&lt;/p&gt;
&lt;p&gt;压缩要分两层，先结构、后参数。只做量化，仍然有几百万个基元等着编码；只做掩码，每个基元要背的负载依旧很大。&lt;/p&gt;
&lt;p&gt;梯度是容量分配的信号，不只是优化的副产品。这样用它，地图该在哪里更细致，就变成系统自己拿主意的事。&lt;/p&gt;
&lt;p&gt;还有一点：任何只朝一个方向施压的学习式剪枝，都需要重置。这个模式的适用范围远超本论文。&lt;/p&gt;
&lt;h2 id="它不处理什么"&gt;它不处理什么&lt;/h2&gt;
&lt;p&gt;快速运动会给彩色图和深度图都带来运动模糊，而跟踪恰恰依赖这两个损失，所以运动一快性能就下降。动态物体多的场景会产生伪影和漂移，面对高度动态的环境，系统仍有局限。&lt;/p&gt;
&lt;p&gt;我们没有实现回环检测和重定位，因此大回环上漂移能校正到什么程度是有边界的。系统只支持 RGB-D，没有单目或双目版本。另外，报告的内存数字需要向读者交代得更清楚：那是检查点大小，不是峰值显存占用，两者不是一回事。&lt;/p&gt;
&lt;h2 id="嵌入式为什么重要"&gt;嵌入式为什么重要&lt;/h2&gt;
&lt;p&gt;这篇论文要说的不是紧凑地图是一种可以接受的妥协，而是紧凑地图依然是一张好地图，同样的质量只需要一小部分存储。这个说法只有在存储真的构成约束时才站得住脚，这也是我们格外在意嵌入式实验的原因。能装进机器人的表示，才会真的被用起来。&lt;/p&gt;</description></item><item><title>MID：自监督多模态迭代去噪框架</title><link>https://changnie.top/zh/publications/mid/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://changnie.top/zh/publications/mid/</guid><description>&lt;h2 id="干净版本往往并不存在"&gt;干净版本往往并不存在&lt;/h2&gt;
&lt;p&gt;好数据是下游一切工作的前提，而采集噪声几乎无处不在：传感器本身的限制、传输错误、环境干扰，还有物理测量固有的随机性。常见的应对是先做去噪。&lt;/p&gt;
&lt;p&gt;有两个很实际的事实让这件事比听起来难得多，本文的思路也正是从这两点长出来的。&lt;/p&gt;
&lt;p&gt;第一，真正需要处理的噪声很少是高斯噪声。低照度成像中的泊松噪声、压缩伪影，以及我们称作结构化噪声的东西（例如一组并不对应场景中任何真实结构的线段），都违反了经典滤波器赖以成立的假设。第二点更根本：在我们关心的许多领域里，干净目标根本不存在。临床影像和遥感经常没有可供对照的无噪参考，也无从采集。论文里的 MRI 实验之所以用替代指标评分，正是因为那些数据集拿不到干净的 ground truth。&lt;/p&gt;
&lt;p&gt;训练信号只能从别处来，指望不上成对的干净样本。整个问题就落在这个约束上。&lt;/p&gt;
&lt;h2 id="已有方法为什么都是有条件的"&gt;已有方法为什么都是有条件的&lt;/h2&gt;
&lt;p&gt;经典的去噪方法，从滤波、变换域阈值到非局部均值，都针对特定的噪声模型和数据类型来设计。噪声统计一旦偏离当初的假设，效果就迅速下降。&lt;/p&gt;
&lt;p&gt;有监督深度去噪绕开了建模假设，但需要大量成对的干净与含噪样本。偏偏在去噪最重要的那些领域里，这类数据要么采集成本高昂，要么根本无法采集。&lt;/p&gt;
&lt;p&gt;自监督盲点方法（blind-spot methods）曾是顺理成章的答案。我们对它的批评是具体的，不是笼统地说它不好。这类方法不需要成对数据，却带着隐藏的模态假设。先把像素遮住、再由邻域把它预测回来的技巧，靠的是图像的空间相关性。点云是无序的，氨基酸序列离散且无结构。对数据不作任何断言的方法能走到这些场景；暗中假设空间平滑的方法走不过去，表现出来的症状就是过度平滑和细节丢失。&lt;/p&gt;
&lt;p&gt;特定领域的专用方法也各有各的条件依赖。Noise2Noise 会把细小的解剖结构抹平；Patch2Self 利用了体数据之间的冗余，却要为每个体数据单独训练一个模型，体数据之间的空间一致性容易出问题；DDM2 对初始噪声水平和模态相关的调参都很敏感。到了表面肌电（sEMG），高通滤波能滤掉 ECG 干扰，但信号里重要的低频成分会随之一起被滤掉，因为两者在频域上重叠；模板相减预设了固定的分布形式；神经网络方法常常训练不稳定。蛋白质序列筛选上，常用的按平均汉明距离做贪心选择只依赖一条准则，无法反映序列质量的更多侧面。&lt;/p&gt;
&lt;p&gt;我们没有用跑分表来定位，而是画了一张能力矩阵。要回答的问题是：哪些方法既自监督，又能同时处理图像、信号和点集。这个领域里的大多数方法只能做到三样中的两样。&lt;/p&gt;
&lt;h2 id="难点在哪里"&gt;难点在哪里&lt;/h2&gt;
&lt;p&gt;非线性退化的逆过程没有可用的闭合形式。直接反演泊松噪声、压缩伪影或具有集合结构的干扰都很困难，我们自己的消融实验给出了硬做的结果：单次前向的网络几乎不改变输入数据。网络很难一步学会从含噪到干净的巨大跳跃。这不是实现层面的失误，方法之所以长成现在这样，原因就在这里。&lt;/p&gt;
&lt;p&gt;输入的污染程度同样是未知的。含噪样本不会告诉你自己位于退化轨迹的哪一段，也就无从判断该去掉多少、该走几步。&lt;/p&gt;
&lt;p&gt;自监督信号只能自己造，捡不到现成的。没有成对样本，能用的标签全是自己生成的，而且它们要同时服务两件事：输入处在退化的哪个位置，以及下一个增量长什么样。&lt;/p&gt;
&lt;p&gt;有些时候，噪声根本不是数值。错误的对应关系、无效的线段、冗余的序列，都不是附加在某个量上的幅度，而是关于某个元素该不该留下的判断。要把这类东西减掉，先得把干扰改写成逐元素的属性，这些任务因此采用二分类目标，而不是对残差做回归。&lt;/p&gt;
&lt;p&gt;无序、离散的数据直接推翻了常规先验。点云没有顺序，多序列比对是一组离散字符串，按空间网格共享权重、做卷积这类手段在这里都用不上。&lt;/p&gt;
&lt;p&gt;方法里还内含着一种取舍。支撑它的一阶近似只在增量足够小时成立。小增量换来线性性，代价是推理时冗长的循环。&lt;/p&gt;
&lt;h2 id="继续加噪就是恢复局部线性化与数学形式推导"&gt;继续加噪，就是恢复：局部线性化与数学形式推导&lt;/h2&gt;
&lt;p&gt;我们的出发点足够反直觉，不妨直说：要学会去掉噪声，得先往里面加更多噪声。&lt;/p&gt;
&lt;p&gt;含噪观测不是放在一旁的干净样本的退化版本，它是退化轨迹上的一个状态，而这条轨迹你可以自己接着走。把含噪输入当作起点，一遍遍施加同一个退化过程，就得到一架带标签的梯子：每一级与下一级之间差了多少噪声，你心里清楚，因为差额是你自己加进去的。&lt;/p&gt;
&lt;p&gt;设未知的退化流由连续算子族 $\mathcal{D}_t$ 生成，对任意干净真实物理状态 $x \in \mathcal{X}$，在连续参数 $t \in [0, 1]$ 下形成退化轨迹 $s(t) = \mathcal{D}_t(x)$，其中 $s(0) = x$ 为理想无噪数据，而实际传感器捕获的含噪观测 $y$ 对应某个未知时刻的中间态 $s(t_0)$。因为真实物理逆向算子 $\mathcal{D}_t^{-1}$ 通常高度非凸且严重病态，直接求解全局逆映射 $x = \mathcal{D}_{t_0}^{-1}(y)$ 无法通过单次网络前向可靠收敛。&lt;/p&gt;
&lt;p&gt;MID 的关键洞察在于：尽管我们在无监督条件下无法直接求解终点 $s(0)$，但退化过程本身在局域具备可模拟性与增量延续性。定义一个步长为 $\Delta t$ 的增量退化算子 $\mathcal{T}_{\Delta t}$，满足：&lt;/p&gt;
$$
s(t + \Delta t) = \mathcal{T}_{\Delta t}(s(t)).
$$&lt;p&gt;对该算子在局部状态 $s(t)$ 处作一阶展开：&lt;/p&gt;
$$
s(t + \Delta t) \approx s(t) + \mathbf{J}_{\mathcal{T}}(s(t)) \cdot \Delta t + \mathcal{O}(\Delta t^2),
$$&lt;p&gt;其中一阶残差增量记为 $\Delta s_t \equiv s(t + \Delta t) - s(t)$。若将增量退化步长限制在局部微扰范围内，非线性算子的单步逆向操作即可近似表示为一阶残差的线性相减：&lt;/p&gt;
$$
s(t) \approx s(t + \Delta t) - \Delta s_t.
$$&lt;p&gt;这种局部一阶近似的核心前提，是假定局部雅可比矩阵在微小步长下接近单位阵，或者非线性形变的主导分量已可被紧邻状态的差分向量充分吸收。这使我们摆脱了对全局非线性反问题的强求，将其转化为一系列局域可逆的微小单步。从一级到下一级的这一步按加性处理，它的逆自然就是减法。噪声网络要预测的残差，就是我们自己生成的两个相邻状态之差。&lt;/p&gt;
&lt;h2 id="两个网络两个问题联合损失与自适应循环"&gt;两个网络，两个问题：联合损失与自适应循环&lt;/h2&gt;
&lt;p&gt;框架提出两个彼此独立的问题，正因为把它们分开，同一套做法才能搬到不同领域。&lt;/p&gt;
&lt;p&gt;第一个问题是：我现在在哪？阶段预测网络 $E_\phi(s)$ 回归输入在轨迹上的归一化位置 $t \in [0, 1]$。不确定这一点，就无从决定该减掉多少。&lt;/p&gt;
&lt;p&gt;第二个问题是：该去掉什么？噪声预测网络 $R_\theta(s, t)$ 接收当前状态和估计出的阶段，输出下一步要减掉的增量。两个网络联合训练，这种解耦是有意为之：一个决定往回走多远，另一个决定每一步卸下什么。&lt;/p&gt;
&lt;p&gt;在训练阶段，我们在含噪样本 $y = s_0$ 的基础上，自主施加 $K$ 步已知增量退化，构造级联状态序列：&lt;/p&gt;
$$
s_k = \mathcal{T}^{(k)}(y), \quad k \in \{0, 1, \dots, K\},
$$&lt;p&gt;对应的归一化退化阶段标签为 $t_k = \frac{k}{K}$。由于每一步的状态跃迁差值 $\Delta s_k = s_k - s_{k-1}$ 均为完全已知的自生成监督信号，阶段网络与残差网络的目标函数可分别显式写为：&lt;/p&gt;
$$
\mathcal{L}_{\text{stage}}(\phi) = \frac{1}{K} \sum_{k=1}^K \| E_\phi(s_k) - t_k \|_2^2,
$$$$
\mathcal{L}_{\text{res}}(\theta) = \frac{1}{K} \sum_{k=1}^K \| R_\theta(s_k, t_k) - (s_k - s_{k-1}) \|_2^2.
$$&lt;p&gt;在测试推理阶段，对于未知污染程度的初始输入 $y$，系统首先调用阶段估计器得到起始估计 $t^{(0)} = E_\phi(y)$。随后进入反向去噪迭代，在第 $m$ 步执行更新：&lt;/p&gt;
$$
s^{(m)} = s^{(m-1)} - R_\theta(s^{(m-1)}, t^{(m-1)}), \quad t^{(m)} = E_\phi(s^{(m)}).
$$&lt;p&gt;循环终止条件为 $t^{(m)} \le \epsilon$ 或步数达到上限。轻度污染的输入走的步数少于重度污染的输入，迭代次数随数据自适应，不需要预先设定调度。之所以一步步迭代，而不是一次把噪声全部拿掉，是因为多次小幅修正比一次大幅修正更能保住细节。单次前向被迫一次猜完整段距离，结果往往是过度平滑并丢失高频结构。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-阶段预测器和噪声预测器联合训练推理时按顺序使用"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="两个网络分别回答输入的污染程度和下一步该减掉什么。"
srcset="https://changnie.top/publications/mid/network-architectures_hu_1566b4edae827ea6.webp 320w, https://changnie.top/publications/mid/network-architectures_hu_3d6688501d42a2bc.webp 480w, https://changnie.top/publications/mid/network-architectures_hu_4cd67fbab398dbcf.webp 768w, https://changnie.top/publications/mid/network-architectures_hu_28438aab418e51ef.webp 1024w, https://changnie.top/publications/mid/network-architectures_hu_553f0d9f760b7cb3.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mid/network-architectures_hu_1566b4edae827ea6.webp"
width="1080"
height="628"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mid/network-architectures_hu_fa4ee4d0eff5ad1d.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;阶段预测器和噪声预测器联合训练，推理时按顺序使用。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-逆向自监督恢复循环沿着退化轨迹把含噪输入一步一个增量地带回更干净的状态"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="迭代相减能恢复单次前向完全没有触及的结构。"
srcset="https://changnie.top/publications/mid/image-denoising_hu_38c013594a842bfe.webp 320w, https://changnie.top/publications/mid/image-denoising_hu_d4013d48629c4df3.webp 480w, https://changnie.top/publications/mid/image-denoising_hu_a6f726418260f453.webp 768w, https://changnie.top/publications/mid/image-denoising_hu_c9f67438bb7be97e.webp 1024w, https://changnie.top/publications/mid/image-denoising_hu_1c90a075f53d86f0.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mid/image-denoising_hu_38c013594a842bfe.webp"
width="1080"
height="259"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mid/image-denoising_hu_64541d9ad19c83fc.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;逆向自监督恢复循环沿着退化轨迹，把含噪输入一步一个增量地带回更干净的状态。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="去噪是一种问题框定四维几何匹配与离散集合推广"&gt;去噪是一种问题框定：四维几何匹配与离散集合推广&lt;/h2&gt;
&lt;p&gt;对我们来说，这项工作最有意思的地方不是图像上的结果，而是把同一套形式指向那些没人会叫作去噪的问题时发生的事情。&lt;/p&gt;
&lt;p&gt;图像对应关系变成四维点云：一对匹配就是两幅视图中各取两个图像坐标所确定的点 $p_i = (u_i, v_i, u'_i, v'_i)$，汇聚为无序集合 $\mathcal{P} = \{p_1, \dots, p_N\}$。错误匹配是不属于几何对极约束的点。然而在无序集合中，常规加性相减失去了物理含义，因为一个错误的几何对应关系无法通过“在坐标上减去某个浮点向量”变成正确的对应关系。&lt;/p&gt;
&lt;p&gt;因此，MID 将算子推广为基于集合注意力的逐元素判定。噪声目标改写为逐元素的二元交叉熵损失：&lt;/p&gt;
$$
\mathcal{L}_{\text{set}}(\theta) = - \sum_{i=1}^N \left[ c_i \log \sigma(R_\theta(\mathcal{P})_i) + (1 - c_i) \log (1 - \sigma(R_\theta(\mathcal{P})_i)) \right],
$$&lt;p&gt;其中 $c_i \in \{0, 1\}$ 表示在自生成退化过程中注入的合成外点标签，$\sigma(\cdot)$ 为 Sigmoid 激活函数。网络不必回答该从错误对应里减去多少数值，它要判断的是这个元素该不该存在。用于消失点估计的线段同样变成无序点集，训练时把随机线段当作几何外点反复加入。&lt;/p&gt;
&lt;p&gt;多序列比对则把平均汉明距离偏低的冗余序列视为噪声。最后这个例子里，噪声是真实的氨基酸序列，这足以说明框架评估的是数据质量，而不是合成出来的假象。干扰一旦被表述成可移除的东西，几何估计中的外点剔除、对应关系筛选、线段过滤和序列抽样，就是同一个问题换了身衣服。乘性噪声在对数域可以变成加性，论文提到并用到了这一点。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-去除图像噪声的同一套形式也用来识别错误匹配"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="错误对应关系成为四维点集中的外点。"
srcset="https://changnie.top/publications/mid/correspondence-denoising_hu_384e7d642645887c.webp 320w, https://changnie.top/publications/mid/correspondence-denoising_hu_b86519a7e26fee12.webp 480w, https://changnie.top/publications/mid/correspondence-denoising_hu_48a0f8276de9c668.webp 768w, https://changnie.top/publications/mid/correspondence-denoising_hu_a5fdc047910ecfaa.webp 1024w, https://changnie.top/publications/mid/correspondence-denoising_hu_5b7e4b93230745b7.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mid/correspondence-denoising_hu_384e7d642645887c.webp"
width="1080"
height="620"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mid/correspondence-denoising_hu_c9d0cec14d99bfe6.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;去除图像噪声的同一套形式，也用来识别错误匹配。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="方法是怎么搭起来的"&gt;方法是怎么搭起来的&lt;/h2&gt;
&lt;p&gt;图像和医学体数据用 CNN 主干做阶段预测，上面接全连接层，增量由 CNN 编码器-解码器给出。点集和一维信号，包括对应关系、线段、氨基酸序列和表面肌电，两个网络都使用全连接层加 Transformer 编码器-解码器。理由前面已经说过：卷积假定数据有空间顺序，无序集合没有，所以是结构跟着数据走，而不是让数据迁就结构。&lt;/p&gt;
&lt;p&gt;没有一个领域拿到专门定制的公式，这正是这样搭建的目的。同一套方法用在图像散斑、MRI 噪声、肌肉信号污染、几何外点、错误对应、无效线段和冗余蛋白质序列上，变的只有主干。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-这里的干扰是真实序列而不是合成出来的假象"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="比对中的冗余序列被当作噪声处理。"
srcset="https://changnie.top/publications/mid/protein-results_hu_f9ab750505dcc426.webp 320w, https://changnie.top/publications/mid/protein-results_hu_8401d6fafd7bea6d.webp 480w, https://changnie.top/publications/mid/protein-results_hu_b1d1879395a11d07.webp 768w, https://changnie.top/publications/mid/protein-results_hu_bc71e08d021ad784.webp 1024w, https://changnie.top/publications/mid/protein-results_hu_5742a2f6db1c7cf5.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mid/protein-results_hu_f9ab750505dcc426.webp"
width="1080"
height="512"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mid/protein-results_hu_69bfd938f8834507.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;这里的干扰是真实序列，而不是合成出来的假象。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="我们从中学到了什么"&gt;我们从中学到了什么&lt;/h2&gt;
&lt;p&gt;监督信号不必来自干净终点，它可以由你自己继续施加一段可模拟的退化来制造。正是这一处替换，让框架在成对数据不存在的地方也能用。&lt;/p&gt;
&lt;p&gt;局部线性化加迭代，把一个无解的全局逆问题变成一串可解的局部逆问题，消融实验就是证据。单次前向的模型失败时，正确的反应不是把模型做大，而是分解。&lt;/p&gt;
&lt;p&gt;把“我在哪”和“该去掉什么”分开，是同一套框架能够迁移的原因。相比任何结构上的选择，这项解耦才是可复用的部分。自监督策略里藏着模态假设，值得逐个审视。对数据结构不作任何断言的表述，会比暗地里要求平滑性的表述走得更远。迭代是保住细节的机制，而不只是优化上的便利。&lt;/p&gt;
&lt;h2 id="它在哪里止步"&gt;它在哪里止步&lt;/h2&gt;
&lt;p&gt;极端噪声是论文明确指出的失效场景。信号结构几乎被完全淹没时，局部线性化展开的前提不复存在，迭代相减能依赖的部分结构太少，后续工作我们指向生成式先验这个方向。&lt;/p&gt;
&lt;p&gt;第二个代价是时间。迭代必然比单次去噪慢，对实时使用是瓶颈。我们建议的补救办法是知识蒸馏和更高效的采样。&lt;/p&gt;
&lt;p&gt;方法里还有两件事我们看得见却没有刻画清楚。加噪步数和每步增量的大小属于设计选择，不是推导出来的量，我们没有研究方法对它们的敏感性。阶段估计的误差还会在随后的每一次相减中累积，这种传播值得我们投入比现在更多的关注。&lt;/p&gt;
&lt;h2 id="这属于哪一类模型与扩散模型ddpm--score-sde的本质边界"&gt;这属于哪一类模型：与扩散模型（DDPM / Score-SDE）的本质边界&lt;/h2&gt;
&lt;p&gt;有一条边界值得说清楚，因为每次谈起这项工作都会碰到它。MID 不是生成模型。&lt;/p&gt;
&lt;p&gt;扩散模型基于随机微分方程（SDE）框架，其前向过程设计为一个显式的 Ornstein-Uhlenbeck 漂移扩散过程：&lt;/p&gt;
$$
\mathrm{d}x = f(x, t)\mathrm{d}t + g(t)\mathrm{d}w,
$$&lt;p&gt;其核心数学要求是当 $t \to T$ 时，边缘分布必须渐近收敛至已知的各向同性高斯先验 $p(x_T) \sim \mathcal{N}(0, \mathbf{I})$。这导致扩散模型本质上是在学习经验数据分布的分数函数（Score Function）$\nabla_x \log p_t(x)$，核心价值是从纯白噪声中随机采样出符合经验分布的新数据。&lt;/p&gt;
&lt;p&gt;MID 的定位与此存在本质差异：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先验分布假设不同&lt;/strong&gt;：MID 从未假设退化的终点是高斯分布。它的退化算子可以是物理传感器的暗电流截断、结构化几何外点插入或离散字符冗余。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;目标函数不同&lt;/strong&gt;：MID 并不最小化数据分布与高斯先验之间的 KL 散度，它学习的是确定性或准确定性的局域退化位移向量场，目标是恢复特定观测实例在物理退化前的原生状态，而非采样新的可能态。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;输出特性的确定性&lt;/strong&gt;：这也决定了 MID 不具备“无中生有”的生成能力。当输入信号被极端噪声完全破坏、拓扑结构荡然无存时，局域展开假设失效，MID 无法像生成模型那样基于模式先验凭空重构出看似逼真但未经测量的幻觉细节。这种保守性在科学计算与医学诊断等不可容忍虚假幻觉的场景中，反而是至关重要的安全属性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它去掉的是训练中见过的噪声，输出是输入的更干净版本，不是新样本。这条界线让框架对自己能承诺什么保持诚实。&lt;/p&gt;</description></item><item><title>迈向视觉-声音-语言-动作范式：面向声音中心操作的 HEAR 框架</title><link>https://changnie.top/zh/publications/hear/</link><pubDate>Tue, 17 Mar 2026 03:22:30 +0000</pubDate><guid>https://changnie.top/zh/publications/hear/</guid><description>&lt;h2 id="听不见物理的机器人"&gt;听不见物理的机器人&lt;/h2&gt;
&lt;p&gt;现在的视觉语言动作模型会看、会理解语言、会运动，唯独不会听。它们工作在一个近乎无声的世界里，而机器人所处的环境其实满是声音：水烧到将沸时的嘶嘶声，碰撞那一下清脆的咔嗒，满容器与空容器截然不同的音色，材料从弯曲转向开裂的那一瞬间。这些声音都在编码相机无法还原的物理状态。&lt;/p&gt;
&lt;p&gt;接触声学是能拿到的最便宜的触觉传感器：一只麦克风几美元，不用接触物体，而且一次覆盖整个工作空间。支持这么做的理由并不空泛，问题在于还没有人做出真正能用它的策略。&lt;/p&gt;
&lt;h2 id="还没问到策略线索就已经消失"&gt;还没问到策略，线索就已经消失&lt;/h2&gt;
&lt;p&gt;难点不在建模，把它框成建模问题，恰恰是早先的方案没能解决它的原因。难点来自那套让大规模 VLA 模型得以落地的控制架构。&lt;/p&gt;
&lt;p&gt;大骨干网络跑不到控制频率，于是通行做法是动作分块（action chunking）：模型一次给出未来的一小段指令，机器人开环执行完这一段，才轮到模型被再次查询。物理恰好发生在这段空隙里。碰撞、溢锅、按到底，都是短促且不可重复的声学事件，量级在一百毫秒左右，而它们往往整段落在策略没有在看的区间内。在 30 Hz 的控制频率下，一个动作块平均长约一秒。&lt;/p&gt;
&lt;p&gt;这个后果要说准一点，因为它和大家通常的假设不一样。反应慢只是延迟；这里真正发生的是证据被销毁。声音到了，没有人在听；等再次查询策略，窗口里只剩安静。如果事件的采样在下一个窗口打开之前就已经结束，窗口里不会留下它的弱化版本，而是什么都没有。我们把两次决策之间的这段间隔称作盲执行区间（Blind Execution Interval），blind 这个词是实打实的。&lt;/p&gt;
&lt;p&gt;还有第二类失败，和时序无关。设想机器人守在一台运转中的电器旁边。场景接近静止时，等一秒和等十秒，当前这一帧图像一模一样。专家示范却不同：下一步该做什么取决于已经等了多久，观测本身不体现这一点。只看单帧的策略分不清这两种处境，于是要么慢慢漂移，要么干脆停住。这正是时间上下文本该解决的混叠问题，而离开声音，它确实无从观测。&lt;/p&gt;
&lt;h2 id="早先的尝试漏掉了什么"&gt;早先的尝试漏掉了什么&lt;/h2&gt;
&lt;p&gt;把音频转成文字是最先冒出来的念头，偏偏丢掉了我们需要的东西。语音识别前端会把非语音线索和韵律整个扔掉，还把时间压成离散 token，一声提示音什么都产生不了。更微妙的是，肯定的语气与犹疑的反问会坍缩成几乎相同的 token 序列，语用意图上的差别就此消失，而转写准确率看上去完美无缺。&lt;/p&gt;
&lt;p&gt;第二种直觉是把波形画成图像，当作又一路相机视角。它能反映幅度变化，却掩盖了频谱结构，也就是频率轮廓与音色，材料和接触的信息恰好藏在那里。这种表示还对事件落在渲染窗口里的位置很敏感，性能起伏的原因与物理本身无关。&lt;/p&gt;
&lt;p&gt;更近的一条路线把语音接进 VLA 模型，保留韵律和说话人身份。这是实实在在的进展，但它对准的是明确的口头命令，而不是操作过程里环境自身的声学物理，这是另一个题目。全模态系统离得更近，我们的保留意见则是结构性的：它们的设计是先听后做，用声音建立上下文、推断一次动作的意图，而不是把声音当作接触过程中的低层反馈。以上工作都没有处理瞬时事件与分块执行之间的错位，而那才是真正的瓶颈。&lt;/p&gt;
&lt;p&gt;CLAP、ImageBind 这类音频基础模型在定长片段上离线、各自独立地训练，部署时又是无状态的，片段之间带不了任何时间上下文。紧凑的音频原生策略跑得快，也处理得了接触，但规模摆在那里，长时程、多阶段的行为很容易垮掉。原生处理音频是必要条件，远不是充分条件。&lt;/p&gt;
&lt;p&gt;最容易想到的捷径是提高重规划频率：把动作块截短，查询得更勤，盲区间自然缩小。这些变体我们都试过。收益比看上去应该有的小得多，代价却落在运动质量上：轨迹不连续，抖动明显，还会引入局部的动作循环。它也修不好系统延迟，再高的查询频率都消不掉延迟。因为延迟丢掉的那条线索，问多少次都是丢的。&lt;/p&gt;
&lt;p&gt;基准测试同样帮不上忙，因为标准仿真器都是无声的。RLBench 和 ManiSkill 在完全没有声学通道的环境里考察空间推理与视觉控制。真正用声音的导航基准允许智能体移动底座来改善听音几何，机械臂没有这条路：它必须一边干活，一边产生自己的机械噪声。&lt;/p&gt;
&lt;h2 id="把感知节拍和决策节拍分开"&gt;把感知节拍和决策节拍分开&lt;/h2&gt;
&lt;p&gt;我们的答案来自一个判断：这是速率不匹配，不是信息缺失。声音一直在，只是策略被问得太少，接不住它。&lt;/p&gt;
&lt;p&gt;于是，与其把策略做得更快，我们把两种速率解开。一份持久记忆跟着音频流逐包更新，不看策略何时发起查询。等到真正要决策，记忆里已经装下了此前到达的一切，包括发生在盲区间里的事件。机器人回应的不是上一个窗口，而是刚刚过去这一秒的聆听，其中浓缩着近期的历史。&lt;/p&gt;
&lt;p&gt;这是整个设计的核心动作，架构里其余部分都是围着它做的记账。需要一个东西记住，一个东西解释，一个东西预测接下来的声音，还有一个东西去行动。我们照着这个分工给它们起了名字。&lt;/p&gt;
&lt;p&gt;两条约束塑造了设计。其一，音频通路必须严格因果：任何环节都不能去看尚未到达的采样，分词器为某一段生成编码时也只能依赖这一段本身。其二，记忆跨度要是指标，不能是运气。它得覆盖最坏情况下的决策间隔，再加上实测的系统延迟，否则这个保证就只是统计意义上的。&lt;/p&gt;
&lt;h2 id="四个模块"&gt;四个模块&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Historizer。&lt;/strong&gt; 两次决策边界之间，机器人可能收到一长串连续的音频包，每个约四十毫秒。Historizer 在它们到达时逐一消费，更新一份流式的有状态 Transformer 记忆。这份记忆只在决策时刻读出，其余时间不读。它存在的全部理由就是前面那条证据消失的论证：只开一个窗口的接口，表示不了窗口打开前刚刚发生的事。我们也试过因果 GRU，以及把指数滑动平均池化用在音频特征上；流式注意力多出来的容量对得起它的开销。我们最终选的是短窗口加持久摘要，而不是超长窗口，因为长窗口会把不同的交互阶段搅在一起，结果还取决于窗口边界恰好切在哪里。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Envisioner。&lt;/strong&gt; 解释分成两层，因为两件事的频率差得很远。高层模型读取多视角图像、当前声学窗口、指令、本体感觉和记忆，产出三样东西：语义隐向量、KV cache，以及一段对当前任务阶段的简短结构化描述，形如 &lt;code&gt;{&amp;quot;stage&amp;quot;: &amp;quot;wait&amp;quot;, &amp;quot;subgoal&amp;quot;: &amp;quot;listen for beep&amp;quot;}&lt;/code&gt;。这段阶段文本出自高层模型自己的文本头。随后一个更小的低层模型复用该 cache，结合当前机器人状态得到控制特征。这样分层，把昂贵的语义解释挡在快路径之外。阶段监督比看上去更要紧：少了它，需要快速改变行为的任务会明显变差，因为没有任何东西迫使隐向量说出自己处在哪个阶段，而声学上有意义的阶段，在视觉上往往长得一模一样。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advancer。&lt;/strong&gt; 它预测从当前决策到下一次决策之间会到达的声音，形式是流式分词器给出的离散编码，以交叉熵训练。这个模块只在训练时使用，部署时直接丢掉，推理阶段不花任何成本。它的作用，是让隐向量对时间流逝和过程推进有具体的感知。倒水、沸腾、报警、对话，各自的声学未来都不一样；把未来预测出来，会逼着共享表征编码出机器人此刻位于过程的哪一步。没有它，失败的样子和 Historizer 缺席时不同：失败来得晚。声音已经告诉机器人该停了，它还在继续倒。正是这种不对称说明，两个模块解决的是不同的问题，而不是彼此重复。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Realizer。&lt;/strong&gt; 动作由条件流匹配生成，从高斯先验积到动作块，用几步 Euler 积分解出，控制特征通过自适应归一化注入条件。选流匹配而不是扩散，图的是步数少。这里有个细节要多说两句：平滑为什么重要。把 Realizer 换成直接回归会产生抖动，抖动把机械自噪声灌进麦克风信号，盖住系统其余部分正想听清的那些短促线索。一次由控制选择造成的感知失败。最尖锐的说法是：一边运动一边聆听的策略，必须以让聆听成为可能的方式运动。在这个场景里，感知与控制分不开。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-historizer-把落在盲执行区间里的线索保留下来"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="流式声学记忆在两次决策之间持续更新，而不是在决策时刻。"
srcset="https://changnie.top/publications/hear/historizer_hu_5775766af414d6a.webp 320w, https://changnie.top/publications/hear/historizer_hu_13f6c5b482f778fe.webp 480w, https://changnie.top/publications/hear/historizer_hu_c2043cf73939453.webp 768w, https://changnie.top/publications/hear/historizer_hu_571c9baa7055bd3b.webp 1024w, https://changnie.top/publications/hear/historizer_hu_7dc5b642df919551.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/hear/historizer_hu_5775766af414d6a.webp"
width="1080"
height="377"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/hear/historizer_hu_2b708e5b0ccd7030.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;Historizer 把落在盲执行区间里的线索保留下来。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-高层模型负责语义和任务阶段低层模型生成控制特征"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="解释被拆到两个频率上。"
srcset="https://changnie.top/publications/hear/envisioner_hu_25efdc49c4b0ce28.webp 320w, https://changnie.top/publications/hear/envisioner_hu_e5e2e91b89c075b8.webp 480w, https://changnie.top/publications/hear/envisioner_hu_432220cd04fe3b52.webp 768w, https://changnie.top/publications/hear/envisioner_hu_5d4684697deb2a8.webp 1024w, https://changnie.top/publications/hear/envisioner_hu_5b4a043e470a3db2.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/hear/envisioner_hu_25efdc49c4b0ce28.webp"
width="1080"
height="632"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/hear/envisioner_hu_3d67c13584ab2b64.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;高层模型负责语义和任务阶段，低层模型生成控制特征。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-advancer-只在训练阶段使用部署时被移除"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="预测近未来的声学，把共享隐向量锚定在时间上。"
srcset="https://changnie.top/publications/hear/advancer_hu_2dd69770add3e46c.webp 320w, https://changnie.top/publications/hear/advancer_hu_31e0ee192dabe13.webp 480w, https://changnie.top/publications/hear/advancer_hu_adbad00a1a70109e.webp 768w, https://changnie.top/publications/hear/advancer_hu_955a3b5692d23ff2.webp 1024w, https://changnie.top/publications/hear/advancer_hu_2b7adb955b3e3f6b.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/hear/advancer_hu_2dd69770add3e46c.webp"
width="1080"
height="515"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/hear/advancer_hu_52d059a3da52f908.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;Advancer 只在训练阶段使用，部署时被移除。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;三个训练目标加权求和，权重在微调的前一阶段逐步升上来，模型于是先学会模仿，再被要求具备时间感。&lt;/p&gt;
&lt;h2 id="数据从哪来它原本并不存在"&gt;数据从哪来：它原本并不存在&lt;/h2&gt;
&lt;p&gt;没有任何机器人数据集带同步音频。Open X-Embodiment 里根本没有麦克风；真实的同步音频噪声大、绑定具体硬件，没法跨实验室铺开；标准仿真器也都不建模声学。&lt;/p&gt;
&lt;p&gt;这两件事我们都做了。OpenX-Sound 从视频出发，为已有的回合补上音频，同时保留全部原始信号，我们手工抽查了一部分样本，核对同步性与语义相关性。有一点要说清楚：这是给表征学习用的冷启动机制，替代不了真实的物理数据。合成音频可能漏掉细微的接触线索，可能把事件时间挪位，也可能凭空编出一个没有物理来源的声音。论文里每一个结果，都是先把 OpenX-Sound 检查点在有真实音频的任务专属示范上微调之后得到的。合成音频让预训练的声学先验成为可能，真正让行为奏效的，是后面那些真实数据。&lt;/p&gt;
&lt;p&gt;另一半是 HEAR-Bench。它建在双臂仿真器上，另起一个异步音频线程，按控制周期推出的精确采样位置注入环境噪声和触发片段，并且只有在提示音之后达成几何目标才判成功。那条时序规则就是它的全部贡献。没有它，回合一开始就按下按钮，和闹铃真正响起时再按，看上去毫无区别。&lt;/p&gt;
&lt;h2 id="真机实验的精心设计为什么是这几项任务"&gt;真机实验的精心设计：为什么是这几项任务？&lt;/h2&gt;
&lt;p&gt;在验证端到端多模态具身大模型（VLA）的声音感知操作能力时，我们没有随意选取玩具场景，而是针对纯视觉策略在物理世界中的根本盲区，精心设计了每一项真机实验：&lt;/p&gt;
&lt;h3 id="1-摩卡壶煮咖啡真正的机器人咖啡师-vs-虚假的开环按键"&gt;1. 摩卡壶煮咖啡：真正的机器人咖啡师 vs 虚假的开环按键&lt;/h3&gt;
&lt;p&gt;现存绝大多数声称“机器人煮咖啡”的研究或演示，本质上只是让机械臂走到商用胶囊咖啡机或全自动咖啡机前，开环按下一个固定的塑料按键，然后静止等待内部集成芯片完成倒计时。这种操作根本不需要感知物理状态，本质上只是一次机械开关触发，没有任何温度、流体或烹饪物理变化的理解。&lt;/p&gt;
&lt;p&gt;我们在真实厨房台面布置了意大利经典的金属摩卡壶明火加热萃取任务。摩卡壶由完全不透明的双层金属腔体构成，内部加压沸水、滤网咖啡粉饼以及向上喷涌的咖啡液完全深藏在金属壳体内，外部视觉相机与红外传感器根本无法穿透金属窥视内部液位与流动。&lt;/p&gt;
&lt;p&gt;一名经验丰富的专业咖啡师绝不依赖秒表，而是全凭双耳监听锅炉内部的声音变化：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;静默加热相&lt;/strong&gt;：底壶水温逐渐上升，仅有微弱的热传导声；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;平缓沸腾与层流萃取相&lt;/strong&gt;：水蒸气压力推动热水穿过粉饼，发出持续、温和的轻微咕嘟声；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;暴烈喷溅爆发相（Sputtering Phase / 气穴空化喷涌）&lt;/strong&gt;：下壶水即将耗尽，高温高压蒸汽混合残存咖啡液从导流烟囱剧烈喷出，伴随着极具辨识度的“嘶嘶喷溅”声。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这是决定咖啡品质的绝对分水岭：早一秒离火，萃取不足导致口感酸涩水感；晚两秒离火，干烧将导致咖啡粉过萃焦苦甚至烧毁壶底。&lt;/p&gt;
&lt;p&gt;HEAR 是真正的机器人咖啡师：它通过端到端 VLA 大模型实时监听高频声学频谱的突变，在捕捉到微弱喷溅声涌现的瞬间，以毫秒级响应发出离火动作块，将摩卡壶稳健移离电热炉。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-对比传统开环按键与-hear-监听金属摩卡壶内部声学相变的本质差异"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img alt="常规机器人煮咖啡与 HEAR 真实声学咖啡师对比" src="https://changnie.top/publications/hear/moka-contrast.svg" loading="lazy" data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/hear/moka-contrast.svg" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;对比传统开环按键与 HEAR 监听金属摩卡壶内部声学相变的本质差异。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="2-摇瓶辨物主动声学探测active-acoustic-probing"&gt;2. 摇瓶辨物：主动声学探测（Active Acoustic Probing）&lt;/h3&gt;
&lt;p&gt;在日常生活中，大量药品瓶、食品罐、封闭包装盒都是完全不透明的。被动视觉观测在面对不透明容器时彻底失效（无论如何调整相机视角，都只能看到静止的外表面）。&lt;/p&gt;
&lt;p&gt;机器人必须具备“主动感知（Active Exploration）”的能力：先通过抓持摇晃瓶体施加外力激发碰撞，再从物体撞击容器壁的高频碰撞音色、共振阻尼与撞击频率中，解耦出内部是否存在物体、物体的物理材质与充盈程度。在真机演示中，我们采用装有实物的非空瓶，展示机器人通过主动摇晃准确捕捉内部撞击音并做出分类判断。&lt;/p&gt;
&lt;h3 id="3-真实闹钟视觉静止下的时序混叠消歧"&gt;3. 真实闹钟：视觉静止下的时序混叠消歧&lt;/h3&gt;
&lt;p&gt;闹钟在静止状态与响起状态下，视觉外观完全相同。若无声学反馈，端到端策略很容易因捷径学习（Shortcut Learning）直接按停按钮。实验要求策略必须在闹铃真正骤响时才瞬间响应，验证 VLA 对瞬态声学触发事件的时间对齐精度。&lt;/p&gt;
&lt;h3 id="4-往不透明容器倒水与接听电话"&gt;4. 往不透明容器倒水与接听电话&lt;/h3&gt;
&lt;p&gt;往不透明容器里倒水，是声音成为唯一信号的典型场景。液面完全被遮挡，真正的决策变量是水流撞击容器底部与共鸣腔体缩小时倒水声的频率上升变化率。接听电话则检验长程复杂流程中，机械臂根据电话铃声响起到位、根据人声对话停顿判断聆听、并在通话结束挂断音响起后执行复位挂机，验证端到端 VLA 在连续声学事件驱动下的多阶段状态流转。&lt;/p&gt;
&lt;section class="hear-video-gallery not-prose" aria-label="HEAR 真机实验视频"&gt;
&lt;div class="hear-video-gallery__heading"&gt;
&lt;h3&gt;真机实验视频&lt;/h3&gt;
&lt;p&gt;所有演示均保留现场真实声音；点击后播放。&lt;/p&gt;
&lt;/div&gt;
&lt;div class="hear-video-gallery__grid"&gt;&lt;figure class="hear-video-gallery__card"&gt;
&lt;video controls playsinline preload="none" poster="/media/hear/posters/moka-coffee.jpg" aria-label="摩卡壶煮咖啡"&gt;
&lt;source src="https://changnie.top/media/hear/videos/moka_pot_all_web.mp4" type="video/mp4"&gt;
&lt;track kind="captions" src="https://changnie.top/media/hear/captions/moka-coffee.en.vtt" srclang="en" label="English"&gt;
&lt;/video&gt;
&lt;figcaption&gt;&lt;strong&gt;摩卡壶煮咖啡&lt;/strong&gt;&lt;span&gt;机器人化身咖啡师，监听封闭金属摩卡壶内部的剧烈喷溅声，精准判定萃取完成并执行离火。&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="hear-video-gallery__card"&gt;
&lt;video controls playsinline preload="none" poster="/media/hear/posters/answer-phone.jpg" aria-label="接听电话"&gt;
&lt;source src="https://changnie.top/media/hear/videos/telephone_all.mp4" type="video/mp4"&gt;
&lt;track kind="captions" src="https://changnie.top/media/hear/captions/answer-phone.en.vtt" srclang="en" label="English"&gt;
&lt;/video&gt;
&lt;figcaption&gt;&lt;strong&gt;接听电话&lt;/strong&gt;&lt;span&gt;铃声、语音和通话结束声帮助机器人区分视觉上相似的任务阶段。&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="hear-video-gallery__card"&gt;
&lt;video controls playsinline preload="none" poster="/media/hear/posters/shake-bottle-occupied.jpg" aria-label="摇瓶辨物"&gt;
&lt;source src="https://changnie.top/media/hear/videos/occupied_all.mp4" type="video/mp4"&gt;
&lt;track kind="captions" src="https://changnie.top/media/hear/captions/shake-occupied.en.vtt" srclang="en" label="English"&gt;
&lt;/video&gt;
&lt;figcaption&gt;&lt;strong&gt;摇瓶辨物&lt;/strong&gt;&lt;span&gt;机器人主动摇晃不透明容器，通过内部实物撞击的碰撞音色与共振阻尼判定所装物品。&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="hear-video-gallery__card"&gt;
&lt;video controls playsinline preload="none" poster="/media/hear/posters/real-alarm-clock.jpg" aria-label="真实闹钟"&gt;
&lt;source src="https://changnie.top/media/hear/videos/alarm_all.mp4" type="video/mp4"&gt;
&lt;track kind="captions" src="https://changnie.top/media/hear/captions/real-alarm-clock.en.vtt" srclang="en" label="English"&gt;
&lt;/video&gt;
&lt;figcaption&gt;&lt;strong&gt;真实闹钟&lt;/strong&gt;&lt;span&gt;机器人等闹钟真正响起后才按下停止按钮。&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;h2 id="核心技术沉淀与工程认识"&gt;核心技术沉淀与工程认识&lt;/h2&gt;
&lt;p&gt;将高频连续声学信号深度融入端到端具身大模型（VLA），远不止在模型输入端增加一个声学特征编码通道那么简单。传统做法将声音当成额外的视觉通道对待，但声音的物理本质是事件驱动的高频瞬态信号，它要求端到端大模型在底层架构层面解决异步时序节拍的解耦与对齐。&lt;/p&gt;
&lt;p&gt;这种张力并不局限于声音。任何以高于策略查询频率产生短促、不可重复事件的接触物理模态（最典型的便是高频触觉与微振动），都会遭遇同样的速率不匹配瓶颈。这种速率与因果不对称性，无法通过单纯把 VLA 大模型推理速度做快来解决。&lt;/p&gt;
&lt;p&gt;单纯提高大模型的动作重规划频率并不能弥合瞬态事件捕获问题，反而会由于过高的推理抖动引入控制不稳定，拿系统的长程稳定性去换取盲目的瞬态反应，只会为控制系统引入高频噪声。唯有在架构内部建立显式的局部时序状态记忆与跨模态对齐表征，才能使端到端具身大模型既具备宏观语义因果理解，又拥有毫秒级声学物理闭环能力。辅助的声学未来预测自监督目标可以在推理零开销的前提下提供紧凑的时间锚定，而严格考虑时间触发因果的评测基准，才真正把“看起来做对了”推进到“确实听懂了物理世界”。&lt;/p&gt;
&lt;h2 id="目前还做不到的事"&gt;目前还做不到的事&lt;/h2&gt;
&lt;p&gt;只有一个工作空间麦克风，既无法定位声源，也分不开重叠的事件，这实际上就是鸡尾酒会问题。我们想要一个麦克风阵列，或者用底座加末端执行器组成一对来做波束成形。系统完全靠离线模仿训练，鲁棒性受限于示范中噪声与时间变化的多样性，在真实房间里做在线微调或强化学习是最直接的补救。音频和视觉仍作为两路独立的流处理，在表征层面融合，我们猜测，能把音色与接触直接关联起来的原生视听编码器会做得更好。至于不受约束的真实烹饪声学，仍是开放问题，真机部署的难度明显高于仿真。&lt;/p&gt;
&lt;h2 id="更大的图景"&gt;更大的图景&lt;/h2&gt;
&lt;p&gt;我们出发时面对的那处张力，也就是高频的瞬时感知事件与低频、带延迟的策略更新之间的落差，并不是声音独有的。每一种把信息放在时间里的物理模态都会遇到它。HEAR 是我们的一次尝试：说明修法在架构上，并且把可以复用的东西留下来，包括 VSLA 的表述、预训练语料和评测基准，让后来的人接着往上做。&lt;/p&gt;</description></item><item><title>LNR：通过学习邻域实现鲁棒多模型拟合</title><link>https://changnie.top/zh/publications/lnr/</link><pubDate>Sat, 14 Sep 2024 10:33:19 +0000</pubDate><guid>https://changnie.top/zh/publications/lnr/</guid><description>&lt;h2 id="多结构并存下的最小集组合爆炸为什么盲目随机选取几乎注定选错"&gt;多结构并存下的最小集组合爆炸：为什么盲目随机选取几乎注定选错&lt;/h2&gt;
&lt;p&gt;在几何视觉与机器人建图中，多模型拟合（Multi-Model Fitting）要解决的是物理世界中最普遍的混叠现实：场景中往往同时存在数十个不同的几何图元（如多堵交错的墙面、多条道路边缘、多个运动物体的轨迹），且这些结构被淹没在海量的传感器噪声与未匹配外点之中。&lt;/p&gt;
&lt;p&gt;在经典几何鲁棒估计中，求解一个基础几何模型只需要极其精简的离散数据点。这就是所谓的“最小样本集（Minimum Sample Set）”——例如在二维空间拟合一条直线只需要 $m=2$ 个点，在三维空间拟合一个平面需要 $m=3$ 个点，求解双视图基础矩阵需要 $m=8$ 对对应点。&lt;/p&gt;
&lt;p&gt;如果沿用传统 RANSAC 的均匀随机采样策略，系统会假设每一次无偏抽取都有合理的概率命中正确内点。然而，一旦场景从“单模型”切换到“多模型交织”，这种盲目抽样的数学期望就会发生灾难性的指数坍缩：&lt;/p&gt;
&lt;p&gt;设场景中存在 $K$ 个不同的真实结构，若盲目从全部观测中随机抽取两个点，这两个点要么分别属于两个完全无关的物理结构，要么其中至少有一个是环境野点。随着交叠结构的增多与外点率的上升，随机抽取的样本对“恰好全部落在同一个合法结构上”的几率微乎其微。每一组错误的最小采样集，却依然要耗费算力调用底层的代数求解器并执行全量几何残差打分。算力绝大部分都被白白浪费在这些先验即错的候选假设上，这是传统采样机制在多模型场景下的结构性瓶颈。&lt;/p&gt;
&lt;p&gt;而如果采用贪心迭代剔除（例如 Sequential RANSAC 先拟合一个模型、剔除其内点再重新开始），又会陷入硬聚类的陷阱：现实中相邻结构往往在交界处共享观测，贪心剔除使得共享观测被前序模型独占，导致紧邻模型失去几何支撑而直接被漏检。&lt;/p&gt;
&lt;p&gt;还有三条约束决定了我们最终的做法。方法必须在不知道模型数量的前提下工作，这就排除了一整类把模型数当作输入的方案。速度要能实用。最后，它得能迁移到别的任务，因为每换一个问题就要重新设计一遍的拟合器，算不上通用工具。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-学习只落在两个决策点上其余仍是经典流程"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="粗层在求解器看到它们之前筛掉最小集，细层对存活下来的假设做细化并评分。"
srcset="https://changnie.top/publications/lnr/pipeline_hu_be90a93e669e40d2.webp 320w, https://changnie.top/publications/lnr/pipeline_hu_f73f8df08ced02a8.webp 480w, https://changnie.top/publications/lnr/pipeline_hu_1c5eca38f8c6937b.webp 768w, https://changnie.top/publications/lnr/pipeline_hu_e2e0b360bb520386.webp 1024w, https://changnie.top/publications/lnr/pipeline_hu_5d3bdd6acc180ebc.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/lnr/pipeline_hu_be90a93e669e40d2.webp"
width="1080"
height="561"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/lnr/pipeline_hu_2f7965245a0e0ae8.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;学习只落在两个决策点上，其余仍是经典流程。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="真正出问题的四件事"&gt;真正出问题的四件事&lt;/h2&gt;
&lt;p&gt;我们把问题拆成四种失效情形，方法的每个部件各回答其中一种。&lt;/p&gt;
&lt;p&gt;第一，几何特征没有被充分利用。现有方法要么依赖人工设计的判据，只看得到几何信息的一部分；要么是神经网络，从头到尾没有显式地看过几何。&lt;/p&gt;
&lt;p&gt;第二，噪声带来的低效优化。大量求解器调用，花在从一开始就没有希望的点集上。&lt;/p&gt;
&lt;p&gt;第三，模型重叠。这是拟合一个模型与拟合多个模型的根本差别，而多数形式化描述连把它表达出来都做不到。&lt;/p&gt;
&lt;p&gt;第四，流程不可微。离散的最小集采样和任务专用的最小求解器都处在流程中间，两者都没有梯度。想把基于学习的方法接进来，难就难在这里。仅有的两条绕行路线都不好用：拿可微的松弛替换精确求解器，等于把求解器弄丢了；改用策略梯度估计，就得接受方差。&lt;/p&gt;
&lt;h2 id="已有方法没能解决的问题"&gt;已有方法没能解决的问题&lt;/h2&gt;
&lt;p&gt;贪心的单模型扩展带着上面说的硬归属问题。MultiRANSAC 每次迭代拟合 K 个模型而不是一个，这就要求 K 事先已知；K 一大，计算上就变得不划算，因为一次迭代里同时找出好几个好模型本身就很难。&lt;/p&gt;
&lt;p&gt;迭代式假设生成是更精细的一类，共同的毛病是时间上的耦合。每个新模型都建立在前几轮的结果之上，随着流程推进，误差会沿着模型重叠处层层累积。我们自己的消融实验如实记录了这里的取舍：把更强的学习式采样器换进 LNR，精度上去了，整个过程也明显变慢。我们主动选了代价小的那一边，并且把代价写在论文里。&lt;/p&gt;
&lt;p&gt;聚类式方法，包括偏好集聚类和把最小集判为有效或无效的网络，在各自针对的问题上表现不错，却没有考虑数据的复用。评估一个假设时得到的信息，不会带到另一个假设的评估里去。&lt;/p&gt;
&lt;p&gt;还有一类方法用全局能量函数替换采样启发式，能量由几何误差和聚类规整项构成；也有人用归属能量的凸松弛，或者在超图上做模式搜索。这些形式化在构造上就能处理重叠，代价是所用代价函数足够复杂，复杂到未必能充分利用数据里真实存在的几何信息，迁移到多样而复杂的场景时效果因此受限。&lt;/p&gt;
&lt;p&gt;利用并行计算的高效采样方法很强，但它们需要把实例数量当作先验，适用范围受限。&lt;/p&gt;
&lt;p&gt;最后是端到端深度方法，精度不错，以黑箱方式工作。这对可靠部署来说是实打实的障碍，也正是我们不想造的东西。&lt;/p&gt;
&lt;h2 id="在决策点上学习以数据点为条件"&gt;在决策点上学习，以数据点为条件&lt;/h2&gt;
&lt;p&gt;我们的做法是把经典流程原封不动保留下来，只把学习放到真正做决策的地方：求解之前，决定哪些最小集值得占用一次求解器调用；求解之后，决定每个假设该往哪里动、它又有多好。&lt;/p&gt;
&lt;p&gt;关键的设计选择是网络以什么为条件。所有被学习的量都是数据点几何特征的函数，与假设参数无关。正因如此，采样器和求解器才能留在流程里，在前向过程中作为不可微的黑箱存在，不需要任何梯度穿过它们。&lt;/p&gt;
&lt;p&gt;这里需要说准确，因为很容易讲过头。求解器在训练中是参与了的：两个分类器的标签都来自把求解得到的假设与真值实例作比较，粗层的标签也来自对采样集合的求解。没有发生的事情，是穿过求解器或采样器反向求导。两者只走前向。&lt;/p&gt;
&lt;p&gt;每个点先用 Fourier 特征映射提升空间频率的编码能力，再经过以逐点卷积实现的共享多层感知机，最后最大池化成全局描述子。逐点特征与全局特征拼接成 256 维向量，其中局部 128 维、全局 128 维，于是每个点既带着自己的局部几何，也带着对整个场景的一份概括。粗层模块需要这种整体视角；后来我们发现，细层模块并不需要。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-一个点可以同时为多个假设提供证据重叠因此可以被表达"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="有些观测同时属于两个模型，表征必须容许这一点。"
srcset="https://changnie.top/publications/lnr/multi-line-results_hu_4c7c5dbbe18069f4.webp 320w, https://changnie.top/publications/lnr/multi-line-results_hu_96860f218d372428.webp 480w, https://changnie.top/publications/lnr/multi-line-results_hu_785cd933f1a76fc1.webp 768w, https://changnie.top/publications/lnr/multi-line-results_hu_5cb6560ba450474a.webp 1024w, https://changnie.top/publications/lnr/multi-line-results_hu_b8b95fb407a4088f.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/lnr/multi-line-results_hu_4c7c5dbbe18069f4.webp"
width="1080"
height="793"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/lnr/multi-line-results_hu_a16899d588b41d7a.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;一个点可以同时为多个假设提供证据，重叠因此可以被表达。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="求解之前先筛选"&gt;求解之前先筛选&lt;/h2&gt;
&lt;p&gt;粗层模块随机抽取大量最小集，数量刻意取得偏多，以保证覆盖足够广，然后为每个集合预测一个置信度。只有得分最高的那些能走到求解器面前。&lt;/p&gt;
&lt;p&gt;这里有两件事值得展开。第一，采样为什么一直保持随机，而没有变成迭代式。随机采样避开了迭代式生成器那种误差累积，也能保住对整个观测集合的覆盖。这是务实的折中，不是最优解，我们在文中也这么写了。&lt;/p&gt;
&lt;p&gt;第二，置信度按二分类问题来训练，这意味着模块学会了挑选有希望的最小集，却不需要任何显式的退化检验。经典流程会写死若干检查来拒绝退化构型（degenerate configuration）；在这里，拒绝是从求解结果与真值的比较里学出来的。我们把一条手写规则换成了一条学出来的规则，好处在于它随数据改变，而不随写规则的人改变。&lt;/p&gt;
&lt;p&gt;去掉粗层模块，性能掉得很明显，因为细层网络应付不了那样堆积起来的候选数量。分开预训练粗层、而不是两层联合训练，效果同样更差，原因正是整套训练设计里最有意思的地方。&lt;/p&gt;
&lt;h2 id="用邻域判断一个假设"&gt;用邻域判断一个假设&lt;/h2&gt;
&lt;p&gt;对每一个存活下来的假设，我们划出一块邻域（neighbor region）：在某个任务相关的距离度量下离它足够近的那些数据点。直线用欧氏距离，消失点用方向距离，平面用重投影误差，运动用归一化极线约束。邻域内的点先被编码，再把每个点到该假设的残差拼接到它自己的特征上，点数不足的邻域用零填充以便批处理，最后由两个头读取结果。&lt;/p&gt;
&lt;p&gt;一个头预测的是增量，不是一个完整的模型。直线任务里，它预测两个端点各挪一点点；消失点、单应或者基础矩阵任务里，它预测一个对应的调整量，这个调整量直接加到粗层假设上。网络从不凭空造模型。核对并修正一个猜测，比从零生成一个要容易，所以生成交给经典求解器，修正交给网络。&lt;/p&gt;
&lt;p&gt;另一个头预测评分。论文在这里的立场常常让人意外：一致性最大化并不偏向最好的那个模型。内点计数是衡量假设质量的标准代理指标，模型一旦重叠，它就是错的代理指标。取而代之的，是从假设周围的数据里学出评分。&lt;/p&gt;
&lt;p&gt;邻域表征也是重叠之所以能被表达的原因。两条相交直线在交点附近共享一块邻域，那里的点同时落在两个邻域内部，为两个假设都提供证据。整个流程里没有任何地方做硬归属。&lt;/p&gt;
&lt;p&gt;细层模块还刻意丢掉了粗层所依赖的全局上下文。细化单个假设时，局部细节更有用；全局信息会带进来许多无关细节，反而拖慢这件事。同一个特征在筛选时帮忙，在细化时添乱。这种不对称是一条可以复用的由粗到细原则，也说明两个模块不能简单看作同一个网络跑了两遍。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-细层依据假设周围的观测打分而不是只看假设参数"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="消失点在球面上接受评分，那里的几何接近就意味着相似。"
srcset="https://changnie.top/publications/lnr/vanishing-points_hu_b356f243a44d4b97.webp 320w, https://changnie.top/publications/lnr/vanishing-points_hu_270d6fb37b9afbac.webp 480w, https://changnie.top/publications/lnr/vanishing-points_hu_f7d8b847151d73e0.webp 768w, https://changnie.top/publications/lnr/vanishing-points_hu_270eeae10cd1a56f.webp 1024w, https://changnie.top/publications/lnr/vanishing-points_hu_f2af219f03304c8.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/lnr/vanishing-points_hu_b356f243a44d4b97.webp"
width="1080"
height="409"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/lnr/vanishing-points_hu_f9346589774999e3.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;细层依据假设周围的观测打分，而不是只看假设参数。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="决定场景里有几个模型"&gt;决定场景里有几个模型&lt;/h2&gt;
&lt;p&gt;打过分的假设是冗余的。好几个假设描述的是同一个结构，而答案里它只该出现一次。我们把目标检测里的非极大值抑制（non-maximum suppression, NMS）搬到这个场景，把交并比换成几何意义上的相似度：直线看端点距离和夹角，消失点看高斯球面上的邻近程度，单应和基础矩阵则看逐点距离向量之间的相似度。&lt;/p&gt;
&lt;p&gt;决定场景里有多少个模型的，也是这套机制。模型数量是抑制过程的输出，而不是方法的输入，这正是我们一开始就想要的效果。&lt;/p&gt;
&lt;h2 id="两个模块如何互相训练"&gt;两个模块如何互相训练&lt;/h2&gt;
&lt;p&gt;三个损失。粗层置信度和细层评分都用二元交叉熵，标签由候选与真值实例的相似度导出。细化头用 Smooth L1 目标函数监督参数增量。&lt;/p&gt;
&lt;p&gt;需要解释的是两层之间的耦合。细层的损失会回传到粗层模块，于是选择器学到的是优先挑那些细层能处理得动的假设，而不只是去匹配一个预先定好的标签。两个模块共享编码后的邻域特征，梯度通路就是靠这一点存在的。联合训练优于预训练粗层，原因在于细层的信号重新定义了粗层眼里什么算好。&lt;/p&gt;
&lt;p&gt;消融实验里还有一条我们事先没想到的观察。只用更难的场景训练，也就是画面里直线更多的那种，效果与用简单场景训练持平，甚至更好。我们把它归因于数据变化更大，起到了正则化的作用。用来对照的基线采样器上，同样的效应也出现了，只是弱一些。&lt;/p&gt;
&lt;h2 id="我们从中得到什么"&gt;我们从中得到什么&lt;/h2&gt;
&lt;p&gt;让学习和不可微部件解耦，靠的是换掉网络的条件，而不是把它们变可微。这份克制是本文方法上最强的表态，也正是精确求解器得以保留的原因。&lt;/p&gt;
&lt;p&gt;选择器要对下游的兼容性负责，而不是只对着自己的代理标签优化。预训练会丢掉联合训练能保住的信息。&lt;/p&gt;
&lt;p&gt;一致性不等于质量。模型重叠的时候，内点计数是错的度量；把它当成对的，模型就会被少算。&lt;/p&gt;
&lt;p&gt;一个特征的价值取决于它出现在哪个阶段。全局上下文对筛选有利，对细化有害。&lt;/p&gt;
&lt;p&gt;还要把多实例做进结构里。如果接口规定每个点只能进一个模型，那么无论怎么训练，都表达不了两个。&lt;/p&gt;
&lt;h2 id="它假设了什么"&gt;它假设了什么&lt;/h2&gt;
&lt;p&gt;两个分类器需要真值实例作为监督。在没有真值模型的领域里表现如何，我们没有刻画。&lt;/p&gt;
&lt;p&gt;邻域半径和采样预算是任务相关的量，除了说它们会随任务变化，我们没给出设定办法；抑制阈值同样没有写出来。&lt;/p&gt;
&lt;p&gt;跨任务迁移意味着要重新推导四个任务相关的部件：邻域的距离度量、求解器、细化的参数化方式，以及抑制时的相似度。这些是针对每个任务的实际工程工作，我们不宣称零样本迁移。&lt;/p&gt;
&lt;p&gt;面对长度不一的邻域，零填充是我们唯一的办法；点很少的邻域会不会因此被稀释，我们没有考察。&lt;/p&gt;
&lt;p&gt;随机采样是折中，不是最优。我们自己的消融显示，更强的采样器能提高精度；而一个便宜的学习式采样器能否两头兼顾，我们没有给出答案。&lt;/p&gt;
&lt;h2 id="为什么保留两段式流程"&gt;为什么保留两段式流程&lt;/h2&gt;
&lt;p&gt;保留既有的两段式策略，理由很具体：可解释性。数值方法天生可解释，适用范围也界定得清楚，缺点在于难以充分利用数据的几何特征。端到端深度方法表现很好，却说不清自己是怎么得到结果的。&lt;/p&gt;
&lt;p&gt;LNR 保留了流程，输出就是显式的几何模型。网络接受通用的无序点集，图像对应、三维点云和像素坐标都包含在内；损失作用在几何特征上，而不作用在假设上。正是这一点，让它能和各种各样的求解器与采样过程兼容，可微与否都不影响。&lt;/p&gt;
&lt;p&gt;我们给自己定的目标刻意不高。希望它为用学习的方式处理多模型拟合带来一点新想法；比起一个精度说不清来由的方法，我们更愿意要一个行为经得起追问的方法。&lt;/p&gt;</description></item><item><title>基于激光雷达–相机融合与 IMM-UKF 的高速公路三维目标检测与跟踪</title><link>https://changnie.top/zh/publications/dtfi/</link><pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate><guid>https://changnie.top/zh/publications/dtfi/</guid><description>&lt;h2 id="每两米就盲一次的感知"&gt;每两米就盲一次的感知&lt;/h2&gt;
&lt;p&gt;这项工作真正的设计约束是延迟，而不是精度。&lt;/p&gt;
&lt;p&gt;多数基于融合的三维检测算法在工作站上也只有不到 15 Hz，而开车的并不是工作站。车载计算平台算力更低，而且它并不专供感知：规划、控制以及整个系统的其他模块都要同时运行，同一份预算还要再被分走一块。&lt;/p&gt;
&lt;p&gt;把 15 Hz 的代价换成一个具体数字。高速行驶时，相邻两帧之间车辆前进约 1.94 米。在这段距离里，感知系统实际上看不到刚刚发生的变化，我们把这叫做时间盲区（time blind）。后果一点都不抽象：一个按两米之外那辆车的位置做反应的系统，反应的是一个已经不存在的场景。&lt;/p&gt;
&lt;p&gt;30 Hz 能大幅缩短这段盲区，也给其他模块留出运行空间。这个目标，以及它必须在可负担的硬件上、而不是在开发机上达成，决定了论文里的每一个选择。它还意味着我们做了一次有意的取舍：纯激光雷达方法的检测精度高于融合方法，我们从一开始就没打算在这一轴上赢过它们，目标是在它们达不到的频率下依然有竞争力。&lt;/p&gt;
&lt;h2 id="三类融合方案各自的代价"&gt;三类融合方案各自的代价&lt;/h2&gt;
&lt;p&gt;把图像和点云结合起来的路子有三种，每一种都要付出代价。&lt;/p&gt;
&lt;p&gt;先在二维上检测、再把框提升到点云里的视锥（frustum）方案，会让整个系统依赖那个二维检测器。图像分支一旦出错，误差就传到三维，没有挽回的余地。&lt;/p&gt;
&lt;p&gt;在特征层或候选框层融合、端到端训练，效果很强，代价是区域级融合的过程会丢掉原始信息。这类方法往往结构复杂、运行缓慢，而运行缓慢正是我们要解决的问题。&lt;/p&gt;
&lt;p&gt;第三类把点云投影到图像特征图上，用在那里找到的内容增强每个点。架构因此离纯激光雷达检测器很近，这正是我们想要的；柱状编码器又把运行时间压得很低。我们选这一类，理由就在这里。&lt;/p&gt;
&lt;p&gt;纯激光雷达检测这一支同样有谱系可循。基于体素的三维卷积精度好，速度慢。稀疏卷积提高了效率，还是不够快。柱状表示把问题降到二维卷积，在精度与速度之间取得了最好的平衡，我们就建在它上面。&lt;/p&gt;
&lt;p&gt;跟踪环节用经典滤波器而不是学习式滤波器，是有意为之，不是图稳妥。学习式跟踪器在实时条件下的表现很差，拿神经网络做数据关联又太耗时，匈牙利算法因此保留下来。批处理式跟踪被排除是另一个原因：它要用到全部数据，而行驶中的系统永远只有历史。二维跟踪也被排除，因为它给不出目标在三维中的位置和尺寸。&lt;/p&gt;
&lt;p&gt;滤波器方案里最接近的一个是知名的三维跟踪器，简单高效，只用一个匀速模型。匀速模型无法表示正在转弯的车辆，它的状态估计于是恰恰在预测最要紧的场合退化。还有一个单目跟踪器，在一台相机下使用扩展卡尔曼滤波。城市道路场景中也有一套 JPDA-IMM-UKF 系统，检测环节用传统聚类，跑出来的轨迹是碎的，下游跟踪因此受影响。&lt;/p&gt;
&lt;p&gt;IMM 本身在航空领域是标配，在车辆上却几乎见不到，原因很说明问题。飞机的机动幅度很大：速度变化大，航向变化快，切换模型值得那份复杂度。车辆运动要温和得多。再加上汽车场景里可供参考的工作很少，IMM 需要的那些参数很难设定。&lt;/p&gt;
&lt;h2 id="难在哪里"&gt;难在哪里&lt;/h2&gt;
&lt;p&gt;在完整图像分辨率下逐点融合，还要跑满 30 Hz，这首先是算力预算问题，其次才是精度问题。每个点挂多少图像通道，就是你手里那个旋钮；我们把它当作取舍来调，没有一味取最大值。&lt;/p&gt;
&lt;p&gt;数据层融合（data-layer fusion）还有一种安静而具体的脆弱之处。每个点都要对应到一个图像位置，标定一旦有误差，采样到的特征对每个点都落在错误的像素上，而由此得来的输入看上去完全合理。没有任何错误信号，系统并不知道自己拿到的是垃圾。&lt;/p&gt;
&lt;p&gt;如果非选一个运动模型不可，那就怎么选都吃亏。匀速模型简单，处理直线运动很强。恒转率恒速模型能处理旋转。单独用哪一个，在对方的场景里都会出错。答案是在两者之间切换，而切换又带出一组先验参数：状态切换矩阵、状态协方差、过程噪声与量测噪声协方差。按惯例这些参数凭经验设定，而经验值并不能保证适用于另一个场景。这是实打实的方法问题，不是调参上的小麻烦。&lt;/p&gt;
&lt;p&gt;非线性问题同样存在。匀速模型的转移对状态是线性的。恒转率模型的转移里，位置由速度、偏航角速度乘以航向的正弦与余弦表示，这是非线性的，滤波器因此需要 sigma 点，不能只做一次普通的卡尔曼更新。&lt;/p&gt;
&lt;p&gt;跟踪还得同时扛住中断、抵抗噪声。遮挡会让检测丢失，对新建轨迹过于宽松又会放进检测器的误检。这两种失效模式的方向正好相反。&lt;/p&gt;
&lt;p&gt;物理条件还给检测设了上限，与架构无关。在我们的一个例子里，三辆很远的车各自只返回三到五个激光点。点太少，检测就是不触发。&lt;/p&gt;
&lt;h2 id="附加邻域而非单个像素"&gt;附加邻域，而非单个像素&lt;/h2&gt;
&lt;p&gt;这个思路的前一半，针对的正是数据层融合的脆弱。我们不在投影位置上只采一个像素，而是在投影点周围取一个 5 × 5 的图像特征窗口，把整个邻域附加到这个点上。&lt;/p&gt;
&lt;p&gt;这样一来，网络学到的是两个模态之间的对应关系，而不是完全信任标定。一个点的投影偏了一两个像素，它仍能在自己的窗口里找到相关的外观特征。这是检测这一半里最有价值的一次概念上的改动，也正是它分开了两种融合：一种扛得住标定误差，另一种会无声地退化。&lt;/p&gt;
&lt;p&gt;特征取自一个全分辨率的提取器，理由与上面相关：点必须映射到精确的图像位置，这个窗口才有意义，而降采样的特征图会毁掉这份精度。编码器以 VGG 为基础，改了两处。我们把通道数压下来，让优化过程可控；又在网络中间截断，避免特征图缩得太小，缩得太小就没法用来生成融合数据。自顶向下的解码器做上采样，与同分辨率的编码器特征图合并，输出维度由 1 × 1 卷积控制。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-局部窗口学习两个模态之间的对应关系而不假设标定完全准确"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="图像特征在投影位置附近采样，而不是取自单个像素。"
srcset="https://changnie.top/publications/dtfi/image-features_hu_1e00f4c9f3efb140.webp 320w, https://changnie.top/publications/dtfi/image-features_hu_7809a7de87feb080.webp 460w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/dtfi/image-features_hu_1e00f4c9f3efb140.webp"
width="460"
height="382"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/dtfi/image-features_hu_64b0a2b840716456.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;局部窗口学习两个模态之间的对应关系，而不假设标定完全准确。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="压掉高度轴换来帧率"&gt;压掉高度轴，换来帧率&lt;/h2&gt;
&lt;p&gt;增强后的点随后进入柱状编码器。点被分配到鸟瞰图网格里，网格有单元尺寸，每个单元能留多少个点也有上限，超出上限的部分随机下采样。高度轴被压成一个单元，这就是把三维卷积变成二维卷积的那个技巧，帧率正是从这里来的。&lt;/p&gt;
&lt;p&gt;每个点带着自己的几何与外观，另外还有五个偏移特征，描述它相对于所在单元均值和体素中心的位置。一个 PointNet 层把这些特征扩展开，最大池化把每个单元压缩成一个代表，再把这些单元散布回一张伪图像。接着由二维卷积骨干和区域候选头预测带朝向的三维框。&lt;/p&gt;
&lt;p&gt;柱状表示的代价有两处：单元内部的高度结构被丢弃，检测范围被相机视场限制住，因为融合需要像素。这两点我们都接受，算作达成频率目标的代价。&lt;/p&gt;
&lt;p&gt;有一项损失值得单独说，它看起来多余，其实不然。偏航角残差取预测角与锚框角之差的正弦，而正弦是对称的。车头朝前和车头朝后的车给出的残差完全一样。只靠回归分不开这两种情况，损失里因此另设了一项方向分类。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-融合增强后的点云被编码成鸟瞰伪图像"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="柱状表示压掉高度轴，让二维检测器来完成工作。"
srcset="https://changnie.top/publications/dtfi/detector_hu_a8047e6092f1f063.webp 320w, https://changnie.top/publications/dtfi/detector_hu_d7725cd69cf9f508.webp 480w, https://changnie.top/publications/dtfi/detector_hu_b5ac6e6462c23396.webp 768w, https://changnie.top/publications/dtfi/detector_hu_a6c9308f064a74e1.webp 1024w, https://changnie.top/publications/dtfi/detector_hu_7f84c8e9b83b0f2a.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/dtfi/detector_hu_a8047e6092f1f063.webp"
width="1080"
height="413"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/dtfi/detector_hu_30f9ae057f913415.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;融合增强后的点云被编码成鸟瞰伪图像。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="两个运动模型以及一次对先验的搜索"&gt;两个运动模型，以及一次对先验的搜索&lt;/h2&gt;
&lt;p&gt;跟踪器先预测已有的每条轨迹，再按三维重叠度用匈牙利算法把预测与检测关联起来，更新匹配上的轨迹，并对所有未匹配的对象做新生与终止的维护。&lt;/p&gt;
&lt;p&gt;有意思的地方在更新这一步。两个模型并行运行，一个用匀速状态，一个用恒转率恒速状态。混合概率由上一时刻的模型权重和切换矩阵算出，为每个模型构造混合估计，各自的 sigma 点滤波向前预测，再把两者合成 IMM 的预测。关联完成后，每个模型用匹配到的检测做更新，模型概率由量测似然重新计算。这一对模型在构造上就是互补的：匀速模型以很低的代价把线性运动估计得很好，恒转率模型补上它处理不了的旋转情况。&lt;/p&gt;
&lt;p&gt;轨迹生命周期管理用两条护栏应对中断与噪声之间的张力。未匹配的轨迹会在有限帧数内继续预测，之后才终止，因为一条轨迹失去匹配通常意味着被遮挡，而不是车辆消失，重新起一条轨迹反而会把轨迹割碎。未匹配的检测必须连续多帧出现，才会生成新轨迹，偶尔的误检就被滤掉了。两条规则守的是相反的失效模式。&lt;/p&gt;
&lt;p&gt;先验参数是我们偏离惯例的地方。切换矩阵和各协方差没有凭经验设定，我们把它当成一个优化问题，用粒子群优化（PSO）拟合出来。这个名字容易招来误读，值得说清楚：粒子群优化是在参数空间里做无导数搜索，跟粒子滤波毫无关系，这项工作里也没有出现过任何粒子滤波。&lt;/p&gt;
&lt;p&gt;关于这次拟合有两点要讲，与其被人发现，我们宁愿自己说出来。优化是离线的，而且按数据集分别进行，所以它不是在线自适应；参数是对拟合所用的那批数据拟合出来的。另外，一个对称的切换矩阵本身并不能说明数据集里的车辆运动更偏向匀速模型，尽管很容易那样去读。&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-跨过一次漏检往往比把它检测出来更划算"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="在检测器没有输出的帧上，跟踪轨迹依然延续。"
srcset="https://changnie.top/publications/dtfi/tracking-results_hu_f58947ba19f6872c.webp 320w, https://changnie.top/publications/dtfi/tracking-results_hu_f34224580476ee54.webp 480w, https://changnie.top/publications/dtfi/tracking-results_hu_4ca76579f06a126d.webp 768w, https://changnie.top/publications/dtfi/tracking-results_hu_d70df992b8c4d4a5.webp 1024w, https://changnie.top/publications/dtfi/tracking-results_hu_1e33be290f0a8458.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/dtfi/tracking-results_hu_f58947ba19f6872c.webp"
width="1080"
height="270"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/dtfi/tracking-results_hu_1ae2b4fed053dd32.webp" target="_blank" rel="noopener"&gt;查看原图 ↗&lt;/a&gt;
&lt;figcaption&gt;跨过一次漏检，往往比把它检测出来更划算。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="我们从中得到什么"&gt;我们从中得到什么&lt;/h2&gt;
&lt;p&gt;延迟预算是设计的输入，不是事后测出来的指标。一旦跨过实时这条线，剩下的预算才轮到精度，架构就该围绕这个先后次序来组织。&lt;/p&gt;
&lt;p&gt;局部感受野是完美标定的廉价替代。两个传感器本来就对不齐，在邻域里学习对应关系，比假设某个像素就是对的好用。&lt;/p&gt;
&lt;p&gt;先给问题降维，再去优化网络。柱状化是让整件事成立的那个技巧，不是附带的处理。&lt;/p&gt;
&lt;p&gt;在这类问题里，混合表示胜过纯粹的单一路线：学到的外观特征、显式的几何投影、显式的状态估计器，各做各擅长的事。模块化在出问题时也有好处，每个组件都有明确的职责，也有各自的失效特征。&lt;/p&gt;
&lt;p&gt;互补胜过调参。两个在不同情况下失效的模型，好过一个在哪都不出彩的模型。&lt;/p&gt;
&lt;p&gt;先验一旦真的猜不出来，就去搜。承认 IMM 的经验值可能无法迁移，是这篇论文里最有价值的一句方法论表述。&lt;/p&gt;
&lt;h2 id="它做不到什么"&gt;它做不到什么&lt;/h2&gt;
&lt;p&gt;老实的总结是：这个系统在精度上有竞争力，但不领先。它在检测速度上有明显改善，精度上仍落后于最好的纯激光雷达方法，这正是我们选的取舍。&lt;/p&gt;
&lt;p&gt;IMM-UKF 对运动方向变化很小的目标处理得不好。一个在多种假设之间切换的滤波器，需要有可观测的机动，切换才划算。&lt;/p&gt;
&lt;p&gt;检测范围受相机视场限制，这是这种融合设计本身带来的。远处的稀疏目标会失败，前面三到五个点的例子已经说明这一点。跟踪器与检测器是两个分开的阶段，没有联合优化，这是我们在未来工作里指出的方向之一；另一个方向是在不牺牲帧率的前提下把精度做上去。&lt;/p&gt;
&lt;h2 id="结语"&gt;结语&lt;/h2&gt;
&lt;p&gt;我们做出来的东西把三维检测与三维多目标跟踪整合成一条流水线，用高速公路行驶的实时要求来衡量：一个高效输出带朝向框的检测器，一个在运动不确定的情况下跟随目标的跟踪器，后者靠的是数据关联、交互式多模型滤波和拟合出来的参数。我们并不是说它是最准确的系统，而是说它的精度在融合方案达不到的频率上是实打实的；在高速公路上，落后世界两米，本身就是一种不准确。&lt;/p&gt;</description></item></channel></rss>