诊断与修复:内容抖动
本篇针对平面图像跟踪中虚拟内容出现抖动、飘移或跳变的问题,帮助开发者区分正常与异常抖动,并提供系统性排查与改善方案。
区分“正常抖动”
理解以下情况有助于避免过度优化或误判问题:
轻微位移(正常)
- 表现:虚拟内容有几个像素的轻微浮动或缓慢旋转。
- 场景:
- 光照不均匀(如室内有光影变化)
- 摄像头自动对焦或曝光调整时
- 设备轻微手抖(无三脚架固定)
- 预期:此类场景很难避免,无需特别处理。
短暂抖动(正常)
- 表现:快速移动设备或目标图像时,虚拟内容出现0.5~1秒的抖动,随后稳定。
- 场景:
- 从静态到动态的切换过程
- 目标图像进入视野的初始识别阶段
- 预期:属于算法收敛过程,短时内恢复即正常。
边缘抖动(正常)
- 表现:当图像处于摄像头视野边缘或接近丢失时,虚拟内容轻微跳动。
- 场景:
- 图像被部分遮挡(如手指遮住边缘)
- 摄像头视野外推时
- 预期:属于跟踪信息部分缺失导致的算法边界,建议引导用户保持图像在视野中心。
异常抖动的常见原因与改善
以下抖动属于问题,需针对性解决:
目标图像质量不佳
现象:虚拟内容持续高频抖动,无规律跳变或频繁消失。
排查方法:
- 识别度检测:使用 目标图检测工具,检查识别度。
改善建议:
- 优化图像:
- 增加局部对比度。
- 避免纯色区域,添加细微纹理。
- 避免重复性纹理。
硬件性能不足
现象:低端设备上相比中高端设备抖动明显,或更易丢失。
排查方法:
- 检查CPU占用:使用 Profiler 工具监测应用的 CPU 占用率。
改善建议:
- 启用性能模式:将
ImageTrackerMode设为PreferPerformance,牺牲少量精度换取流畅度。 - 减少跟踪数量:如果启用了多目标同时跟踪,适当减少
Simultaneous Number。 - 分平台适配:为低端设备提供简化版场景。
环境干扰
现象:在特定光照或背景下抖动,更换环境后正常。
排查方法:
- 光照测试:在均匀光照(如阴天)与强光/阴影对比环境下分别测试。
- 背景干扰:检查摄像头背景是否过于杂乱(如多人走动)。
- 反射干扰:目标图像的物理实体表面是否反光(如玻璃、金属)。
改善建议:
- 控制光照:建议用户在光照均匀的环境中使用,避免直射光或强阴影。
- 物理优化:若图像在反光表面,可覆盖一层哑光膜或使用打印的方式做成实体。
内容局部抖动明显
现象:虚拟内容场景较大,离目标图像的物理实体较近处的虚拟内容抖动较小,但远离目标实体处的虚拟内容抖动明显。
排查方法:
- 缩小内容:将场景中的虚拟内容的
Scale统一调小,再次同环境同条件下测试。
改善建议:
- 适当调整内容:过大的虚拟内容在远离目标实体的方向上存在角度误差的放大效应(如 0.1° 的角度误差在近处表现为 0.1cm 的虚实对齐误差,但在远处被放大为 10cm),您在设计虚拟内容时需要适当调整虚拟内容相较于目标图像的物理尺寸的大小。
总结与最佳实践
内容抖动需区分正常抖动与异常抖动。正常抖动(轻微位移、短暂恢复等)无需特别处理;异常抖动(高频跳变、经常丢失等)需要额外关注,这类抖动会影响用户体验,建议按顺序排查:
- 检查目标图像质量;
- 确认是否是特定设备的性能导致的独有现象;
- 排除环境因素的干扰(如光照、动态场景、反光表面等);
- 虚拟内容本身是否过大。
若问题持续,可通过 EasyAR 官方论坛或技术支持提供日志文件、录屏等进一步分析。