Ch19: 射频感知——RF-Pose / milliMap / PanoRadar / RF-SLAM / mmCLIP
Ch19: 射频感知——RF-Pose / milliMap / PanoRadar / RF-SLAM / mmCLIP
前置章节:Ch18: 多模态生态——ImageBind / AnyMAL / 3DShape2VecSet 后续章节:Ch20: 听觉智能——Whisper / AudioLM / Proactive Hearing 返回目录
19.1 开篇:看不见的眼睛
19.1.1 着火大楼里的搜救
2019 年 3 月,美国马萨诸塞州一栋公寓楼发生火灾。消防员冲进楼里搜救被困人员。走廊里浓烟滚滚,能见度不到半米——手电筒打出去只能看到一团白雾。热成像仪(红外相机)在这种场景下也不好使:浓烟本身就是高温气体,红外图像上到处都是热源,根本分不清哪里是人、哪里是着火的墙壁。
消防员只能靠喊话和摸索前进。每多花一分钟搜索,被困者的生存概率就下降一截。
现在想象另一个场景:消防员手里拿着一个巴掌大的设备,屏幕上显示着墙后面的人体轮廓——两个人蜷缩在卧室角落,一个人倒在浴室地板上。这个设备不需要光线,不怕烟雾,甚至能穿透混凝土墙壁。它发出的不是光,而是无线电波——和你家 WiFi 路由器发出的信号本质上是同一种东西。
这不是科幻。MIT 的 Dina Katabi 团队在 2018 年就做出了 RF-Pose 系统,能用 WiFi 信号穿墙检测人体姿态。到 2023 年,类似技术已经在多个消防部门进入试点测试。
这就是射频感知(RF Perception)的核心承诺:在视觉和红外都失效的极端条件下,用无线电波"看到"世界。
19.1.2 射频的三大超能力
为什么无线电波能做到光做不到的事?这要从物理学的基本原理说起。
超能力一:穿墙
光(包括可见光和红外线)的波长在纳米到微米级别。当光遇到混凝土墙壁时,墙壁中的分子会吸收和散射这些短波长的电磁波,光几乎完全无法穿透。但 WiFi 信号的波长是 12.5 厘米(2.4GHz),毫米波的波长是 4 毫米(77GHz)。这些较长的波长能够绕过或穿透墙壁中的微观结构——就像海浪能绕过小礁石,但会被大堤挡住一样。
具体来说:2.4GHz WiFi 信号穿过一面标准石膏板墙只衰减约 3dB(信号强度减半),穿过混凝土墙衰减约 10-15dB。这意味着即使穿过两三面墙,仍然有足够的信号可以被接收和分析。
超能力二:穿烟穿雾
烟雾颗粒的直径通常在 0.1-10 微米之间。对于波长为纳米级的可见光来说,这些颗粒是巨大的障碍物,会造成严重的散射(这就是为什么你在浓烟中什么都看不见)。但对于波长为厘米级或毫米级的无线电波来说,这些颗粒小到可以忽略不计——就像你走路时不会被空气中的灰尘绊倒一样。
同样的道理适用于雨、雪、沙尘暴。这就是为什么飞机在暴风雨中仍然能用雷达导航——雷达用的就是无线电波。
超能力三:无需光照
相机需要光源(太阳、灯光、红外 LED)才能工作。射频设备自己发射信号、自己接收回波——它是主动传感器,完全不依赖环境中的光照条件。在完全漆黑的矿井、深夜的废墟、地下停车场,射频设备都能正常工作。
19.1.3 射频的三大短板
如果射频这么厉害,为什么不直接用它替代相机和 LiDAR?因为物理定律是公平的——穿透力强的代价是分辨率低。
短板一:分辨率低
分辨率和波长成正比。相机的"波长"是几百纳米,所以能分辨毫米级的细节。LiDAR 的波长是 905nm 或 1550nm,分辨率也很高。但 WiFi 的波长是 12.5cm,理论角分辨率在几十度量级——这意味着你只能大致知道"那个方向有个东西",但看不清它的形状。毫米波(77GHz,波长 4mm)好一些,但单芯片雷达的角分辨率通常也只有 5-15 度,远不如 LiDAR 的 0.1 度。
用生活场景类比:相机看世界就像你戴着眼镜看书,每个字都清清楚楚;毫米波雷达看世界就像你摘掉眼镜、隔着一层毛玻璃看——你能看到大致的轮廓和运动,但细节全是模糊的。
短板二:多径干扰
无线电波碰到墙壁、地板、天花板时会反射。在室内环境中,一个信号可能经过多次反弹才到达接收器——这叫多径效应(multipath)。结果是:你收到的信号里混杂了直接路径和多条反射路径的叠加,很难分辨哪个回波对应真实目标、哪个是"鬼影"。
想象你在一个四面都是镜子的房间里找人——你看到的"人"可能有十几个,但只有一个是真的,其余都是镜像。射频感知面临的就是这种困境。
短板三:缺乏纹理
相机能看到颜色、纹理、文字——一个红色的苹果和一个红色的番茄,相机能通过表面纹理区分它们。但射频信号只能感知物体的几何形状和材质的电磁特性(介电常数)。两个大小相同但颜色不同的物体,在射频信号看来几乎一模一样。这意味着射频感知天然缺乏语义信息——它能告诉你"那里有个东西",但很难告诉你"那是什么东西"。
19.1.4 三层结构:从位置到形状到语义
面对这些短板,研究者们不是试图让射频"看得和相机一样清楚"(物理上不可能),而是用深度学习来弥补物理分辨率的不足。本章的五个系统形成了一个清晰的三层结构:
位置层(Where):知道目标在哪里。RF-Pose 能定位人体关键点的 2D 坐标,即使隔着墙壁。这是最基础的能力——搜救时只要知道"人在哪"就够了。
形状层(What shape):知道环境长什么样。milliMap 用毫米波雷达重建室内的 2D 占据图(哪里有墙、哪里是空地)。PanoRadar 更进一步,生成 3D 点云。这一层让机器人能在射频感知的基础上进行导航和避障。
语义层(What is it):知道目标是什么。Part 2 会讲的 mmCLIP 把毫米波雷达信号和 CLIP 的语义空间对齐,让射频信号也能做物体分类和场景理解。
这三层逐步递进,每一层都建立在前一层的基础上。
19.1.5 具身智能中的应用场景
在理解了射频感知的能力和局限后,让我们看看它在具身智能中的具体应用场景——这些场景是视觉和 LiDAR 无法覆盖的:
场景一:灾难搜救
地震后的废墟、火灾中的建筑、矿难后的巷道——这些场景的共同特点是:能见度极低(烟尘/黑暗)、结构不稳定(随时可能坍塌)、时间紧迫(被困者生存窗口有限)。射频感知能让搜救机器人在这些条件下"看到"被困者的位置和生命体征(呼吸导致的微小胸腔运动可以被毫米波雷达检测到)。
场景二:隐私保护的智能家居
老人独居监护需要检测跌倒、异常行为、生命体征。相机能做到这些,但很多老人不愿意在卧室和浴室装摄像头——这是合理的隐私诉求。射频感知提供了一个折中方案:它能检测人体姿态和运动,但不会生成可识别面部的图像。RF-Pose 输出的是骨架关键点,不是照片——你能看到"有人摔倒了",但看不到"是谁摔倒了"(除非结合其他信息)。
场景三:恶劣天气下的自动驾驶
自动驾驶汽车在暴雨、大雾、沙尘暴中,相机和 LiDAR 的性能都会严重下降。毫米波雷达是目前唯一在所有天气条件下都能稳定工作的传感器——这就是为什么即使是最便宜的汽车也配备了毫米波雷达(用于自适应巡航控制 ACC)。但传统车载雷达只能检测"前方有车",不能理解场景的完整结构。PanoRadar 等工作试图让雷达也能做到场景级的 3D 感知。
场景四:工业环境监测
钢铁厂、化工厂等环境中,高温、蒸汽、粉尘使得相机经常失效。毫米波雷达可以穿透这些干扰,持续监测设备状态、人员位置、安全区域。一个典型案例是高炉出铁口附近的人员安全监测——温度超过 1000°C 的铁水飞溅区域,任何光学传感器都无法长期工作,但毫米波雷达可以在安全距离外持续追踪工人的位置。
场景五:地下空间探测
地铁隧道、矿井、地下管廊等空间通常光照极差、粉尘大、GPS 信号完全不可用。射频感知结合 SLAM 技术(Part 2 的 CartoRadar)可以让机器人在这些环境中自主建图和导航,为巡检、救援提供支持。这类场景的共同特点是:传统传感器的"舒适区"(良好光照、清洁空气、开阔视野)完全不存在,而射频信号恰好不受这些条件限制。
19.1.6 与 Ch18 的连接
在 Ch18 里,我们学了 ImageBind——它把六种模态(图像、文本、音频、深度、热成像、IMU)对齐到同一个嵌入空间。射频感知可以看作这个多模态生态的又一个扩展:把射频信号也拉进统一的表示空间。
但射频感知有一个独特之处:它不是在"正常条件下提供额外信息",而是在"其他模态全部失效时提供唯一信息"。这使得它在具身智能中的角色不是"锦上添花",而是"雪中送炭"——当机器人进入烟雾、黑暗、遮挡环境时,射频可能是唯一还能工作的感知通道。
从技术方法论上看,本章的核心思想和 Ch18 一脉相承:跨模态监督(cross-modal supervision)。RF-Pose 用视觉检测器的输出来训练射频网络;milliMap 用 LiDAR 的地图来训练毫米波网络;mmCLIP 用 CLIP 的语义嵌入来训练雷达编码器。这种"用强模态教弱模态"的范式贯穿整章。
19.2 射频感知基础知识
19.2.1 电磁波频谱:从 WiFi 到毫米波
在深入具体系统之前,我们需要建立一些射频物理的基本直觉。如果你在 Ch03 学过基础物理,这里会更容易理解。
电磁波的频率和波长是反比关系:频率越高,波长越短。用公式表示就是 λ = c / f,其中 c 是光速(3×10⁸ m/s),f 是频率,λ 是波长。
射频感知主要用到两个频段:
WiFi 频段(2.4GHz / 5GHz)
- 2.4GHz 对应波长 12.5cm,5GHz 对应波长 6cm
- 优势:设备极其便宜(一个 WiFi 路由器几十块钱)、部署密度高(几乎每个室内空间都有 WiFi)、穿墙能力强
- 劣势:波长长导致分辨率很低,只能做粗粒度的感知(比如检测人的存在和大致位置,但看不清姿态细节)
- 代表工作:RF-Pose(MIT,2018)、Person-in-WiFi(2019)
毫米波频段(60GHz / 77GHz)
- 60GHz 对应波长 5mm,77GHz 对应波长约 4mm
- 优势:波长短,分辨率比 WiFi 高一个数量级;带宽大(通常 4GHz),距离分辨率可达厘米级
- 劣势:穿墙能力比 WiFi 弱(毫米波穿过混凝土墙衰减严重);但穿烟穿雾仍然没问题
- 代表工作:milliMap(MIT,2020)、PanoRadar(CMU,2024)、CartoRadar(2024)
还有一个中间地带:UWB(超宽带,3-10GHz),波长在 3-10cm 之间,主要用于精确测距和定位(比如 Apple AirTag 的精确查找功能),但在感知领域用得较少,本章不深入讨论。
19.2.2 波长 vs 分辨率:物理的硬约束
这是理解整章的关键直觉:波长决定了你能"看到"多细的东西。
物理学中有一个叫瑞利判据(Rayleigh criterion)的定律,它规定了一个传感器能分辨的最小角度:
θ_min ≈ 1.22 × λ / D
其中 λ 是波长,D 是天线孔径(aperture)的大小。θ_min 越小,分辨率越高。
这个公式告诉我们两件事:
- 波长越短,分辨率越高——这就是为什么相机(波长 ~500nm)比雷达(波长 ~4mm)看得清楚 10000 倍
- 天线越大,分辨率越高——这就是为什么射电望远镜要造得那么大(几百米直径),以及为什么 PanoRadar 要用"合成孔径"技术来等效增大天线
用生活类比:想象你在一个黑暗的房间里,手里只有一根棍子。你用棍子去探索房间里的物体。如果棍子很细(高分辨率),你能感受到物体表面的每一个凹凸。如果棍子很粗(低分辨率),你只能感受到物体的大致轮廓。波长就像棍子的粗细——WiFi 的"棍子"有 12.5cm 粗,毫米波的"棍子"有 4mm 粗,光的"棍子"只有几百纳米粗。
这个物理约束是无法通过工程手段完全克服的。但深度学习提供了一条"作弊"的路径:如果你有大量的训练数据(比如同时用高分辨率的相机/LiDAR 和低分辨率的雷达观察同一个场景),你可以训练一个神经网络来"脑补"雷达看不清的细节。这就是本章所有系统的核心思路。
19.2.3 FMCW 雷达:蝙蝠的回声定位
milliMap、PanoRadar、CartoRadar 都使用一种叫 FMCW(Frequency-Modulated Continuous Wave,调频连续波)的雷达。这是目前最主流的毫米波雷达技术,也是自动驾驶汽车上标配的传感器类型。
蝙蝠类比
蝙蝠在黑暗中飞行时,会发出超声波脉冲,然后听回声。通过回声到达的时间,蝙蝠知道前方障碍物有多远(时间越长 = 距离越远)。通过回声的频率变化(多普勒效应),蝙蝠知道目标是在靠近还是远离。通过左右耳接收到回声的时间差,蝙蝠知道目标在哪个方向。
FMCW 雷达做的事情和蝙蝠几乎一模一样,只是用的是电磁波而不是声波:
- 发射:雷达发出一个频率随时间线性增加的信号(叫 chirp,啁啾信号)。想象一个音调从低到高匀速上升的哨声。
- 接收:信号碰到物体后反射回来。因为光速极快(3×10⁸ m/s),反射信号几乎瞬间返回,但会有一个微小的时间延迟。
- 混频:把发射信号和接收信号"混合"在一起。由于接收信号有时间延迟,而发射信号的频率在不断变化,所以混合后会产生一个固定频率的差拍信号(beat signal)。这个差拍频率和目标距离成正比——距离越远,延迟越大,差拍频率越高。
从 chirp 到热力图
一个 chirp 持续大约 50-100 微秒。雷达连续发射很多个 chirp(一帧通常包含 64-256 个 chirp)。对这些数据做不同维度的 FFT(快速傅里叶变换),可以得到不同的信息:
- Range FFT(对单个 chirp 的采样点做 FFT)→ 得到目标的距离信息
- Doppler FFT(对多个 chirp 的同一距离 bin 做 FFT)→ 得到目标的速度信息
- Angle FFT(对多根接收天线的同一距离-速度 bin 做 FFT)→ 得到目标的角度信息
把这些信息组合起来,就得到了雷达的基本输出格式:
Range-Doppler 热力图:横轴是距离,纵轴是速度。图上的亮点表示"在某个距离上有一个以某个速度运动的目标"。这张图特别擅长检测运动目标——静止的墙壁和家具会被集中在零速度线上,而走动的人会出现在非零速度区域。
Range-Azimuth 热力图:横轴是距离,纵轴是水平角度。图上的亮点表示"在某个方向的某个距离上有一个目标"。这张图更像一个俯视图,能看到目标的空间分布。
这些热力图就是后续深度学习系统的输入。它们看起来很模糊(因为分辨率低),但包含了足够的信息让神经网络去"解码"。
19.2.4 WiFi CSI:信道状态信息
RF-Pose 和 Person-in-WiFi 用的不是雷达,而是普通的 WiFi 设备。它们利用的是 WiFi 协议中一个叫 CSI(Channel State Information,信道状态信息)的东西。
什么是 CSI?
当你的手机连接 WiFi 路由器时,路由器和手机之间会不断交换数据包。每个数据包在空中传播时,会经历各种衰减、反射、散射。接收端需要知道信道的状态才能正确解码数据——这就是 CSI 的本来用途:帮助通信系统做信道均衡。
CSI 本质上是一个复数矩阵,描述了每个子载波(subcarrier)上信号的幅度和相位变化。对于一个标准的 WiFi 系统(802.11n/ac),CSI 矩阵的维度大约是:
CSI ∈ ℂ^(N_tx × N_rx × N_subcarrier)
其中 N_tx 是发射天线数(通常 1-3),N_rx 是接收天线数(通常 1-3),N_subcarrier 是子载波数(通常 30-256,取决于带宽)。
CSI 为什么能感知人体?
关键洞察:当一个人在 WiFi 发射器和接收器之间移动时,人体会反射和散射 WiFi 信号,改变信道的状态。这种改变会体现在 CSI 的幅度和相位上。
更具体地说:人体不同部位(躯干、手臂、腿)的运动会在不同的子载波上产生不同的相位变化模式。如果你有多对发射-接收天线(多个 WiFi 设备),你就能从多个角度"观察"人体运动,获得更丰富的空间信息。
CSI 的优势在于:它利用的是已有的 WiFi 基础设施,不需要额外的硬件。你家里的路由器和笔记本电脑就能提取 CSI(需要修改驱动程序,但硬件成本为零)。
CSI 的劣势在于:它的空间分辨率比 FMCW 雷达更低(因为 WiFi 的带宽只有 20-160MHz,远小于毫米波雷达的 4GHz),而且对环境变化非常敏感——家具移动、门开关都会改变 CSI 的基线。
19.2.5 硬件成本对比
理解了基本原理后,让我们看看不同传感器的成本和能力对比。这张表解释了为什么射频感知研究如此重要——它有潜力用极低的成本实现过去只有昂贵传感器才能做到的事情:
┌─────────────────┬──────────┬────────────┬──────────┬──────────────┐
│ 传感器 │ 典型成本 │ 角分辨率 │ 穿墙 │ 穿烟/暗处 │
├─────────────────┼──────────┼────────────┼──────────┼──────────────┤
│ WiFi 收发器 │ ~$5 │ ~30° │ 强 │ 完全不受影响 │
│ mmWave 单芯片 │ ~$10 │ 5°-15° │ 弱-中 │ 完全不受影响 │
│ RGB 相机 │ $10-100 │ <0.1° │ 不能 │ 完全失效 │
│ 红外热成像 │ $100-500 │ ~0.5° │ 不能 │ 烟雾中受干扰 │
│ LiDAR │ $1000+ │ ~0.1° │ 不能 │ 烟雾中受干扰 │
└─────────────────┴──────────┴────────────┴──────────┴──────────────┘
注意成本差距:一颗 TI IWR1443 毫米波雷达芯片的批量价格约 $10,而一台 Velodyne VLP-16 LiDAR 的价格超过 $4000(虽然近年来 LiDAR 价格在快速下降,但仍然比雷达贵两个数量级)。
这个成本差距意味着:如果深度学习能让 $10 的雷达达到 $1000 LiDAR 80% 的感知能力,那么大规模部署的经济性将完全不同。这正是 PanoRadar 等工作试图实现的目标。
19.2.6 小结:射频感知的技术栈
把上面的知识串起来,射频感知系统的通用流水线是:
硬件层:WiFi 收发器 / FMCW 雷达芯片
↓
信号处理层:FFT → Range-Doppler / Range-Azimuth 热力图 / CSI 矩阵
↓
深度学习层:CNN / Transformer / GAN → 高分辨率输出
↓
应用层:人体姿态 / 环境地图 / 3D 点云 / 语义标签
关键的创新都发生在"深度学习层"——如何设计网络架构和训练策略,让模型从低分辨率、高噪声的射频输入中提取出有用的信息。接下来的三节,我们将看到三个具体的系统如何在这个流水线上做出突破。
19.3 RF-Pose:用 WiFi 穿墙看人
19.3.1 问题定义:从射频信号到人体骨架
RF-Pose(Zhao et al., MIT CSAIL, CVPR 2018)要解决的问题可以用一句话概括:给定一组射频信号的热力图序列,输出画面中每个人的 2D 骨架关键点坐标。
更具体地说:
- 输入:连续多帧的 RF 热力图(水平和垂直两个平面),每帧大小约 100×100 像素
- 输出:每个人 14 个关键点(头、颈、左右肩、左右肘、左右腕、左右髋、左右膝、左右踝)的 (x, y) 坐标
- 关键约束:系统必须在目标被墙壁遮挡时仍然工作
这个问题为什么重要?因为人体姿态估计是很多下游任务的基础——跌倒检测(老人独居监护)、动作识别(安防)、运动分析(体育训练)、游戏交互。传统方法用相机做这些事,但相机有隐私问题(你不想在卧室里装摄像头)、光照问题(晚上关灯就失效)、遮挡问题(人走到柱子后面就丢失)。射频信号天然解决了这三个问题。
19.3.2 核心创新:跨模态监督
RF-Pose 面临一个根本性的训练数据问题:没有人能手动标注射频热力图上的人体关键点。
为什么?因为射频热力图太模糊了——人眼看着就是一团模糊的亮斑,根本分不清哪里是肩膀、哪里是膝盖。你没法像标注相机图像那样,让标注员在射频热力图上点击关键点位置。
RF-Pose 的解决方案极其优雅:用一个已经训练好的视觉姿态检测器(OpenPose)作为"老师",自动生成训练标签。
具体流程:
- 在同一个场景中同时部署 RF 设备和 RGB 相机
- 用 OpenPose 处理相机图像,得到每个人的 2D 关键点坐标——这些坐标就是训练标签
- 用这些标签来训练 RF 网络:输入是 RF 热力图,目标输出是 OpenPose 给出的关键点坐标
- 训练完成后,扔掉相机,只用 RF 设备就能预测人体姿态
这个方法叫做跨模态监督(cross-modal supervision)或者跨模态蒸馏(cross-modal distillation)。它的精妙之处在于:
- 训练时需要相机(提供标签),但推理时不需要——相机只是训练阶段的"脚手架"
- 标签是自动生成的(由 OpenPose 产生),不需要人工标注——这使得大规模数据收集成为可能
- 学生(RF 网络)可以学到老师(视觉网络)做不到的事情——因为 RF 信号能穿墙,所以 RF 网络在穿墙场景下也能工作,即使训练标签只来自可见场景
第三点特别值得强调。你可能会问:"如果训练标签都来自相机可见的场景,RF 网络怎么学会穿墙?"答案是:RF 信号本身就包含了墙后面的信息(因为无线电波能穿墙)。在训练过程中,RF 网络学会了"RF 热力图中的某种模式 = 人体在某个位置"这个映射。当推理时遇到穿墙场景,RF 热力图中仍然包含人体的信号(只是稍微弱一些),网络仍然能识别出这些模式。
这就像教一个盲人用拐杖探路。拐杖碰到障碍物时的反馈模式,和眼睛看到障碍物时的视觉模式,本质上编码了同一个物理事实("前方有障碍")。盲人不需要"看到"障碍物就能学会避障——因为拐杖的信号本身就包含了这个信息。RF 网络也是一样:它不需要"看到"墙后面的人就能学会检测——因为 RF 信号本身就包含了这个信息。
19.3.3 数据收集:同步多模态采集
在讨论网络架构之前,先了解数据是怎么收集的——因为数据收集的设计直接决定了跨模态监督能否成功。
MIT 团队在校园内的多个室内环境(办公室、走廊、公寓)中部署了采集系统。系统包含:
- 一台专用 RF 设备(FMCW 雷达,工作在 5.4-7.2 GHz),安装在三脚架上
- 一台 RGB 相机,与 RF 设备物理对齐(确保两者观察同一个场景)
- 时间同步模块,确保 RF 帧和视频帧精确对齐
采集过程中,志愿者在场景中自由活动——走路、坐下、站起、挥手、做各种日常动作。每个场景采集约 1-2 小时的数据。总共收集了约 50 小时的同步数据,对应约 75,000 帧。
关键设计决策:采集时不刻意制造穿墙场景。所有训练数据都是"可见场景"——相机和 RF 设备都能看到人。穿墙能力是网络自动泛化出来的,不是训练出来的。这一点非常重要,因为它意味着你不需要专门设计穿墙数据采集方案(那会很麻烦——你需要在墙两边分别放设备)。
19.3.4 网络架构详解
RF-Pose 的网络架构分为四个阶段,每个阶段解决一个具体问题:
阶段一:时空特征提取
输入是连续多帧(论文中用 T=100 帧,约 5.5 秒)的 RF 热力图。每帧热力图的尺寸是水平角度 × 垂直角度(具体分辨率取决于天线阵列配置)。多帧堆叠形成一个 3D 张量(时间 × 水平 × 垂直)。
这个 3D 张量通过一个 3D CNN 进行时空特征提取。为什么需要时间维度?因为单帧 RF 热力图非常模糊——一个人站在那里和一面墙的反射可能看起来差不多。但如果你观察多帧,人会动(呼吸、微小的身体摆动),墙不会动。时间维度帮助网络区分"活的目标"和"静态背景"。
阶段二:区域提议网络(RPN)
3D CNN 输出的特征图被送入一个 Region Proposal Network(RPN),类似于 Faster R-CNN 中的 RPN。RPN 的作用是在特征图上找到"可能有人的区域"。
为什么需要 RPN?因为场景中可能有多个人。如果直接让网络输出所有人的关键点,网络不知道该输出几个人的结果。RPN 先找到每个人的大致位置,然后对每个区域分别做关键点检测。
阶段三:时序建模(LSTM)
每个被 RPN 选中的区域,其特征序列被送入一个 LSTM(Long Short-Term Memory)网络。LSTM 的作用是建模人体运动的时序连贯性——如果上一帧你的左手在身体左侧,下一帧它不太可能突然跳到右侧。
LSTM 还有一个重要作用:处理遮挡。当某个关键点被暂时遮挡(比如手臂被身体挡住),LSTM 可以根据之前的运动轨迹"预测"这个关键点的当前位置。
阶段四:关键点解码器
LSTM 的输出被送入一个全连接解码器,输出 14 个关键点的 2D 坐标(x, y)。每个关键点对应人体的一个关节:头、颈、左右肩、左右肘、左右腕、左右髋、左右膝、左右踝。
整个流程可以用一行伪代码概括:
RF_heatmaps[T×H×W] → 3D_CNN → RPN → crop_features → LSTM → FC → keypoints[14×2]
19.3.5 训练流程
训练分为两个阶段:
阶段一:有监督预训练(可见场景)
在这个阶段,相机和 RF 设备同时工作。相机拍摄的图像通过一个预训练的视觉姿态估计器(OpenPose 或类似系统)得到人体关键点的伪标签。RF 网络以这些伪标签为目标进行训练。
损失函数是标准的 L2 回归损失:
L = Σ_{i=1}^{14} ||p_i^{pred} - p_i^{teacher}||^2
其中 p_i^{pred} 是 RF 网络预测的第 i 个关键点坐标,p_i^{teacher} 是视觉老师给出的坐标。
阶段二:穿墙泛化(无需额外训练)
这是最巧妙的部分——穿墙能力不需要额外训练。在阶段一训练完成后,RF 网络已经学会了"RF 信号模式 → 人体姿态"的映射。当推理时遇到穿墙场景,RF 信号仍然包含人体的反射(只是信号强度稍弱),网络仍然能正确解码。
论文中的实验验证了这一点:在完全没有穿墙训练数据的情况下,RF-Pose 在穿墙场景下的 AP(Average Precision)只比可见场景低约 8 个百分点。这个性能下降主要来自信号衰减导致的信噪比降低,而不是网络"不理解"穿墙场景。
19.3.6 关键数字
| 指标 | 数值 | 说明 |
|---|---|---|
| 推理速度 | 18 fps | 实时运行 |
| 训练样本 | 75,000 帧 | 约 50 小时的数据 |
| 可见场景 AP | ~83% | 与视觉方法接近 |
| 穿墙场景 AP | ~75% | 只比可见低 ~8% |
| 关键点数量 | 14 个 | 标准人体骨架 |
| 输入帧数 | 100 帧 | 约 5.5 秒时间窗口 |
| 检测距离 | 最远 ~8 米 | 受天线功率限制 |
19.3.7 Person-in-WiFi:用更便宜的硬件做同样的事
RF-Pose 使用的是专用 RF 设备(FMCW 雷达),成本约 $100-200。Person-in-WiFi(2019)问了一个更激进的问题:能不能用普通 WiFi 路由器($5-20)做同样的事?
答案是可以,但需要解决一个额外的难题:WiFi CSI 信号比 FMCW 雷达信号更加嘈杂和不稳定。
WiFi CSI 的特殊挑战
WiFi CSI(Channel State Information)记录的是 WiFi 信号从发射器到接收器之间的信道响应。当人体在 WiFi 信号路径中移动时,信道响应会发生变化——这就是 Person-in-WiFi 利用的信息。
但 WiFi CSI 有两个 RF-Pose 不需要面对的问题:
相位漂移:WiFi 设备的时钟不完美同步,导致 CSI 的相位信息会随时间漂移。这就像你用一把尺子量东西,但尺子的零刻度在不断移动——你测出的数字不断变化,即使被测物体没有动。
空间分辨率极低:WiFi 工作在 2.4/5 GHz,波长 6-12 cm,远大于毫米波的 4 mm。这意味着 WiFi 的空间分辨率比毫米波差一个数量级以上。
PAM(Phase Alignment Module)
Person-in-WiFi 的核心创新是 PAM(Phase Alignment Module),专门解决相位漂移问题。PAM 的思路是:虽然绝对相位在漂移,但不同天线之间的相对相位差是稳定的(因为它们共享同一个时钟)。PAM 通过计算天线对之间的相位差来消除漂移,提取出稳定的空间信息。
性能对比
| 指标 | RF-Pose | Person-in-WiFi |
|---|---|---|
| 硬件成本 | ~$150 | ~$15 |
| PCK@50 | ~0.87 | ~0.82 |
| 穿墙能力 | 强 | 中等(WiFi 穿墙衰减更大) |
| 部署难度 | 需要专用设备 | 利用现有 WiFi 基础设施 |
PCK@50(Percentage of Correct Keypoints,阈值 50 像素)是姿态估计的标准指标。Person-in-WiFi 的 0.82 意味着 82% 的关键点预测误差在 50 像素以内。
19.3.8 后续工作简述
RF-Pose 开创了射频姿态估计这个方向后,后续工作在多个维度进行了扩展:
RF-Pose3D(2018):从 2D 关键点扩展到 3D 关键点。通过使用垂直和水平两个天线阵列,获取三维空间中的 RF 热力图,输出 14 个关键点的 3D 坐标(x, y, z)。
RFPose-OT(2020):引入 Optimal Transport(最优传输)理论来处理多人场景中的身份关联问题。当多个人在场景中移动时,需要把每帧检测到的关键点正确地分配给对应的人——这是一个匹配问题,OT 提供了一个优雅的数学框架。
RFMask(2021):从关键点扩展到实例分割。不仅检测人体关键点,还输出每个人的像素级轮廓(mask)。这对于需要精确人体形状信息的应用(如跌倒检测、异常行为识别)很有用。
WiPose(2021):将 WiFi CSI 用于 3D 人体姿态估计。相比 Person-in-WiFi 的 2D 输出,WiPose 利用多对 WiFi 收发器的空间多样性来恢复深度信息,输出 17 个关键点的 3D 坐标。
这些后续工作的共同趋势是:输出越来越丰富(2D → 3D → mask),硬件要求越来越低(专用设备 → WiFi),应用场景越来越广。
19.3.9 小结:RF-Pose 的范式意义
RF-Pose 的贡献不仅仅是"用 RF 做姿态估计"这一个具体任务。它建立了一个通用范式:
- 选择一个 RF 无法直接解决但视觉可以解决的感知任务
- 用视觉系统生成大量伪标签(cross-modal supervision)
- 训练 RF 网络以这些伪标签为目标
- RF 网络自动获得视觉系统不具备的能力(穿墙、穿烟等)
这个范式在后续的 milliMap(19.4)和 PanoRadar(19.5)中反复出现——只是"老师"从视觉姿态估计器变成了 LiDAR 点云。理解了这个范式,后面两节的学习会轻松很多。
19.4 milliMap:毫米波雷达建图
19.4.1 从"看人"到"看环境"
RF-Pose 解决了"穿墙看人"的问题。但机器人不仅需要知道"哪里有人",还需要知道"哪里有墙、有门、有家具"——也就是环境地图。
想象一个消防机器人进入一栋着火的大楼。烟雾弥漫,能见度为零。它需要:
- 知道走廊在哪里(不要撞墙)
- 知道门在哪里(可以通过)
- 知道哪些区域有障碍物(需要绕行)
这就是环境建图(mapping)的任务。传统方案是 LiDAR——但 LiDAR 在烟雾中性能急剧下降(激光被烟雾粒子散射)。毫米波雷达不受烟雾影响,但它的原始输出太稀疏、太嘈杂,无法直接用于建图。
milliMap(MIT,2020)的核心贡献是:用深度学习把毫米波雷达的稀疏、嘈杂输出"翻译"成稠密、清晰的环境地图——质量接近 LiDAR。
19.4.2 问题定义
milliMap 的输入输出定义非常清晰:
- 输入:单芯片 FMCW 毫米波雷达(TI IWR1443,成本约 $10)的 Range-Azimuth 热力图
- 输出:鸟瞰视角(Bird's Eye View, BEV)的占据图(occupancy map)——每个像素表示该位置是否被占据(有障碍物)
占据图是机器人导航的基础数据结构。你可以把它想象成一张俯视的平面图:白色区域是可通行的空地,黑色区域是墙壁或障碍物。有了这张图,机器人就可以用 A* 或 RRT 等路径规划算法找到从 A 到 B 的无碰撞路径。
19.4.3 为什么原始雷达数据不能直接用
让我们看看毫米波雷达的原始 Range-Azimuth 热力图长什么样,以及为什么它不能直接当地图用:
问题一:极坐标 vs 笛卡尔坐标
雷达输出的热力图是极坐标的——横轴是角度,纵轴是距离。但地图需要是笛卡尔坐标的(x-y 平面)。这个转换本身不难(坐标变换),但会引入插值误差。
问题二:角分辨率太低
TI IWR1443 只有 3 个发射天线和 4 个接收天线,形成一个 12 元素的虚拟阵列。角分辨率约 15°——这意味着两个相距 15° 以内的目标无法被区分。在 5 米距离处,15° 对应约 1.3 米的横向模糊——你无法区分一扇门(宽 0.9 米)和旁边的墙。
问题三:多径反射产生虚假目标
毫米波信号会在墙壁、地板、天花板之间反弹。一面墙可能产生多个反射路径,在热力图上表现为多个"虚假目标"——看起来像是有多面墙,但实际上只有一面。
问题四:材质差异导致反射强度不一致
金属表面反射强烈(在热力图上很亮),而木质表面反射微弱(在热力图上几乎看不到)。一扇木门和一段空走廊在雷达看来可能差不多——但对机器人来说,一个是障碍物,一个是通路。
这四个问题叠加在一起,使得原始雷达热力图看起来像一团模糊的噪声——远远达不到导航所需的地图质量。
19.4.4 解决方案:cGAN(条件生成对抗网络)
milliMap 的核心思路是把"雷达热力图 → 占据图"当作一个图像翻译(image-to-image translation)问题。这和 Pix2Pix 把素描翻译成照片、把白天翻译成夜晚是同一类问题。
用的架构是 cGAN(conditional GAN),由两个网络组成:
生成器(Generator):U-Net
生成器的任务是把输入的雷达热力图"翻译"成占据图。架构选择 U-Net——一个编码器-解码器结构,中间有跳跃连接(skip connections)。
为什么选 U-Net?因为雷达热力图和占据图之间存在大量的空间对应关系——热力图中某个位置的强反射,大概率对应占据图中同一位置的障碍物。U-Net 的跳跃连接能保留这种空间对应关系,避免编码器压缩时丢失位置信息。
编码器逐步降低分辨率、增加通道数,提取越来越抽象的特征。解码器逐步恢复分辨率,同时通过跳跃连接获取编码器对应层的细节信息。最终输出和输入同尺寸的占据图。
判别器(Discriminator):PatchGAN
判别器的任务是区分"生成器输出的占据图"和"真实的占据图(来自 LiDAR)"。架构选择 PatchGAN——不是对整张图做一个真/假判断,而是对图中每个 N×N 的小块(patch)分别做真/假判断。
为什么选 PatchGAN?因为占据图的质量是局部的——一面墙是否被正确重建,只取决于那面墙附近的像素,和图像另一端的内容无关。PatchGAN 让判别器专注于局部质量,训练更稳定。
训练损失
总损失 = GAN 损失 + λ × L1 损失
GAN 损失让生成器输出"看起来像真实占据图"的结果(锐利的边缘、清晰的结构)。L1 损失让生成器输出在像素级别接近真实占据图(位置准确)。两者结合,既保证了视觉质量,又保证了几何精度。
19.4.5 Cross-modal supervision(又见跨模态监督)
和 RF-Pose 一样,milliMap 的训练标签不是人工标注的——而是来自另一个传感器。
在 RF-Pose 中,老师是视觉姿态估计器。在 milliMap 中,老师是 LiDAR。
具体流程:
- 机器人同时携带毫米波雷达和 LiDAR
- LiDAR 生成高质量的占据图(ground truth)
- 毫米波雷达生成低质量的热力图(输入)
- 训练 cGAN 把热力图翻译成占据图
- 部署时只需要毫米波雷达——LiDAR 可以拆掉
这个模式的经济学很有吸引力:训练时用一台昂贵的 LiDAR($1000+)收集标签,部署时每台机器人只需要一颗 $10 的雷达芯片。如果你要部署 1000 台机器人,成本差异是 $10,000 vs $1,000,000。
19.4.6 关键实验结果
| 指标 | 数值 | 说明 |
|---|---|---|
| 平均定位误差 | < 0.2 m | 在 10m × 10m 的室内环境中 |
| 材质识别准确率 | ~90% | 区分金属/混凝土/木材/玻璃 |
| 烟雾场景性能下降 | < 5% | 相比无烟场景 |
| 黑暗场景性能下降 | 0% | 雷达不依赖光照 |
| 部署硬件 | Raspberry Pi 3 | 证明可以在低功耗设备上运行 |
| 推理时间 | ~50 ms/帧 | 在 RPi3 上 |
| 训练数据量 | ~20 小时 | 机器人在多个室内环境中行走 |
几个数字值得特别关注:
< 0.2m 误差:这意味着地图上每个障碍物的位置误差不超过 20 厘米。对于机器人导航来说,这个精度足够用了——机器人本身的宽度通常在 30-50 厘米,20 厘米的地图误差不会导致碰撞。
90% 材质识别:这是一个意外的收获。不同材质对毫米波的反射特性不同——金属几乎完全反射,木材部分透射,玻璃在某些角度几乎完全透射。cGAN 学会了利用这些反射特性差异来识别材质。这对消防场景特别有用——消防员需要知道哪些墙是承重墙(通常是混凝土/钢筋),哪些是隔断(通常是木材/石膏板)。
Raspberry Pi 3 可部署:这证明了 milliMap 不需要 GPU 服务器。一个 $35 的单板计算机就能实时运行。这对成本敏感的应用(如大规模部署的清洁机器人)非常重要。
19.4.7 烟雾和黑暗:milliMap 的杀手锏
milliMap 最有说服力的实验是在烟雾和黑暗条件下的对比测试:
烟雾场景:实验室中使用烟雾机制造浓烟(能见度 < 1 米)。在这种条件下:
- RGB 相机:完全失效(图像全白)
- LiDAR:性能下降 40-60%(激光被烟雾粒子散射)
- milliMap:性能下降 < 5%(毫米波几乎不受烟雾影响)
黑暗场景:完全关闭所有光源。在这种条件下:
- RGB 相机:完全失效(图像全黑)
- LiDAR:性能不变(激光自带光源)
- milliMap:性能不变(雷达自带信号源)
这两个场景正是消防搜救、矿难救援等极端环境的典型条件。在这些场景中,milliMap 不是"和 LiDAR 差不多好"——而是"LiDAR 失效时 milliMap 仍然工作"。
19.4.8 局限性
milliMap 并非完美。它有几个明确的局限:
只做 2D 建图:输出是鸟瞰占据图,没有高度信息。如果障碍物是一根悬在半空的管道(机器人可以从下面通过),milliMap 会把它标记为"不可通行"。
静态场景假设:milliMap 假设环境是静态的。如果有人在走动,人体的反射会被当作"障碍物"出现在地图上——但下一帧人走了,那个位置又变成空地。动态物体会导致地图闪烁。
依赖 LiDAR 标签:训练时需要 LiDAR 提供 ground truth。如果部署环境和训练环境差异太大(比如训练在办公室,部署在工厂),性能可能下降。
单帧独立处理:每帧独立翻译,没有利用多帧之间的时序一致性。这导致地图可能帧间不一致——同一面墙在不同帧的位置可能有微小抖动。
这些局限在后续工作中被逐步解决——CartoRadar(Part 2 的 19.6 节)解决了 SLAM 问题,RadarHD 解决了分辨率问题。
19.4.9 milliMap 与 RF-Pose 的对比
把 milliMap 和 RF-Pose 放在一起看,能更清楚地理解射频感知的发展脉络:
| 维度 | RF-Pose | milliMap |
|---|---|---|
| 感知目标 | 人体(动态目标) | 环境(静态结构) |
| 输出形式 | 关键点坐标 | 占据图(像素级) |
| 射频类型 | 专用 RF 设备 / WiFi | FMCW mmWave |
| 老师模态 | 视觉(OpenPose) | LiDAR |
| 网络架构 | 3D CNN + RPN + LSTM | cGAN(U-Net + PatchGAN) |
| 部署硬件 | GPU 服务器 | Raspberry Pi 3 |
| 核心挑战 | 穿墙信号衰减 | 多径 + 低角分辨率 |
两者的共同点是跨模态监督范式——都是"训练时用贵传感器当老师,部署时只用便宜传感器"。不同点在于任务性质:RF-Pose 检测的是动态目标(人),利用运动信息来区分人和背景;milliMap 重建的是静态结构(墙壁),需要处理多径干扰来还原真实几何。
从具身智能的角度看,RF-Pose 解决的是"感知其他 agent"的问题(人在哪里),milliMap 解决的是"感知环境"的问题(空间结构是什么样)。一个完整的射频感知系统需要同时具备这两种能力——既知道环境的结构,又知道环境中有哪些动态目标。
19.5 PanoRadar:$10 雷达逼近 $1000 LiDAR
19.5.1 一个关于望远镜的故事
在天文学中,望远镜的分辨率取决于它的口径——口径越大,能分辨的细节越多。但建造大口径望远镜极其昂贵(哈勃望远镜的主镜直径 2.4 米,造价数十亿美元)。
射电天文学家在 1960 年代想出了一个绝妙的办法:不建一个大望远镜,而是把很多小望远镜分散放置,然后用数学方法把它们的信号"合成"起来——效果等同于一个口径等于所有小望远镜之间最大距离的巨型望远镜。这就是合成孔径(Synthetic Aperture)技术。
最著名的例子是 Event Horizon Telescope(事件视界望远镜)——它把分布在全球各地的射电望远镜联网,合成了一个"地球大小"的虚拟望远镜,拍出了人类第一张黑洞照片。
PanoRadar(MIT,2024)把同样的思想用在了机器人身上:不用一个大的、昂贵的雷达天线阵列,而是让一个小的、便宜的雷达芯片跟着机器人移动——机器人走过的轨迹就形成了一个"虚拟大天线"。
19.5.2 合成孔径的直觉
让我们用一个更日常的类比来理解合成孔径:
想象你站在一面墙前面,墙上有一个小孔。你通过小孔往外看——视野非常窄,只能看到外面很小的一片区域。
现在,你沿着墙横向移动,每走一步就通过小孔看一眼外面。走了 100 步后,你把 100 次观察的结果拼起来——你就得到了一个宽广的全景视图,等效于墙上有一个 100 步宽的大窗户。
这就是合成孔径的核心思想:用时间换空间——一个小传感器在不同位置多次观测,等效于一个大传感器在一个位置一次观测。
对雷达来说:
- 小孔 = 单芯片雷达(3-4 个天线,角分辨率 ~15°)
- 移动 = 机器人在环境中行走
- 大窗户 = 虚拟大天线阵列(等效数百个天线,角分辨率 < 1°)
19.5.3 PanoRadar 的系统设计
PanoRadar 的输入输出:
- 输入:机器人携带单芯片 mmWave 雷达(TI AWR1843,成本 ~$10),在环境中移动时收集的多帧雷达数据 + 机器人的位姿轨迹(来自 IMU + 轮式里程计)
- 输出:360° 全景 3D 点云,质量接近 LiDAR
数据表示:4D 张量
PanoRadar 首先把多帧雷达数据组织成一个 4D 张量:
- 维度 1:距离(Range)——目标离雷达多远
- 维度 2:方位角(Azimuth)——目标在水平方向的角度
- 维度 3:仰角(Elevation)——目标在垂直方向的角度
- 维度 4:多普勒速度(Doppler)——目标的径向运动速度
这个 4D 张量是通过合成孔径处理得到的——把机器人在不同位置收集的雷达回波进行相干叠加(coherent integration),利用相位差信息来提高角分辨率。
3D CNN 处理
4D 张量被送入一个 3D CNN(把多普勒维度当作"通道"),输出每个空间位置的"占据概率"和"反射强度"。网络学会了:
- 区分真实目标和多径虚假目标
- 补偿不同材质的反射强度差异
- 处理合成孔径中的运动误差
点云生成
CNN 输出的占据概率图通过阈值化转换为 3D 点云——概率高于阈值的位置被保留为点云中的点。每个点带有 3D 坐标(x, y, z)和反射强度。
19.5.4 为什么能逼近 LiDAR
PanoRadar 能逼近 LiDAR 质量的关键在于合成孔径带来的分辨率提升:
| 指标 | 单帧 mmWave | PanoRadar(合成孔径) | LiDAR |
|---|---|---|---|
| 角分辨率 | ~15° | ~1° | ~0.1° |
| 每帧点数 | ~500 | ~50,000 | ~100,000 |
| 距离精度 | ~5 cm | ~5 cm | ~2 cm |
| 成本 | ~$10 | ~$10(同一芯片) | ~$1,000+ |
注意:PanoRadar 的角分辨率(1°)仍然比 LiDAR(0.1°)差一个数量级。但 3D CNN 通过学习环境的先验知识(墙壁是平面的、桌子是矩形的等)来"补偿"这个分辨率差距——类似于人脑在看模糊图像时会自动"脑补"细节。
19.5.5 关键数字
| 指标 | 数值 |
|---|---|
| 硬件成本 | ~$10(TI AWR1843 芯片) |
| 等效 LiDAR 成本 | ~$1,000+(Velodyne VLP-16) |
| 点云密度 | ~50K 点/帧(LiDAR 的 ~50%) |
| 距离误差 | < 10 cm(中位数) |
| 覆盖范围 | 360° 水平 × 60° 垂直 |
| 最远检测距离 | ~20 m |
| 处理延迟 | ~100 ms(GPU 推理) |
| 烟雾场景性能下降 | < 10% |
成本对比的意义
$10 vs $1000+ 不仅仅是"便宜 100 倍"这么简单。它改变了部署的经济学:
- 一台配备 LiDAR 的机器人成本可能是 $5000-10000
- 如果用 PanoRadar 替代 LiDAR,机器人成本降到 $4000-9000
- 但更重要的是:LiDAR 是机械旋转部件,寿命有限(通常 2-5 年),更换成本高
- mmWave 芯片是固态的,没有运动部件,理论寿命 > 10 年
对于需要大规模部署的场景(如仓库中的 100 台搬运机器人),这个成本差异意味着数十万美元的节省。
19.5.6 合成孔径的限制
合成孔径不是免费的午餐。它有几个固有限制:
限制一:需要运动
合成孔径要求传感器在移动。如果机器人停下来不动,就退化回单帧雷达的低分辨率。这意味着 PanoRadar 不适合静态监控场景——它更适合移动机器人。
限制二:需要精确的位姿估计
合成孔径的相干叠加要求精确知道每帧数据采集时传感器的位置和朝向。位姿误差会导致相位对不齐,合成孔径失效。PanoRadar 使用 IMU + 轮式里程计提供位姿,在平坦地面上精度足够,但在颠簸地形上可能出问题。
限制三:动态物体模糊
合成孔径假设场景是静态的——在多帧叠加的过程中,如果目标在移动,它在不同帧中的位置不同,叠加后会变成一条模糊的轨迹而不是一个清晰的点。PanoRadar 通过多普勒维度来识别和分离动态物体,但效果有限。
19.5.7 相关工作:milliEgo 和 RadarHD
PanoRadar 不是唯一在"提升毫米波雷达能力"方向上工作的系统。这里简要介绍两个互补的工作:
milliEgo(CMU,2020):毫米波 + IMU 的自运动估计
milliEgo 解决的问题是:如何用毫米波雷达估计机器人自身的运动(ego-motion)。这是 PanoRadar 的前置问题——PanoRadar 需要知道机器人的位姿才能做合成孔径,milliEgo 提供了一种不依赖轮式里程计的位姿估计方案。
milliEgo 的核心创新是 cross-modal attention:让 mmWave 特征和 IMU 特征互相"注意"对方。mmWave 提供环境的空间结构信息(哪里有墙),IMU 提供短期的运动动态信息(加速度、角速度)。两者融合后,比单独使用任何一个都更准确。
RadarHD(MIT,2023):神经超分辨率
RadarHD 解决的问题是:如何在不增加硬件成本的情况下提升雷达的角分辨率。思路是训练一个神经网络,输入低分辨率的雷达热力图,输出高分辨率的"超分辨"热力图。
这和图像超分辨率(如 ESRGAN)是同一类问题,但雷达数据有其特殊性——雷达热力图中的"模糊"不是高斯模糊(像相机失焦),而是由天线阵列的有限孔径导致的 sinc 函数形状的点扩散函数(PSF)。RadarHD 的网络架构针对这种特殊的 PSF 进行了优化。
RadarHD 可以和 PanoRadar 结合使用——先用合成孔径提升基础分辨率,再用 RadarHD 进一步超分辨。两者叠加后,点云质量进一步接近 LiDAR。
19.5.8 训练策略:LiDAR 作为老师(第三次跨模态监督)
和 RF-Pose、milliMap 一样,PanoRadar 的训练也依赖跨模态监督。这是本章第三次看到这个范式,值得总结一下它的通用结构:
训练阶段:
输入:便宜传感器的原始数据(RF heatmap / mmWave chirps)
标签:昂贵传感器的输出(OpenPose keypoints / LiDAR occupancy / LiDAR point cloud)
目标:学习 f: 便宜输入 → 昂贵输出
部署阶段:
只需要便宜传感器
模型 f 替代了昂贵传感器的功能
PanoRadar 的具体训练流程:
- 机器人同时携带 mmWave 雷达和 LiDAR(Velodyne VLP-16)在多个室内/室外环境中行走
- LiDAR 点云经过配准和滤波,生成高质量的 3D ground truth
- mmWave 数据经过合成孔径处理,生成 4D 张量作为网络输入
- 3D CNN 以 LiDAR 点云为目标进行训练,损失函数包含点云重建损失和占据概率的交叉熵损失
- 训练完成后,LiDAR 被移除,只保留 mmWave 雷达
这个范式的一个有趣推论是:模型的上限受限于老师的质量。如果 LiDAR 点云本身有噪声或遗漏(比如 LiDAR 看不到玻璃表面),那么训练出来的 mmWave 模型也会继承这些缺陷。但反过来,mmWave 能"看到"一些 LiDAR 看不到的东西(比如玻璃后面的物体),这些信息在训练标签中没有体现,模型也就学不到。这是跨模态监督的一个固有局限。
19.5.9 小结:从 $1000 到 $10 的感知民主化
PanoRadar 代表了一个重要趋势:感知能力的民主化。
过去,高质量的 3D 感知是昂贵的——你需要 $1000+ 的 LiDAR,或者 $500+ 的深度相机阵列。这限制了机器人的部署规模——只有高价值场景(自动驾驶、工业检测)才能负担得起。
PanoRadar 展示了一种可能性:通过算法创新(合成孔径 + 深度学习),用 $10 的硬件达到 $1000 硬件的效果。这意味着:
- 家用清洁机器人可以拥有接近 LiDAR 水平的 3D 感知
- 农业无人机可以在雾天/夜间工作
- 仓库机器人可以大规模部署而不被传感器成本限制
当然,PanoRadar 目前还不能完全替代 LiDAR——它的分辨率仍然较低,需要运动才能工作,动态场景处理有限。但它指明了方向:未来的感知系统可能不是靠更贵的硬件,而是靠更聪明的算法。
这个思想和 Ch18 中 ImageBind 的思想遥相呼应——ImageBind 用一个统一的嵌入空间连接了六种模态,使得"穷模态"(如热成像、深度)可以借助"富模态"(如图像、文本)的知识来提升能力。PanoRadar 用合成孔径 + 深度学习,让"穷硬件"($10 雷达)借助"富硬件"($1000 LiDAR)的训练标签来提升能力。核心逻辑是一样的:用知识(算法/模型)替代资源(硬件/数据)。
19.6 CartoRadar:毫米波 3D SLAM 与不确定性量化
19.6.1 一个蒙眼画地图的挑战
在 Part 1 里,我们看到 RF-Pose 能穿墙"看人",milliMap 能用毫米波"画地图",PanoRadar 能做到接近 LiDAR 水平的 3D 感知。但这些工作有一个共同的假设:机器人大致知道自己在哪里。 RF-Pose 假设相机位置固定;milliMap 假设机器人的轨迹已知(或者有其他传感器提供定位);PanoRadar 专注于单帧 3D 点云质量,没有处理多帧之间的位姿估计。
现实中的机器人没有这个待遇。它被放到一个全新的室内环境——可能是一栋刚建好的毛坯房,也可能是一座断电的仓库——没有 GPS(室内无信号),没有预装的地图,甚至没有 LiDAR(成本或重量限制)。它手里只有一颗几美元的毫米波雷达芯片。
问题变成了:一边走、一边弄清自己在哪、一边把周围环境画成地图——这就是 SLAM。
这个问题对机器人来说有多核心?可以这么说:如果机器人不知道自己在哪,所有下游任务——导航到指定位置、避开障碍物、抓取特定物体——都无法进行。SLAM 是机器人自主行动的零号基础设施。在视觉和 LiDAR 领域,SLAM 已经是一个成熟的技术栈(Google Cartographer、ORB-SLAM3、LIO-SAM 等系统在自动驾驶和服务机器人中广泛使用)。但在射频感知领域,SLAM 长期以来是一个空白——直到 CartoRadar 的出现。
为什么这个问题现在才被解决?因为之前的射频感知工作都回避了 SLAM 的复杂性。RF-Pose 技巧性地固定了设备位置;milliMap 的 cGAN 架构专注于局部感知质量,不处理全局一致性;PanoRadar 的合成孔径方法假设机器人的轨迹已经由其他传感器提供。CartoRadar 是第一个让毫米波雷达单独承担完整 SLAM 任务的工作。
19.6.2 什么是 SLAM
SLAM(Simultaneous Localization and Mapping)翻译过来就是"同时定位与建图"。如果你在 Ch17 的仿真章节接触过 Habitat 或 iGibson 里的导航任务,你已经间接用过了 SLAM 的概念——仿真器里机器人知道自己的精确位置(ground truth pose),所以不需要 SLAM。但在真实世界里,没有上帝视角,SLAM 是机器人自主行动的前提。
用生活场景来理解 SLAM:
想象你第一天到一座陌生城市,手机没电了,也没有纸质地图。你从酒店出发去找一家餐厅。你能做的是:
- 观察当前环境——街角有一棵大树、左手边有一家便利店、右手边是一条小巷
- 走一段路——左转,走大约 50 米
- 再观察——对面出现了一座教堂、右边有一条河
- 把这些信息串起来——"从酒店左转 50 米到教堂,教堂右边有河"——你在脑中画了一张地图
- 在地图上标记自己的位置——"我现在在教堂门口"
你同时做了两件事:画地图(Mapping)和定位自己(Localization)。这就是 SLAM。
SLAM 的核心难题在于,这两件事互相依赖——你需要知道自己在哪才能把观察到的东西放到地图上的正确位置,但你需要地图才能确定自己在哪。这是一个"鸡生蛋还是蛋生鸡"的问题,数学上通过迭代优化来解决。
踩坑提醒:初学者容易把 SLAM 和「纯定位」混淆。纯定位(localization)假设你已经有一张精确的地图——比如 GPS + 高精地图的自动驾驶汽车——你只需要在地图上找到自己的位置。SLAM 的难度在于地图也是未知的,需要一边建一边用。这两个问题的难度差距巨大:纯定位是一个搜索问题(在已知空间里找自己),SLAM 是一个联合估计问题(同时估计自己的位置和整个空间的结构)。
19.6.3 为什么雷达 SLAM 比 LiDAR SLAM 难
LiDAR SLAM 是一个相对成熟的领域。Google Cartographer(2016 年开源)、ORB-SLAM、LIO-SAM 等系统已经在自动驾驶和机器人领域广泛使用。那为什么不直接把这些系统搬到毫米波雷达上?
原因在于毫米波雷达和 LiDAR 的信号特性有本质差异。用一个对比表来看:
| 维度 | LiDAR | 单芯片 mmWave 雷达 |
|---|---|---|
| 每帧点数 | 30 万 - 100 万 | 几百 - 几千 |
| 角分辨率 | 0.1° | 5° - 15° |
| 多径反射 | 很少(光直线传播) | 严重(信号在墙壁间反弹) |
| 噪声特征 | 低噪声,几何清晰 | 高噪声,大量虚假点 |
| 纹理信息 | 无(但几何足够用) | 无(且几何也模糊) |
| 典型成本 | 数千到数万元 | 几十到几百元 |
总结成三个核心难题:
难题一:信号稀疏。 LiDAR 一帧扫出几十万个精确点,你可以在里面找到丰富的几何特征(墙角、门框、柱子)来做帧间匹配。毫米波雷达一帧可能只有几百个点,而且因为角分辨率低,一面墙可能只表现为几个模糊的点——"这到底是一面墙还是两把椅子?"分不清。
用数字来感受这个差距:LiDAR 一帧给你一张 100 万像素的高清照片,毫米波雷达给你一张 500 像素的模糊缩略图。你要用这张缩略图做和高清照片一样的事情。对于 SLAM 来说,这个稀疏性问题尤其致命,因为 SLAM 的帧间匹配需要在两帧之间找到"共同特征"——两帧观测到的同一面墙、同一个柱子。当每帧只有几百个模糊的点时,很难判断两帧中的哪些点对应的是同一个物理实体。
难题二:多径反射。 毫米波信号会像篮球在球场里反弹一样,从墙壁、天花板、地面之间多次反射后才到达雷达接收天线。这意味着你"看到"的不只是真实物体——还有大量"幽灵目标",它们在物理上不存在,是信号绕了弯路产生的伪影。LiDAR 几乎不受这个问题影响,因为光线基本不会在室内环境中反弹多次。在一个典型的室内环境中,毫米波雷达观测到的点里可能有 30-50% 是多径产生的虚假点——这意味着你的"观测"里有一半是错误信息,SLAM 系统必须有能力识别和过滤这些错误。
难题三:缺乏纹理。 LiDAR 虽然也没有颜色纹理,但它的几何分辨率足够高,可以用点云的形状特征(如曲率、法线方向)做特征匹配。毫米波雷达的点太少、太模糊,连几何纹理都提取不出来,传统的特征匹配方法(ICP、NDT)经常失败。
"纹理"在 SLAM 语境中是一个广义的概念,不仅指视觉上的颜色花纹,更指环境中帮助区分不同位置的局部特征。一条空旷的走廊就是"无纹理"的极端例子——无论你站在走廊的哪个位置,看到的景象都差不多(两面平行的墙),这让 SLAM 很难确定你在走廊的具体位置。这个问题在 LiDAR SLAM 中也存在,但因为 LiDAR 分辨率高,可以利用墙面微小的凹凸不平来做匹配;毫米波雷达的分辨率太低,这些微小特征完全淹没在噪声中。
这三个难题不是独立存在的,它们会互相恶化。
用一个具体的例子感受这三个难题叠加的效果:假设你在一个 L 形走廊里用毫米波雷达扫描。当你站在 L 形的拐角处时,雷达看到的是:前方一面墙(几个模糊的点)、左边一条走廊(两面平行墙,只有墙角的两三个点)、右边另一条走廊(同样的两面平行墙)。多径反射还会在角落处产生虚假点。现在你走了 10 米,站在另一个位置——雷达看到的几乎是相同的景象(两面平行墙、几个模糊点)。你怎么确定自己移动了 10 米而不是 8 米或 12 米?这就是雷达 SLAM 的核心困难。
正是这些难题让"用毫米波雷达做 SLAM"成为一个重要但困难的研究方向。CartoRadar(MobiCom 2025, MIT)给出了目前最完整的答案。
19.6.4 CartoRadar 的架构:站在巨人肩上
CartoRadar 的核心思路是:不从零开始造轮子,而是把已经成熟的 Google Cartographer 架构适配到毫米波雷达的特性上。
Google Cartographer 是一个久经考验的 SLAM 框架,被 Google 自己的自动驾驶项目(Waymo 的前身)和许多机器人公司使用。它的架构分为前端和后端两个阶段:
mmWave 原始信号
│
▼
[FMCW 信号处理] ← Part 1 (19.2) 讲过的距离-角度-速度提取
│
▼
[前端: Scan Matching]
│ 每一帧雷达扫描 → 与当前子地图配准
│ 输出:帧间相对位姿
│
▼
[子地图 (Submap) 构建]
│ 多帧累积 → 局部一致的小地图
│
▼
[后端: Pose Graph Optimization]
│ 多个子地图之间的约束 + 回环检测
│ 输出:全局一致的轨迹 + 完整地图
│
▼
[不确定性传播] ← CartoRadar 的核心创新
│ 每个位姿估计附带协方差矩阵
│ "这个位置我有多不确定"
│
▼
最终输出:3D 地图 + 轨迹 + 每个点的不确定性
让我们逐层拆解。
前端:Scan Matching(扫描配准)
前端解决的问题是:给你连续两帧雷达扫描,估计机器人在这两帧之间移动了多少。
类比:你在桌上放了一张半透明的地图,然后拍了一张照片。你走了两步,又拍了一张照片。现在你要把两张照片"叠在一起",调整第二张的位置和旋转,让重叠的部分尽可能吻合。这个"叠图"的过程就是 scan matching。
在 LiDAR SLAM 里,scan matching 用的是 ICP(Iterative Closest Point)——你在两帧点云里找最近邻的点对,然后求一个最优的旋转加平移变换。但毫米波雷达的点太少、噪声太大,直接用 ICP 经常不收敛。
CartoRadar 的做法是把稀疏点云转换成占据概率地图(occupancy grid),然后用 Cartographer 原有的 Ceres 优化器做基于概率的配准。这比逐点匹配更鲁棒,因为概率地图天然地"模糊化"了噪声的影响。
用一个更直观的例子来理解概率配准和点配准的区别:假设你在纸上画了几个模糊的圆点(代表雷达观测),然后要和另一张纸上的模糊圆点对齐。如果你用逐点匹配(ICP),你需要精确知道每个点的中心在哪——但点本身是模糊的,中心位置不确定。如果你用概率配准,你把每个点当作一团"概率云"(高斯分布),然后找一个变换让两张纸上的概率云最大程度重叠。概率云之间的重叠度是连续的、光滑的,优化器更容易找到好的解。
子地图(Submap)构建
单帧配准不可避免地有误差。如果你只靠前端的帧间估计,误差会像滚雪球一样累积——走了 100 米后,可能偏了 5 米。这就是**漂移(drift)**问题。
Cartographer 的解决办法是把连续多帧聚合成一个"子地图"。每个子地图覆盖一小片区域(比如 5 米 × 5 米),内部的帧间关系通过 scan matching 保持一致。然后,后端再处理子地图之间的关系。
这有点像你写论文时先写小段落(每段内部逻辑通顺),再调整段落之间的衔接——分而治之。
后端:Pose Graph Optimization + 回环检测
后端是 SLAM 的精髓所在。它把整个轨迹表示为一个图(graph):
- 每个节点 = 一个子地图的位姿(位置 + 朝向)
- 每条边 = 两个子地图之间的空间约束(从 scan matching 得到的相对变换)
然后用非线性优化求解一个全局一致的位姿序列,使所有约束的误差之和最小。这个优化问题的标准工具是 Ceres Solver 或 g2o。
回环检测(Loop Closure) 是后端最关键的功能。当机器人走了一大圈回到起点附近时,它应该"认出来"——"这个地方我来过"。一旦检测到回环,后端会加入一条强约束,把前面积累的漂移一次性修正。就像 GPS 校准你的里程表一样——你可能觉得自己走了 105 米,但 GPS 告诉你只走了 100 米,你就把整条轨迹等比例缩放回来。
在毫米波雷达的场景下,回环检测比 LiDAR 更难。LiDAR 可以用丰富的点云几何特征来判断"这个地方我来过吗"(比如识别出独特的墙角形状或柱子排列)。毫米波雷达的点太少太模糊,很难提取出有区分度的特征。CartoRadar 通过在子地图级别做相似性匹配来缓解这个问题——虽然单帧不够有区分度,但一个子地图(累积了几十帧)包含的几何信息已经足够做粗粒度的场景识别。
踩坑提醒:Pose Graph Optimization 不是万能的。它能修正"漂移"(渐进的误差累积),但不能修正"跳变"(突然的大误差)。如果前端的 scan matching 某一帧完全匹配错了(比如把两面相似的墙搞混了),后端优化可能会收敛到错误的解。这就是为什么前端的鲁棒性至关重要——后端只能"打磨"前端给出的粗略答案,不能从根本上纠正前端的大错误。
19.6.5 核心创新:不确定性传播
到这一步为止,CartoRadar 的前端和后端和 Cartographer 的经典架构没有本质区别——只是把 LiDAR 输入换成了 mmWave 输入,并调整了一些信号处理参数。CartoRadar 的真正创新在下一步:不确定性量化(Uncertainty Quantification)。
传统 SLAM 给你一个位姿估计:"机器人在 (3.2, 5.1) 这个位置,朝向 37°。" 但它不告诉你这个估计有多可靠。在 LiDAR SLAM 的场景下,因为点云足够稠密、精确,估计通常很可靠,不确定性低到可以忽略。但在毫米波雷达的场景下,估计的不确定性可能很大——在一条空旷的走廊里(所有方向看起来都差不多),位姿估计可能沿着走廊方向有很大的模糊性。
CartoRadar 的做法是在 pose graph optimization 的过程中,不仅求解最优位姿,还传播每条边的不确定性到最终结果。具体来说,它为每个位姿估计输出一个协方差矩阵(covariance matrix)——一个 6×6 的矩阵(3 个平移自由度 + 3 个旋转自由度),描述了位姿估计在每个方向上的不确定程度。
协方差矩阵可以可视化为一个椭球。椭球越大,不确定性越高。椭球的长轴方向就是最不确定的方向。比如在走廊里,你可能看到一个沿走廊方向拉长的椭球——"我确定自己在走廊中间,但不确定自己走了多远"。
校准(Calibration) 是不确定性量化的关键质量指标。如果系统说"我 80% 确定自己在这个 1 米半径的圆内",那么在大量测试中,机器人确实应该有 80% 的时间落在这个圆内。CartoRadar 的校准误差 < 5%——也就是说它的不确定性估计是"诚实"的,不会过度自信也不会过度保守。
19.6.6 不确定性量化为什么对机器人至关重要
你可能会觉得:"知道位置不就够了吗?为什么还要知道'多不确定'?"
用开车导航来理解这个问题。假设导航软件告诉你"前方 100 米右转"。如果软件内部知道"我的定位精度是 ±3 米,很确定",那它会在恰好 100 米处提示你;如果软件知道"我的定位精度是 ±50 米,不太确定",它应该提前告诉你"大约 100 米后右转,注意观察路口"。
对于自主机器人来说,不确定性的三个实际用途:
用途一:安全导航。 如果机器人知道自己的位置不确定性很大,它应该减速、增加安全距离、甚至停下来等待更多观测来降低不确定性,而不是自信地冲过去然后撞墙。这在人机协作场景中尤其重要——机器人的路径规划器需要考虑"最坏情况下我可能偏了多少"。
用途二:主动探索。 在搜救或侦查任务中,机器人可以优先去不确定性高的区域采集更多数据,而不是在已经很确定的区域反复打转。这叫做 uncertainty-driven exploration,是自主探索领域的标准策略。举个例子:在一座坍塌的建筑中搜救,机器人发现东侧的地图不确定性很高(可能有未探索的房间),而西侧的不确定性很低(已经充分扫描过了)。有了不确定性信息,机器人会自主决定去东侧——那里更可能发现被困人员。
用途三:多传感器融合决策。 当毫米波雷达的位姿估计不确定性很大时,机器人可以切换到其他传感器(比如相机或 IMU),或者降低雷达的权重。如果没有不确定性信息,融合决策只能"平均对待"所有传感器,无法做到动态权重调整。
踩坑提醒:不确定性量化和精度是两码事。一个系统可以精度很高但不确定性估计不准确(过度自信或过度保守)——这比精度低但不确定性校准准确更危险。CartoRadar 的贡献不仅是精度高(14.1cm ATE),更在于不确定性校准准确(< 5% 校准误差)。
19.6.7 关键数字与 RadarSLAM 对比
CartoRadar 的核心实验结果:
| 指标 | 数值 | 含义 |
|---|---|---|
| 轨迹误差 (ATE) | 14.1 cm | 平均每个时刻,估计位置与真实位置的距离 |
| 建图精度 | 7.4 cm | 地图中每个点到真实位置的平均误差 |
| 不确定性校准误差 | < 5% | "说 80% 确定"真的有约 80% 的概率对 |
| 硬件 | 单芯片 TI mmWave | 成本约 $15-30 |
| 代码 | 开源 | Best Artifact Award, MobiCom 2025 |
CartoRadar 获得了 MobiCom 2025 的 Best Artifact Award——这个奖表彰的是论文配套的代码、数据、文档质量。在移动计算领域,这是对可复现性的最高认可。Best Artifact Award 的评选标准包括:代码能否在合理时间内跑通、文档是否足够清晰让非作者也能复现、数据集是否公开且格式规范。在系统研究领域,这个奖有时比 Best Paper 更有实际影响力——因为一篇无法复现的论文,无论方法多漂亮,对社区的贡献都是有限的。
对于初学者来说,这也是一个选择研究论文的实用准则:优先阅读有开源代码和数据集的论文。 你可以亲手跑通代码、修改参数、观察结果变化——这种动手体验远比只读论文有效得多。
与 RadarSLAM(BMVC 2020)的对比:
| 维度 | RadarSLAM | CartoRadar |
|---|---|---|
| 场景 | 室外大尺度(城市街道) | 室内(办公室、公寓) |
| 雷达类型 | 扫描雷达(体积大、昂贵) | 单芯片 mmWave(名片大小、便宜) |
| 维度 | 2D SLAM | 3D SLAM |
| 不确定性 | 无 | 有(协方差矩阵 + 校准) |
| 方法 | 传统特征提取 + 里程计 | Cartographer 架构 + 不确定性传播 |
RadarSLAM 的贡献在于证明了"雷达可以做大尺度 SLAM"这个概念。CartoRadar 在此基础上把问题推进到了更实用的维度:室内、3D、低成本硬件、可量化的不确定性。
两者的关系可以类比为"概念车"和"量产车":RadarSLAM 证明了雷达 SLAM 这条路走得通(概念验证),但用的硬件(扫描雷达)太贵太大,不适合实际部署。CartoRadar 在同一条路上,用量产级的硬件($15-30 单芯片)实现了同等甚至更好的效果,并且加上了工程上必需的不确定性量化。从学术谱系上说,RadarSLAM 开创了雷达 SLAM 这个子领域,CartoRadar 则把它推向了实用化。
19.6.8 局限与开放问题
CartoRadar 是纯几何方法——它不做语义理解。地图上的每个点只有"这里被占据了"的信息,但不知道这个占据物是"墙壁"还是"沙发"还是"人"。这限制了它在需要语义导航("去厨房"、"避开行人")的场景中的应用。
另一个限制是 CartoRadar 没有使用任何神经网络,完全依赖传统的信号处理和优化方法。这在当前环境下既是优点(不需要大量训练数据、可解释性强、计算量可控)也是缺点(无法利用数据驱动方法在特征提取和匹配上的优势)。
如何结合 CartoRadar 的几何鲁棒性和 milliMap(19.4)/PanoRadar(19.5)的感知能力,是一个值得思考的方向——几何负责"在哪",神经网络负责"是什么"。
一个假想的组合方案:用 CartoRadar 做底层的位姿估计和几何建图(提供可靠的"骨架"),然后在每个位姿上用 PanoRadar 的神经网络增强点云密度和质量(给骨架"填肉"),最后用 mmCLIP 的对比学习方法对地图上的区域做语义标注(给地图"上色")。这三层分别对应位置层、形状层、语义层——恰好是我们在 19.9 即将总结的三层架构。
19.7 mmCLIP:射频信号遇见语言
19.7.1 从"看图说话"到"看雷达说话"
在 Ch08 里,我们详细拆解了 CLIP:用互联网上的 4 亿个(图像, 文本)配对,通过对比学习训练一个联合嵌入空间——图像编码器和文本编码器各自把输入映射到同一个向量空间里,匹配的图文对在这个空间里靠近,不匹配的远离。
在 Ch18 里,我们看到 ImageBind 把这个范式从"视觉 + 文本"扩展到了六种模态——音频、深度、热成像、IMU 也被拉进了同一个嵌入空间。AnyMAL 更进一步,把各种模态的编码器接到了 LLM 上,实现了多模态对话。
mmCLIP(SenSys 2024)沿着这条路再走一步:把毫米波雷达信号也拉进 CLIP 的联合嵌入空间。 但目标不是通用理解,而是一个具体任务——人体动作识别(Human Activity Recognition, HAR)。HAR 是物联网和普适计算领域最核心的任务之一——它是智能家居、健康监测、人机交互的基础。
为什么动作识别需要毫米波雷达?因为摄像头有一个根本性的社会问题:隐私。
想象你是一个独居老人的家属,你希望有一个系统能监测老人是否摔倒了。摄像头可以做到——但你愿意在老人的卧室和浴室装摄像头吗?即使技术上保证"只在本地处理、不上传视频",很多人仍然觉得不舒服。
毫米波雷达解决了这个问题。它发射的是无线电波,接收到的是反射信号的功率谱——你从这个数据里看不到人的长相、穿着、甚至看不出是谁,你只能看到一团运动的"信号云"。这对隐私保护来说是天然的优势。
但问题是:毫米波雷达的动作识别传统上需要大量标注数据——你需要让很多人在雷达前面做各种动作(走路、跑步、坐下、摔倒、挥手……),人工标注每一段信号对应哪个动作,然后训练一个分类器。每增加一个新动作类别,就需要重新收集数据和标注。
这和 Ch08 里 CLIP 解决的问题一模一样——固定类别的瓶颈。CLIP 的解法是用自然语言来定义类别,从而实现零样本识别。mmCLIP 的思路完全相同:用文本描述来定义动作类别,让雷达信号和文本在同一个嵌入空间里对齐。
19.7.2 技术架构
mmCLIP 的架构可以拆成四个组件:
mmWave 信号 ──→ [信号编码器] ──→ signal embedding ──┐
│ InfoNCE 对比损失
动作描述文本 ──→ [文本编码器] ──→ text embedding ──┘
↑
[冻结的 CLIP 文本编码器]
↑
[LLM 生成动作描述]
组件一:毫米波信号编码器
输入是 range-Doppler 热力图(在 Part 1 的 19.2 节讲过:FMCW 雷达原始信号经过两次 FFT 后得到的距离-速度二维图像)。这本质上是一张"图像"——横轴是距离,纵轴是多普勒速度,像素值是信号强度。所以可以用标准的 CNN 或 Vision Transformer 来提取特征。
mmCLIP 选择的编码器架构是一个轻量级 CNN,因为 range-Doppler 图的分辨率不高(通常 64×64 或 128×128),不需要特别深的网络。编码器输出一个固定维度的 signal embedding 向量。
这里有一个设计选择值得注意:为什么用 CNN 而不是 Transformer?在视觉领域,ViT(Vision Transformer)已经逐步取代 CNN 成为主流编码器。但 range-Doppler 图有两个特点使得 CNN 更合适:一是分辨率低(64×64 vs 视觉的 224×224 或更高),Transformer 在低分辨率输入上的优势不明显;二是数据量有限(毫米波数据集远小于 ImageNet),CNN 的归纳偏置(平移不变性、局部连接)在数据量有限时比 Transformer 更有优势。
组件二:文本编码器
直接使用 CLIP 预训练好的文本编码器,参数冻结不更新。这是 mmCLIP 的一个巧妙设计——文本编码器已经在 4 亿个图文对上训练过,对自然语言有很好的理解能力。冻结它意味着 mmCLIP 不需要从头训练语言理解能力,只需要让信号编码器学会"说 CLIP 能听懂的语言"。
这和 Ch18 里 AnyMAL 的做法异曲同工——AnyMAL 也是冻结 LLM,只训练一个 projector 把新模态映射到 LLM 的嵌入空间。
组件三:LLM 生成动作描述
这是 mmCLIP 的另一个巧妙之处。对于每个动作类别(比如"走路"),mmCLIP 不是用一个简单的标签"walking",而是用 GPT 生成多角度的文本描述:
- "A person is walking at a normal pace across the room"
- "Someone is taking steps forward, one foot after the other"
- "A human figure is moving horizontally with rhythmic leg movements"
- "The subject is ambulating in a straight line"
为什么要这么做?两个原因。首先,单个标签太简短,在 CLIP 的嵌入空间里占据的区域太小,对比学习的效果不好。多个描述相当于把同一个类别"展开"成嵌入空间中的一个区域,让信号编码器有更大的"目标"可以靠近。其次,不同的描述从不同角度捕捉了动作的特征(速度、节奏、姿态),这种多样性帮助信号编码器学到更丰富的特征表示。
组件四:InfoNCE 对比损失
训练目标和 CLIP 完全一样:在一个 batch 里,让匹配的(信号, 文本)对的 embedding 余弦相似度尽可能高,让不匹配的尽可能低。具体的损失函数是 InfoNCE(在 Ch08 里详细讲过),这里不再重复。
关键点是:训练时你需要标注数据(每段信号标注对应的动作类别),但推理时你不需要。推理时,你可以给文本编码器输入任意文本描述——包括训练时从未见过的动作类别——然后看信号编码器的输出和哪个描述最接近。这就是零样本识别。
这里有一个微妙但重要的区别:训练时和推理时使用文本编码器的方式不同。训练时,文本编码器处理的是训练集中已知动作类别的描述,信号编码器学会将对应的雷达信号映射到相同的嵌入空间位置。推理时,文本编码器处理的是任意新类别的描述——因为嵌入空间的结构已经被训练好了(语义相似的描述在空间中靠近),所以即使信号编码器没见过某个新动作,只要这个新动作的雷达特征和训练集中的某些动作有部分相似性,它的嵌入向量就会落在正确的语义区域附近。
用伪代码来表达推理过程:
# 推理时的零样本识别
def zero_shot_classify(radar_signal, candidate_descriptions):
# 1. 雷达信号 → 嵌入向量
sig_emb = signal_encoder(radar_signal) # 训练过的
# 2. 每个候选描述 → 嵌入向量
text_embs = [text_encoder(d) for d in candidate_descriptions] # 冻结的 CLIP
# 3. 找余弦相似度最高的
similarities = [cosine_sim(sig_emb, t) for t in text_embs]
return candidate_descriptions[argmax(similarities)]
# 可以随时添加新类别,无需重新训练
result = zero_shot_classify(
radar_data,
["摔倒", "深蹲", "翘二郎腿", "拉伸"]
)
这段伪代码展示了零样本识别的核心优势:candidate_descriptions 可以是任意内容,不需要和训练集有任何重叠。你今天可以检测"摔倒",明天可以改成检测"假装摔倒骗保险"——只要你能用文字描述它。
19.7.3 零样本能力:从未见过的动作也能认
mmCLIP 最核心的实验结果是零样本识别:在训练时完全没见过的动作类别上,达到了 76.4% 的准确率。
这意味着什么?假设你用 mmCLIP 训练了一个系统,训练集里有"走路"、"跑步"、"坐下"、"站起"这四种动作。部署后,你给系统一段新的雷达信号和一个新的文本描述"一个人正在做深蹲"——即使系统从未见过"深蹲"的雷达信号,它也有 76.4% 的概率正确识别出来。
一些关键数字的对比:
| 方法 | 条件 | 准确率 | 推理延迟 |
|---|---|---|---|
| 有监督 CNN(上界) | 见过所有类别 | ~95% | ~5ms |
| mmCLIP 零样本 | 未见过目标类别 | 76.4% | 7ms |
| 随机猜测基线 | — | ~10%(10 个类别) | — |
76.4% 和有监督的 95% 之间有差距,但考虑到系统完全没见过这些动作的雷达信号,这个结果非常显著。7ms 的推理延迟意味着可以实时运行(每秒处理 140 帧以上)。
踩坑提醒:零样本识别的能力边界在哪里?mmCLIP 的零样本能力依赖于一个前提——新动作必须能被语言有效描述,并且新动作和训练集中的动作共享某些底层特征。如果新动作的雷达特征和训练集完全不同(比如训练集只有大幅度动作,但新动作是手指的精细动作),零样本识别就会失效。
19.7.4 隐私优势与具身 AI 的关系
mmCLIP 对具身 AI 的启示不仅在于技术方案本身,更在于它解决的隐私问题。
未来家用机器人——无论是扫地机器人、送餐机器人还是养老护理机器人——都面临一个核心矛盾:需要理解人类活动来提供服务,但不能侵犯用户的隐私。 如果机器人用摄像头监测老人是否摔倒了,那么它同时也"看到"了老人在卧室和浴室的一切行为。即使数据不上传,用户心理上也难以接受。
mmCLIP 提供了一种可能的解决方案:机器人用毫米波雷达而不是摄像头来感知人类活动。雷达信号本身不包含任何视觉可辨识的信息——你拿到原始数据也"看不出"里面是谁、穿了什么。这种"天然匿名"的特性让射频感知在隐私敏感场景中具有独特优势。
再结合零样本能力——家属不需要让老人在雷达前面做大量动作来训练系统,只需要用文字描述关心的动作("摔倒"、"长时间不动"、"在床上翻来覆去"),系统就能识别。这大大降低了部署门槛。
从产品化的角度看,mmCLIP 式的系统还有一个被低估的优势:可定制性。不同用户关心不同的动作——独居老人家属关心"摔倒"和"长时间不动",康复科医生关心"步态异常"和"平衡失调",健身教练关心"深蹲姿势不正确"。传统的有监督系统需要为每个场景分别收集数据和训练模型。零样本系统只需要换一组文本描述——同一个模型就能服务于完全不同的场景。这种灵活性在商业化中极具价值。
19.7.5 mmCLIP 与 ImageBind 的对比
读到这里,你可能会问:Ch18 的 ImageBind 不是已经把六种模态统一到一个嵌入空间了吗?为什么还需要 mmCLIP 单独做一个射频-文本对齐?
两者的定位不同。ImageBind 是一个通用的多模态嵌入框架,它的目标是让六种模态(视觉、音频、文本、深度、热成像、IMU)都能互相"理解"。但 ImageBind 没有包含射频模态——因为射频信号的物理特性(FMCW 啁啾、range-Doppler 图、CSI 矩阵)和 ImageBind 处理的其他模态差异太大,不能直接套用相同的编码器架构。
mmCLIP 的贡献是为射频模态专门设计了编码器和训练策略,并证明了 CLIP 范式可以迁移到这种"非常规"的感知信号上。如果未来有人要做一个"七模态的 ImageBind"——加入射频——mmCLIP 提供的编码器设计和训练方法就是现成的参考。
| 维度 | ImageBind | mmCLIP |
|---|---|---|
| 模态数量 | 6 种 | 2 种(mmWave + 文本) |
| 包含射频 | 否 | 是 |
| 任务广度 | 通用嵌入 | 专注动作识别 |
| 零样本能力 | 有(模态间迁移) | 有(新动作类别) |
| 信号编码器 | 通用(ViT/AST) | 专为 range-Doppler 图设计 |
19.8 mmNorm:穿遮挡重建 3D 形状
19.8.1 问题:箱子里面是什么形状?
到目前为止,我们讨论的射频感知工作主要关注"在哪"(SLAM、定位)和"是谁/在做什么"(姿态估计、动作识别)。mmNorm(MobiSys 2025, MIT)提出了一个更具挑战性的问题:被遮挡物体的 3D 形状是什么样的?
具体场景:一个物体被放在一个纸箱子里,毫米波雷达从外面扫描这个箱子。目标是重建箱子里面物体的 3D 形状——不是大致的位置或轮廓,而是精确的三维表面几何。
为什么这个问题重要?想象以下场景:
- 安检:行李箱过安检时,X 射线能看到内部,但 X 射线有辐射,不适合频繁使用。毫米波无害且廉价。
- 仓储物流:包裹内部物品是否破损?用毫米波雷达无损检测。
- 建筑检测:墙壁内部管线的形状和走向?用毫米波雷达透视。
mmNorm 的研究团队来自 MIT,和我们在 19.5 讨论的 PanoRadar、19.6 的 CartoRadar 出自同一个实验室(MIT CSAIL 的 Wireless@MIT 团队),这个团队也是 19.3 RF-Pose 的出处。
19.8.2 核心思路:"不问哪里有东西,问表面朝哪"
传统的射频 3D 重建方法通常是估计占据(occupancy)——空间中每个点是"有东西"还是"没东西"。这种方法在穿遮挡的场景下效果很差,因为信号穿过遮挡物后变得很微弱、很模糊,"有没有东西"这种二值判断对信号质量要求太高。
mmNorm 的核心创新是转换了问题定义:不估计哪里有东西(占据),而是估计表面朝哪个方向(法向量)。 这个思路转换看似微小,却带来了巨大的性能提升。为什么?因为法向量是一个连续量(方向角),而占据是一个离散量(0 或 1)。连续量对噪声更鲁棒——信号稍微有误差,你估计的法向量只是偏了几度,但你估计的占据可能直接从"有"变成"没有"。这就像你问别人"你在不在家"(二值回答,信号差了就听不清)和"你面朝哪个方向"(连续回答,信号差了也能大致听清)的区别。
用一个触觉类比来理解"法向量":闭上眼睛,用手指触摸一个球。你不需要摸遍球的每一个点就能知道它的形状——你只需要在几个点上感受指尖压力的方向。每个接触点的压力方向垂直于球面,这个垂直方向就是法向量(surface normal)。如果你在足够多的点上测量了法向量,你就可以反推出整个球面的形状——这是微分几何中的一个经典结论。
mmNorm 利用的物理原理是:毫米波信号从物体表面反射时,反射方向和表面法向有确定的几何关系(和光的反射定律一样——入射角等于反射角,反射面的法线方向决定了反射方向)。通过分析从不同角度照射物体后的反射信号,可以反推出每个反射点的表面法向量。
19.8.3 技术方案:纯物理,无神经网络
mmNorm 的技术方案分三步:
第一步:表面法向估计
机械臂搭载毫米波雷达,从多个角度(通常是半球上的 50-100 个采样点)扫描被遮挡的物体。在每个采样角度,雷达发射 FMCW 信号并接收反射回波。通过分析反射信号的到达方向(Direction of Arrival, DoA)和反射强度,可以估计出该角度下可见的表面片段的法向方向。
关键物理公式很简单——镜面反射定律:
n = (d_i + d_r) / |d_i + d_r|
其中:
n = 表面法向量
d_i = 入射方向单位向量(雷达到物体)
d_r = 反射方向单位向量(物体到雷达接收天线)
当然,实际情况比这复杂得多。物体表面不是完美镜面,会有漫反射成分;信号穿过遮挡物(纸箱)会发生折射和衰减;多径反射会引入虚假的法向估计。mmNorm 用多角度采样和统计滤波来处理这些噪声。
第二步:RSDF 反演
从离散的法向量集合重建出完整的 3D 表面——这是从局部信息恢复全局几何的逆问题。mmNorm 引入了 RSDF(Radial Signed Distance Function),一种特殊的隐式 3D 表示。
SDF(Signed Distance Function)在 3D 重建领域是标准工具:空间中每个点有一个值,正值表示在物体外部,负值表示在内部,零值表示在表面上。RSDF 是 SDF 的径向版本,更适合处理从单一中心点向外观察的场景(和雷达的观测模式一致——信号从雷达位置向外辐射)。
从法向量到 RSDF 的反演过程可以类比为一个拼图游戏:你知道每块拼图(表面片段)的朝向(法向),你需要找到它们的正确位置,使得拼出来的表面是光滑连续的。这个过程用最优化方法(泊松方程求解)来完成。
为什么选择 RSDF 而不是标准的 SDF?因为雷达是从一个固定位置(或沿轨迹的一系列位置)向外辐射信号的——它的观测天然是"径向"的。标准 SDF 定义在笛卡尔坐标系下,对每个 (x,y,z) 点计算到最近表面的距离。RSDF 定义在球坐标系(或沿射线的坐标系)下,沿每条射线方向计算符号距离。这样做的好处是直接和雷达的物理观测模式对齐——不需要从球坐标到笛卡尔坐标的不必要转换,减少了数值误差的传播。
第三步:物理模拟验证
重建出 3D 形状后,mmNorm 做了一步额外验证:用电磁仿真器模拟雷达信号在重建物体上的反射,然后和实际接收到的信号做对比。如果重建正确,模拟信号应该和实际信号吻合。如果不吻合,说明重建有误,需要迭代修正。
这种"正向模拟 → 和实际信号对比 → 修正重建"的循环叫做分析-综合(analysis-by-synthesis) 范式。它在计算机视觉领域有悠久的历史——比如 NeRF 也是类似的思路:先假设一个 3D 场景表示,从某个角度渲染(正向模拟)出图像,和实际拍摄的图像对比,然后反向传播优化 3D 表示。mmNorm 在射频领域实现了同样的循环,只不过"渲染"变成了"电磁仿真","图像"变成了"雷达回波"。
这种方法论和 Ch18 的 3DShape2VecSet 形成了有趣的对比——3DShape2VecSet 用神经网络学习 3D 隐式表示,mmNorm 用纯物理方法。各有优劣:
| 维度 | 3DShape2VecSet(学习方法) | mmNorm(物理方法) |
|---|---|---|
| 需要训练数据 | 大量 3D 形状数据集 | 不需要 |
| 可解释性 | 黑盒 | 每一步有物理解释 |
| 泛化性 | 对训练分布外的形状可能失败 | 不依赖分布,但依赖物理假设 |
| 速度 | 快(推理一次前向传播) | 慢(需要多角度采样 + 优化) |
| 穿遮挡能力 | 无(需要可见的输入) | 有(核心能力) |
19.8.4 实验结果
mmNorm 的关键数字:
| 指标 | mmNorm | 之前最好方法 |
|---|---|---|
| F-Score(形状精度) | 96% | 72-78% |
| 穿遮挡后精度变化 | 0.39 → 0.43 cm | 大幅下降 |
| 硬件成本 | ~$200(TI IWR1443 雷达) | 类似 |
96% 的 F-Score 意味着重建出的 3D 形状和真实形状高度吻合。更惊人的是,加上纸箱遮挡后,精度几乎没有下降——从 0.39cm 的平均误差只增加到 0.43cm。这个结果的直觉解释是:纸箱对毫米波信号几乎是透明的,就像玻璃对可见光透明一样。
19.8.5 局限性
mmNorm 有三个重要的局限性,它们定义了这类方法的适用边界:
限制一:金属和中空物体。 金属会完全反射毫米波信号(不透过去),所以金属壳包裹的物体无法穿透重建——金属对毫米波来说就像一面镜子,信号全部被反射回来,无法携带内部结构的信息。中空物体(如空瓶子)也是一个难题:瓶壁会反射信号,但瓶子内部是空气,没有可以反射信号的结构,所以重建出来的形状会缺少内部的"填充"——你可能得到两个分离的表面(瓶子的外壁和内壁),而不是一个完整的封闭形状。
限制二:速度。 因为需要机械臂从 50-100 个角度逐一扫描,整个重建过程需要数分钟。这不适合需要实时反馈的机器人任务(比如抓取流水线上的物体)。与此相比,基于深度学习的单视角 3D 重建(如 NeRF 的变体)可以在几秒钟内完成推理,尽管它们无法穿透遮挡。这是一个经典的 trade-off:物理方法精度高但速度慢,学习方法速度快但需要可见输入。
限制三:需要机械臂。 当前的方案依赖精密的机械臂来精确控制雷达的采样位置。这在实验室里没问题,但限制了实际部署——你不太可能给每个快递柜都配一台机械臂。一种可能的替代方案是用移动机器人本身的运动来替代机械臂——机器人绕着目标物体走一圈,同时用 CartoRadar 做 SLAM 来精确追踪自己的位置,再用 mmNorm 的方法做 3D 重建。这种 CartoRadar + mmNorm 的组合方案在理论上是可行的,但还没有人验证过。
尽管有这些限制,mmNorm 的贡献在于证明了一个重要的可能性:$200 的雷达 + 纯物理方法就能达到接近工业级的穿遮挡 3D 重建精度。 这为未来用更高级的雷达(如 4D 成像雷达)配合更快的算法(如实时法向估计)指明了方向。
踩坑提醒:mmNorm 论文中"穿遮挡"的遮挡物是纸箱——一种对毫米波几乎透明的材料。如果遮挡物换成混凝土墙或金属板,结果会完全不同。纸箱的介电常数接近空气,毫米波穿过它几乎不衰减;混凝土的衰减约为 5-15 dB,金属则完全反射。所以"穿遮挡"的能力强烈依赖于遮挡物的材质——这一点在读论文时要特别注意,不要过度泛化"雷达能穿墙"的结论。
19.8.6 mmNorm 的具身 AI 应用展望
虽然 mmNorm 当前的实验设置比较受限(实验室环境、机械臂、静态物体),但它验证的核心原理——用毫米波法向估计做穿遮挡 3D 重建——对具身 AI 有长远的应用价值。
设想一个家用机器人接到指令:"把柜子里的红色杯子拿出来。" 机器人首先需要知道柜子里有什么东西、它们在哪里、是什么形状。如果柜门是关着的,视觉完全无用。但如果机器人有一个集成的毫米波雷达,它可以透过木质柜门(木材对毫米波的衰减比金属小得多)感知内部物体的大致形状和位置,从而规划开门方向和抓取路径——在打开柜门之前就做好了准备。
这种"先感知再行动"的能力,正是具身 AI 区别于简单自动化的关键。简单自动化是"打开柜门 → 用摄像头看 → 抓取"(反应式)。具身智能是"透过柜门感知 → 规划抓取路径 → 高效执行"(预测式)。后者更安全(预知柜内物品防碰撞)、更高效(减少不必要的探索动作)。
19.9 射频感知的三层架构总结
19.9.1 "在哪 / 什么样 / 是什么"
回顾整个第 19 章讨论的论文,我们可以按照射频感知解决的核心问题,把它们组织成三层架构:
| 层级 | 核心问题 | 代表论文 | 方法范式 | 输入 → 输出 |
|---|---|---|---|---|
| 位置层 | 在哪 | CartoRadar, RadarSLAM | SLAM / 里程计 | RF 信号 → 位姿 + 地图 |
| 形状层 | 长什么样 | PanoRadar, mmNorm, milliMap | 超分辨 / 3D 重建 | RF 信号 → 点云 / 3D 形状 |
| 语义层 | 是什么/谁 | RF-Pose, mmCLIP, Person-in-WiFi | 跨模态监督 / 对齐 | RF 信号 → 姿态 / 动作类别 |
这三层不是互相独立的——一个完整的射频感知系统需要同时解决三层的问题。机器人首先要知道自己在哪(位置层),然后感知周围环境的几何形状(形状层),最后理解这些形状对应的语义含义(语义层)。
注意这三层之间存在信息流动方向:位置层的输出(位姿)是形状层的输入(你需要知道雷达的位置才能正确重建 3D 形状),形状层的输出(3D 几何)是语义层的输入(你需要知道物体的形状才能推断它是什么)。但也存在反向的信息流:语义层的输出可以帮助位置层("我识别出了一个厨房,上次经过厨房时我在位置 A,所以我现在在位置 A 附近"——这就是语义回环检测)。这种双向信息流使得三层架构不是简单的线性流水线,而是一个互相增强的循环系统。
这种三层架构和计算机视觉的经典分层高度类似:视觉领域也是先做低层(边缘检测、光流),再做中层(深度估计、表面重建),最后做高层(物体识别、场景理解)。射频感知相当于在一种全新的物理信号上重新走了一遍这条路——只不过每一层都面临独特的挑战(稀疏性、多径、低分辨率),需要独特的解决方案(跨模态监督、物理先验、对比学习)。
19.9.1.1 一个思想实验:纯 RF 机器人
想象一个极端场景:一个机器人只有毫米波雷达,没有任何其他传感器。它能做到什么?
按照三层架构,它可以用 CartoRadar 做 SLAM(位置层),在完全黑暗的环境中自主建图和导航。它可以用 PanoRadar 的方法获得较高质量的 3D 环境感知(形状层),区分墙壁、家具、开放通道。如果加上 mmCLIP 的能力,它甚至可以识别环境中人的动作(语义层)——比如检测到有人摔倒了。
这个纯 RF 机器人无法做的事情也很明确:它不能识别颜色和纹理("红色杯子"对它来说不存在),不能阅读文字标识("出口"标志对它来说只是一块平面),也不能做精细操作(射频感知的分辨率不足以引导毫米级的抓取)。
这个思想实验帮助我们理解 RF 感知的能力边界:它擅长"几何世界"(空间、运动、形状),不擅长"语义世界"(类别、属性、含义)。 这恰好和视觉互补——视觉擅长语义但怕黑暗和遮挡,RF 擅长几何且无视黑暗和遮挡。
如果用一个"能力矩阵"来表示:
| 能力维度 | 视觉(RGB) | LiDAR | RF(毫米波) | 纯 RF 机器人可行性 |
|---|---|---|---|---|
| 定位与建图 | 中(受光照影响) | 高 | 中-高(CartoRadar) | 可行 |
| 3D 环境感知 | 中(单目深度估计) | 高 | 中(PanoRadar/mmNorm) | 可行但精度受限 |
| 物体识别 | 高(ImageNet 级别) | 低(只有几何) | 低(只有几何 + 运动) | 困难 |
| 人体姿态估计 | 高(OpenPose 等) | 中 | 中(RF-Pose) | 可行 |
| 动作识别 | 高 | 低 | 中(mmCLIP) | 可行但类别有限 |
| 颜色/纹理/文字 | 高 | 不支持 | 不支持 | 不可行 |
| 穿遮挡/暗处 | 不可行 | 部分(无光照可用) | 高(核心优势) | 独家优势 |
这个矩阵清晰地展示了为什么多传感器融合是必然趋势——每种传感器都有"强项行"和"空白行",只有组合使用才能填满所有格子。
19.9.2 贯穿三层的技术主线
虽然每层的具体方法不同,但有一条技术主线贯穿了所有层:跨模态监督(cross-modal supervision)。
- RF-Pose 用视觉骨骼检测器当"老师",训练射频信号当"学生"(Ch17 讲过的 teacher-student 范式)
- milliMap 用 LiDAR 地图当 ground truth 来训练 cGAN
- PanoRadar 用 LiDAR 点云来监督合成孔径 + 神经网络的输出
- mmCLIP 用 CLIP 的文本编码器当桥梁,对齐信号和语言
- 唯一的例外是 CartoRadar 和 mmNorm——它们不用任何"老师",纯靠物理和几何
这不是巧合。射频信号的底层物理特性(稀疏、多径、低分辨率)决定了单靠信号本身很难直接提取高层语义。必须借助其他模态——视觉、LiDAR、语言——提供的丰富监督信号来"教"射频模型。
这和 Ch08 的 CLIP 用文本监督视觉、Ch18 的 ImageBind 用视觉锚定其他五种模态,是同一个设计哲学——用信息丰富的模态来引导信息贫乏的模态学习。
可以把这个哲学抽象成一个"教学传递链":人类语言(最丰富的语义信号)→ 视觉(丰富的空间和语义信号)→ LiDAR(精确的几何信号)→ 射频(稀疏但全天候的信号)。知识沿着这条链从上到下"蒸馏"——文本教视觉(CLIP),视觉教 LiDAR(视觉-LiDAR 联合训练),视觉/LiDAR 教射频(RF-Pose / milliMap / PanoRadar),文本直接教射频(mmCLIP 跳过中间步骤)。mmCLIP 的"跳级"之所以成为可能,正是因为 CLIP 已经建立了文本-视觉的桥梁——mmCLIP 只需要再搭一座射频-文本的桥,就间接获得了和视觉的连接能力。
19.9.3 射频感知的演化趋势
纵观本章讨论的所有工作,可以提炼出三条演化趋势:
趋势一:从 2D 到 3D
早期工作(如 RF-Pose、milliMap)的输出是 2D 的——骨骼关键点的 2D 坐标、俯视图地图。新一代工作(PanoRadar、CartoRadar、mmNorm)全部在 3D 空间中工作——3D 点云、3D SLAM、3D 形状重建。这反映了具身 AI 的核心需求——机器人生活在 3D 世界中,2D 感知不够用。
这个趋势的推动力来自两方面:一是硬件的进步(4D 成像雷达能直接输出 3D 点云,而传统 FMCW 雷达只能输出距离-角度的 2D 切面),二是算法的进步(合成孔径技术和 3D 隐式表示如 SDF/RSDF 让从稀疏信号重建 3D 成为可能)。
趋势二:从有监督到零样本
RF-Pose 需要大量标注的视觉-射频配对数据;milliMap 需要 LiDAR 地图作为 ground truth。mmCLIP 则展示了零样本的可能性——训练时没见过的动作也能识别。这个趋势与整个 AI 领域从有监督向少样本/零样本迁移的大趋势一致(参考 CLIP → 零样本图像分类)。
值得注意的是,"零样本"并不意味着"零训练"。mmCLIP 仍然需要在一些已知动作类别上训练信号编码器——它学会的是"如何把雷达信号映射到 CLIP 的嵌入空间"这个通用能力,而不是"走路长什么样"这样的特定知识。就像一个学过法语和西班牙语的人可能零样本地理解一些意大利语——不是因为他不需要学习,而是因为他学到的语言规律可以迁移。
趋势三:从纯神经网络到物理方法的回归
有趣的是,最新的两篇工作(CartoRadar、mmNorm)都不使用神经网络。CartoRadar 用经典的 SLAM 框架 + 优化方法;mmNorm 用物理反射模型 + 数值求解。这不是说神经网络没用——而是说在某些场景下(特别是需要精确几何重建和可解释不确定性的场景),物理方法仍然有不可替代的优势。
这个"物理回归"现象在更广泛的 AI 领域也有体现。当数据驱动方法的精度遇到瓶颈时,研究者往往会回头利用领域知识(物理定律、几何约束)来突破。最好的系统通常是物理先验 + 数据驱动的结合——用物理约束缩小搜索空间,用数据驱动方法填补物理模型无法覆盖的部分。
趋势四:从实验室到真实场景
早期的射频感知工作大多在受控实验室环境中验证——干净的空间、没有杂波干扰、固定的雷达位置。而新一代工作开始挑战真实场景:CartoRadar 在真实办公楼中部署,RadarSLAM 在户外城市街道测试,mmCLIP 考虑了多人交叉场景。这个趋势至关重要,因为实验室结果和真实场景结果之间往往有巨大的差距——学术论文中 95% 的精度到了真实部署可能只剩 70%。这个差距的主要来源是:真实环境中有大量的多径干扰(信号被墙壁、家具多次反射)、动态遮挡(人在走动、门在开关)、和传感器退化(芯片发热导致噪声增加、天线被遮挡或弄脏)。
19.9.4 和 Part 1 的论文对比表
为了帮助快速查阅,这里给出本章所有主要论文的对比:
| 论文 | 会议 | 核心任务 | 传感器 | 方法类型 | 关键创新 | 核心数字 |
|---|---|---|---|---|---|---|
| RF-Pose (19.3) | CVPR 2018 | 穿墙人体姿态 | WiFi | 学习(CNN) | Teacher-student 跨模态 | 穿墙成功 |
| Person-in-WiFi (19.3) | ECCV 2020 | WiFi 人体姿态 | WiFi CSI | 学习(GAN) | CSI → 人体网格 | 3D mesh |
| milliMap (19.4) | MobiCom 2020 | mmWave 建图 | 单芯片 mmWave | 学习(cGAN) | 超分辨建图 | 接近 LiDAR |
| PanoRadar (19.5) | SIGCOMM 2024 | 360° 3D 点云 | 全向 mmWave | 学习 + 物理 | 合成孔径 + 神经网络 | LiDAR 级 |
| RadarSLAM (19.6) | BMVC 2020 | 室外雷达 SLAM | 扫描雷达 | 几何 | 特征提取 + 里程计 | 大尺度 |
| CartoRadar (19.6) | MobiCom 2025 | 室内 3D SLAM | 单芯片 mmWave | 几何 + 优化 | 不确定性传播 | 14.1cm ATE |
| mmCLIP (19.7) | SenSys 2024 | 零样本动作识别 | mmWave | 学习(对比) | CLIP 范式迁移到 RF | 76.4% 零样本 |
| mmNorm (19.8) | MobiSys 2025 | 穿遮挡 3D 重建 | mmWave | 纯物理 | 法向估计 + RSDF | F-Score 96% |
19.10 总结与反思
19.10.1 三个教训
回顾整个第 19 章,有三个值得深思的教训。这些教训不仅适用于射频感知,也是理解整个具身 AI 感知系统设计的通用原则。
教训一:跨模态监督是"模态穷人"的出路。
毫米波雷达和 WiFi 信号在物理层面的信息量远不如 LiDAR 或 RGB 相机。如果只看信号本身,你很难直接提取出"这是一个人在走路"或"前方 3 米有一堵墙"这样的高层信息。但通过跨模态监督——用视觉、LiDAR 或语言当老师——可以把这些高层知识"蒸馏"进射频模型。
这个教训的一般化形式是:当你的数据模态信息量不足时,不要试图从这个模态里硬挤信息,而是去找一个信息更丰富的"老师"模态来帮忙。 训练时用老师,部署时只需要学生——学生已经学会了老师传授的知识。这和 Ch17 的 sim-to-real 逻辑是一致的:训练时用仿真器(信息丰富、成本低),部署时在真实世界(信息有限、成本高)。
教训二:物理先验不是"落后",而是精度保障。
在 AI 领域,"端到端学习"往往被认为是更先进、更优雅的方法。但 CartoRadar(纯几何 SLAM,14.1cm 精度)和 mmNorm(纯物理 3D 重建,96% F-Score)提醒我们:在需要精确几何推理的任务上,物理方法仍然是最可靠的基础。
物理方法的优势不仅是精度——更重要的是可解释性和可预测性。CartoRadar 的不确定性估计之所以校准准确(< 5% 误差),是因为它的不确定性来源有明确的物理含义(scan matching 的配准残差、IMU 的漂移模型),而不是神经网络黑盒里的数字。mmNorm 的法向估计之所以能穿遮挡,是因为它利用了电磁波反射定律——这个定律在纸箱内外都成立。
最好的方案往往是"物理 + 学习"的结合:用物理约束建立骨架,用学习方法填充细节。PanoRadar 就是一个例子——它用合成孔径的物理原理做粗粒度增强,用神经网络做精细化优化。
在机器人学中,这种"物理 + 学习"的结合有时被称为"physics-informed learning"或"model-based learning"。其核心思想是:与其让神经网络从零开始学习所有东西(包括已知的物理定律),不如把物理定律直接"硬编码"进网络的结构或损失函数中,让网络只学习物理模型无法覆盖的部分。这样做既能减少训练数据的需求(物理约束提供了强大的归纳偏置),又能提高泛化性(物理定律在任何环境中都成立)。
教训三:硬件成本决定了技术的影响力。
PanoRadar 的效果接近 LiDAR,但 LiDAR 一颗 5000-50000 元,mmWave 芯片一颗 15-30 元。mmNorm 用 $200 的雷达达到了 96% 的 3D 重建精度。CartoRadar 的 Best Artifact Award 包含的一个潜台词是:任何实验室都可以用 $30 的芯片复现这个工作。
对具身 AI 来说,这意味着射频感知有可能让每一台家用机器人都具备穿墙感知、全天候工作、隐私友好的能力——不需要为每台机器人配一颗昂贵的 LiDAR。成本从"几万元"降到"几十元",这不是量变,是质变。
打一个比方:手机摄像头在 2010 年左右从专业设备(数千元)变成了每部手机的标配(几元成本)。这个成本降低不是让"拍照"变了——而是让"拍照"从专业行为变成了日常行为,催生了 Instagram、短视频、AR 滤镜等全新的应用生态。mmWave 芯片对射频感知的意义类似——当成本低到可以"随便装"时,会涌现出现在我们想象不到的应用场景。
踩坑提醒:本章讨论的论文虽然精彩,但读者需要意识到"论文精度"和"产品精度"之间的鸿沟。学术论文通常在精心控制的条件下测试——固定的房间、特定的实验对象、干净的信号环境。在真实产品中,你会遇到多用户干扰(多台雷达互相串扰)、长期漂移(芯片老化导致信号特性变化)、极端环境(温度过高或过低导致天线特性偏移)等论文中很少讨论的问题。从论文到产品通常需要 2-5 年的工程迭代,这也是为什么学术界已经有大量优秀成果,但市场上成熟的 RF 感知产品仍然有限。
19.10.2 射频感知对具身 AI 的三重意义
射频感知为具身 AI 带来了三个其他感知模态无法替代的价值:
全天候感知。 视觉在黑暗中失效,LiDAR 在浓雾/烟尘中失效,声音在嘈杂环境中失效。射频信号不受这些限制。对于需要在灾难现场、无光仓库、浓烟建筑中工作的机器人来说,射频是唯一可靠的远距离感知手段。具体来说,毫米波在雨中(衰减约 1-2 dB/km)和雾中(衰减约 0.5 dB/km)的性能下降微乎其微,而 LiDAR 在同等条件下可能衰减 10-30 dB/km。这就是为什么自动驾驶领域的雷达传感器被称为"全天候眼睛"——它是唯一在暴雨、浓雾、沙尘暴中仍然可靠的远距离感知手段。
隐私友好。 如前所述(mmCLIP 的讨论),射频信号不包含视觉可辨识的个人信息。随着家用机器人的普及,隐私问题会变得越来越尖锐。射频感知可能是解决"机器人需要感知用户活动但不应侵犯隐私"这个矛盾的关键技术路径。值得注意的是,隐私友好不仅仅是技术属性,更是法规合规的需要。欧盟的 GDPR 和中国的《个人信息保护法》都对视觉监控有严格限制,但对射频感知的规制尚不明确。这意味着射频感知设备在部署时面临的法律障碍可能远小于摄像头。
低成本。 一颗 mmWave 芯片的成本是一颗 LiDAR 的千分之一到百分之一。在大规模部署场景(每栋建筑数十台机器人、每个房间一个感知节点)中,成本是决定性因素。射频感知让"感知基础设施"的概念变得经济可行。更具体地说:TI IWR1443(本章多篇论文使用的芯片)的量产成本约 $15-30,Velodyne Puck LiDAR 约 $4000-8000,Intel RealSense D435 深度相机约 $300。当你需要部署 100 个感知节点时,$30 × 100 = $3000 vs $4000 × 100 = $400,000——这个成本差距决定了哪些方案在工程上是可行的。
19.10.3 选择指南:RF vs 视觉 vs LiDAR
面对一个具体的感知任务,应该选择哪种传感器?这里给出一个决策框架:
| 场景需求 | 推荐传感器 | 原因 |
|---|---|---|
| 需要颜色/纹理识别 | 视觉(RGB 相机) | RF 和 LiDAR 都不提供颜色信息 |
| 精确几何重建(室外大尺度) | LiDAR | 精度最高,不受光照影响 |
| 暗处/浓雾/穿墙 | RF(mmWave/WiFi) | 唯一能在这些条件下工作的远距感知 |
| 隐私敏感环境 | RF | 天然不含视觉可辨识信息 |
| 成本极度敏感 | RF | 芯片级成本,一颗 $15-30 |
| 精确几何 + 全天候 | RF + LiDAR 融合 | RF 补偿 LiDAR 的退化场景 |
| 语义理解 + 全天候 | RF + 视觉融合 | RF 提供穿墙/暗处骨架,视觉提供语义 |
结论是:没有单一传感器能满足所有需求。 成熟的具身 AI 系统必然是多传感器融合的——这正是 Ch18 讨论的多模态生态的核心命题。射频感知不是要取代视觉或 LiDAR,而是要填补它们的盲区,让机器人的感知系统从"晴天可用"变成"全天候全场景可用"。
在实际工程决策中,还要考虑一些表格中没有列出的"软因素":
开发生态成熟度。 视觉领域有 OpenCV、TensorFlow、PyTorch 等成熟工具链,从采集标注到训练部署都有标准化方案。LiDAR 领域有 PCL(Point Cloud Library)和 ROS 的良好支持。射频感知领域的工具链还很初级——大多数研究者需要自己写信号处理代码、自己设计采集方案、自己标注数据。这意味着用射频方案做产品的工程成本更高,尽管硬件成本更低。
人才储备。 市场上有大量的计算机视觉工程师,但懂毫米波信号处理的人才相对稀缺。选择射频方案意味着需要同时具备通信/雷达信号处理和机器学习两方面专长的团队——这种交叉人才是稀缺资源。
踩坑提醒:多传感器融合不是简单地把多个传感器的数据拼在一起。真正有效的融合需要解决几个关键问题:时间同步(不同传感器的采样频率不同,如何对齐时间戳)、空间标定(不同传感器安装在不同位置,如何统一坐标系)、置信度融合(当两个传感器给出矛盾的结果时怎么办)。CartoRadar 的不确定性量化正是为第三个问题提供了基础——有了不确定性信息,融合系统可以动态地给不同传感器赋予不同权重。
通向下一章
第 19 章让我们看到,通过射频信号,机器人可以"看见"不可见的世界——穿墙看人、在黑暗中建图、透过遮挡物重建 3D 形状。这种能力拓展了具身 AI 感知的边界:从"可见光能照到的地方"扩展到了"电磁波能到达的地方"。
但还有一种无处不在、信息量极其丰富的物理信号,我们还没有讨论——声音。
想一想日常生活中声音给你提供的信息:
你听到金属碰撞声——你知道有人放下了一把钥匙,而不是一块布。声音告诉你材质。你听到液体倒入杯子的声音越来越高——你知道水位在升高,快倒满了。声音告诉你状态变化。你听到有人说"把那个红色的杯子递给我"——你知道下一步要做什么。声音告诉你任务指令。你听到左边传来急刹车的声音——你立刻转头看。声音告诉你危险方向。
一个只有"眼睛"和"雷达"但没有"耳朵"的机器人,会错过大量这些丰富的、有时甚至是关键的环境信息。
下一章将探索听觉智能——Whisper 如何让机器人理解人类语音,AudioLM 如何让机器人预测声音序列,Proactive Hearing 如何让机器人在嘈杂环境中主动聚焦特定声源。从"看见看不见的"到"听见听不到的",机器人的感知能力又将迎来一次跃升。
射频和听觉有一个有趣的共同点:它们都是"波动"的感知——一个是电磁波,一个是声波。而且它们都有视觉不具备的穿透能力——声音可以绕过障碍物传播(你能听到墙后面的人说话),射频可以穿透障碍物传播(如本章所述)。结合 RF + 听觉 + 视觉的多模态感知机器人,可能是未来具身 AI 的最终形态。
从技术方法论的角度看,本章的"跨模态监督"思想在听觉章节中会以新的形式再次出现。就像 mmCLIP 用文本监督射频信号一样,听觉领域也在探索用视觉监督声音("看到敲击动作"→"学会预测敲击声")。这种"用已知模态教未知模态"的范式正在成为具身 AI 感知的通用方法论——理解这一点,你在读下一章时就不会觉得那些方法"凭空冒出来",而是能看到它们和本章的内在联系。
另外,本章频繁引用的 MIT Wireless@MIT 团队(RF-Pose → PanoRadar → CartoRadar → mmNorm)是射频感知领域最活跃的研究组之一。追踪这个团队的后续工作——特别是将射频感知与大语言模型结合的方向——可以帮助你预判这个领域接下来 2-3 年的发展趋势。
前置章节:Ch18: 多模态生态——ImageBind / AnyMAL / 3DShape2VecSet 后续章节:Ch20: 听觉智能——Whisper / AudioLM / Proactive Hearing 返回目录
本章涉及论文 14 篇
点击查看论文笔记全文,标有 ● 的为已读。