R
Member
视觉 SLAM 在室内跑得好好的,一出门经过玻璃幕墙、或者从暗走廊进到亮大厅,定位就丢了。光照突变是视觉 SLAM 最常见的丢定位原因之一,根子在特征点上。
一、先理解为什么丢。光照一变,图像整体亮度跳变,上一帧提取的特征点在下一帧对不上,匹配数量断崖式下跌。更糟的是自动曝光有个调整过程,这几帧图像要么过曝一片白,要么欠曝一片黑,特征点基本提取不出来。
二、曝光策略先行。把相机设成固定曝光加固定增益,牺牲一点动态范围,换来帧间亮度稳定,比自动曝光全程漂移要好得多。进出亮暗交界处时,提前在交界两侧各留一段重叠轨迹,让系统有足够帧完成重定位,而不是一头扎进强光里。
三、特征点层面加固。光照鲁棒的描述子比单纯增加特征点数量管用;同时把特征点均匀化,别让所有特征点都挤在亮窗那一侧,暗区没有特征点,位姿一算就飘。IMU 紧耦合在这里是救命稻草:视觉丢的几帧里,IMU 预积分能把位姿撑过去,等曝光稳定、特征点恢复后再收敛回来。
四、丢了之后怎么办。重定位别只依赖词袋模型回环,位置先验、上一段轨迹的外推、甚至人工给定的初始位姿都可以作为候选。现场调试时,把光照突变那几秒的图像存下来离线复现,比在现场反复跑车高效得多。
你们的视觉 SLAM 有没有在光照突变处丢过定位?最后是靠曝光、特征点还是 IMU 兜底解决的?
一、先理解为什么丢。光照一变,图像整体亮度跳变,上一帧提取的特征点在下一帧对不上,匹配数量断崖式下跌。更糟的是自动曝光有个调整过程,这几帧图像要么过曝一片白,要么欠曝一片黑,特征点基本提取不出来。
二、曝光策略先行。把相机设成固定曝光加固定增益,牺牲一点动态范围,换来帧间亮度稳定,比自动曝光全程漂移要好得多。进出亮暗交界处时,提前在交界两侧各留一段重叠轨迹,让系统有足够帧完成重定位,而不是一头扎进强光里。
三、特征点层面加固。光照鲁棒的描述子比单纯增加特征点数量管用;同时把特征点均匀化,别让所有特征点都挤在亮窗那一侧,暗区没有特征点,位姿一算就飘。IMU 紧耦合在这里是救命稻草:视觉丢的几帧里,IMU 预积分能把位姿撑过去,等曝光稳定、特征点恢复后再收敛回来。
四、丢了之后怎么办。重定位别只依赖词袋模型回环,位置先验、上一段轨迹的外推、甚至人工给定的初始位姿都可以作为候选。现场调试时,把光照突变那几秒的图像存下来离线复现,比在现场反复跑车高效得多。
你们的视觉 SLAM 有没有在光照突变处丢过定位?最后是靠曝光、特征点还是 IMU 兜底解决的?