📅 2026-04-16🤖 claude-opus-4
LOWESS、DBSCAN 与轨迹重建
1. 为什么要建立轨迹
移动场景的求解目标本身就是轨迹:
静态:求一个点 x → "目标在哪"
移动:求一条线 x(1)...x(T) → "目标经过哪" → 这条线就是轨迹
不能每帧独立求位置——很多时刻好心人太少,单帧解不了。建立轨迹让相邻时刻互相帮忙:
不建轨迹: x(1) ? x(3) ? ← t=2、t=4 观测不够,无解
建轨迹: x(1)—x(2)—x(3)—x(4) ← 运动约束补上缺失信息
"建立轨迹"不是额外的事,它就是移动定位本身。
2. LOWESS(局部加权回归平滑)
2.1 是什么
LOWESS (LOcally WEighted Scatterplot Smoothing):一种通用的非参数平滑方法,不是专门做轨迹重建的。
给一堆带噪声的 (x, y) 散点,画一条平滑曲线穿过去。对每个点 t₀,只用附近的点做加权最小二乘拟合(近的权重大,远的权重小),滑动扫过整条时间线得到平滑结果。
2.2 什么叫"非参数"
- 参数方法:假设数据服从固定形式(如 y=ax+b),只估计几个参数
- 非参数方法:不假设数据形式,让数据自己"说话",每个局部区域单独看附近数据来平滑
"非参数"不是"没有参数",而是不预设数据的全局函数形式。
2.3 用在轨迹上
好心人报告散乱的位置估计 → LOWESS 平滑 → 重建出连续轨迹
LOWESS 不知道也不关心数据是什么——股票价格、温度、轨迹坐标对它都一样。用在轨迹上只是把时间当 x、位置当 y 平滑一下。
2.4 优劣势
- 优势:实现极简(
statsmodels.nonparametric.lowess几行代码),适合做快速 baseline - 劣势:完全没利用轨迹的物理特性(速度约束、运动方程等),精度不如图优化等专用方法
3. DBSCAN(密度聚类做热点推断)
3.1 是什么
DBSCAN (Density-Based Spatial Clustering of Applications with Noise):基于密度的聚类算法。
输入:一堆位置点
↓
找到密集区域 = 簇(cluster)
稀疏的点 = 噪声(丢弃)
· · ·
· · · · ← 簇1(热点)
· · ·
· ← 噪声
· ·
· · · ← 簇2(热点)
· ·
3.2 用在定位上
大量好心人报告的估计位置 → DBSCAN 聚类 → 密集区域 = 目标可能在此(热点)
直觉:如果很多好心人的观测都指向同一片区域,目标大概率在那里。离群估计可能是异常值,DBSCAN 自动标记为噪声。
4. 两者配合
静态场景:
多个好心人的单次位置估计 → DBSCAN → 找到最密集的簇 → 簇中心 ≈ 目标位置
移动场景:
时间序列的位置估计 → LOWESS 平滑 → 重建轨迹
或:每个时间窗口内 → DBSCAN 找热点 → 热点序列连成轨迹
5. 与图优化的对比
这两个方法都是预处理/后处理手段,不是核心定位算法:
| 对比 | LOWESS / DBSCAN | 图优化 |
|---|---|---|
| 输入 | 已有的粗位置估计 | 原始 RSSI |
| 利用物理模型 | ❌ | ✅(路径损耗、运动方程) |
| 信息利用效率 | 低(先独立估计再平滑) | 高(联合求解) |
| 实现复杂度 | 极低(几行代码) | 中高 |
| 适合角色 | 快速 baseline | 核心方法 |