环境变化会导致锚点漂移
别名: 锚点漂移 · 环境变化 · 位姿滑移
概念解释
便签还在,但已经从门框滑到了墙上半掌远的地方。房间没被拆掉,只是灯换了、椅子挪了、有人走过。锚点漂移(anchor drift)是环境一变,当初存下的签名和当前画面对不齐,位姿估计被一点点改写,内容跟着滑。它看起来像物体自己在走,其实是房间的可识别结构在跟踪器里换了形状。
漂移不是一次丢失。丢失是找不到;漂移是找到了,但找到的位置在慢慢错。
机制
视觉地图靠同一批特征之间的相对几何来钉住锚点。光照一变,旧角点变弱、新高光冒出来,优化器会用当前观测去改地图点的位置。家具挪了,一部分特征真的换了地方,锁在旧相对关系上的锚点就被拖着走。Microsoft 对坐标系统的说明里有一层杠杆:两点之间的微小修正,会让按旧距离刚体放置的远物明显偏开——锚点之间也会互相漂,这正是它们和单一刚体坐标系的差别。
人眼对「贴着门框」非常敏感,对「地图在更新」无感。所以几厘米的滑移就会被读成内容坏了,而系统日志里可能还显示跟踪正常。
怎么研究
在可控房间里做环境扰动:放置后分别改变光照(开灯 / 拉帘)、移动一件不承载锚点的家具、让人在场景里走,间隔固定时间测锚点相对真实标记的误差。对照是完全静止、光照锁定的同一房间。HoloLens 文档把动态环境和随时间改变列为跟踪失败的成因,实验要把「失败」和「仍跟踪但在漂」分开记。
自变量:光照变化幅度、被移动物体是否靠近锚点、经过的时间。 因变量:平移漂移量、偏航变化、用户首次注意到「它挪了」的时间。
不要把一次会话内的平滑跟踪抖动和跨扰动的系统滑移混成同一个数。
边界
标定过的实验室、无人进出、灯光恒定,漂移可以小到任务感觉不到。短时间、锚点就在眼前的操作,IMU 和局部特征还撑得住,滑移来不及积累。标记点(二维码)不靠自然特征,对光照和旁侧家具不那么敏感,但标记本身被挪走就不是漂移而是目标没了。极大的空旷空间里,远处锚点的杠杆更明显,近处桌面锚点则可能仍稳。把「环境变了所以要作废」写成产品策略,已经超出漂移现象本身。
怎么落地
- 让用户能把漂了的物体挪回真实参照(门框、桌角),不要只提供删除。
- 跟踪置信度下降时露出状态,而不是等物体已经离开原位才无声继续。
- 不要用一颗锚点跨很大距离去撑一排物体;近处各自锚定,避免杠杆把远端一并拖走。
- 验证:贴在插座旁,开灯、挪开旁边的椅子、等人走过,再量物体到插座的距离。明显偏离且跟踪仍显示正常,就是漂移而不是丢失。