診斷與修復:內容抖動
本篇針對平面圖像追蹤中虛擬內容出現抖動、飄移或跳變的問題,幫助開發者區分正常與異常抖動,並提供系統性排查與改善方案。
區分「正常抖動」
理解以下情況有助於避免過度優化或誤判問題:
輕微位移(正常)
- 表現:虛擬內容有幾個像素的輕微浮動或緩慢旋轉。
- 場景:
- 光照不均勻(如室內有光影變化)
- 攝像頭自動對焦或曝光調整時
- 設備輕微手抖(無三腳架固定)
- 預期:此類場景很難避免,無需特別處理。
短暫抖動(正常)
- 表現:快速移動設備或目標圖像時,虛擬內容出現0.5~1秒的抖動,隨後穩定。
- 場景:
- 從靜態到動態的切換過程
- 目標圖像進入視野的初始識別階段
- 預期:屬於算法收斂過程,短時內恢復即正常。
邊緣抖動(正常)
- 表現:當圖像處於攝像頭視野邊緣或接近丟失時,虛擬內容輕微跳動。
- 場景:
- 圖像被部分遮擋(如手指遮住邊緣)
- 攝像頭視野外推時
- 預期:屬於追蹤信息部分缺失導致的算法邊界,建議引導用戶保持圖像在視野中心。
異常抖動的常見原因與改善
以下抖動屬於問題,需針對性解決:
目標圖像質量不佳
現象:虛擬內容持續高頻抖動,無規律跳變或頻繁消失。
排查方法:
- 識別度檢測:使用 目標圖檢測工具,檢查識別度。
改善建議:
- 優化圖像:
- 增加局部對比度。
- 避免純色區域,添加細微紋理。
- 避免重複性紋理。
硬件性能不足
現象:低端設備上相比中高端設備抖動明顯,或更易丟失。
排查方法:
- 檢查CPU佔用:使用 Profiler 工具監測應用的 CPU 佔用率。
改善建議:
- 啟用性能模式:將
ImageTrackerMode設為PreferPerformance,犧牲少量精度換取流暢度。 - 減少追蹤數量:如果啟用了多目標同時追蹤,適當減少
Simultaneous Number。 - 分平台適配:為低端設備提供簡化版場景。
環境干擾
現象:在特定光照或背景下抖動,更換環境後正常。
排查方法:
- 光照測試:在均勻光照(如陰天)與強光/陰影對比環境下分別測試。
- 背景干擾:檢查攝像頭背景是否過於雜亂(如多人走動)。
- 反射干擾:目標圖像的物理實體表面是否反光(如玻璃、金屬)。
改善建議:
- 控制光照:建議用戶在光照均勻的環境中使用,避免直射光或強陰影。
- 物理優化:若圖像在反光表面,可覆蓋一層啞光膜或使用打印的方式做成實體。
內容局部抖動明顯
現象:虛擬內容場景較大,離目標圖像的物理實體較近處的虛擬內容抖動較小,但遠離目標實體處的虛擬內容抖動明顯。
排查方法:
- 縮小內容:將場景中的虛擬內容的
Scale統一調小,再次同環境同條件下測試。
改善建議:
- 適當調整內容:過大的虛擬內容在遠離目標實體的方向上存在角度誤差的放大效應(如 0.1° 的角度誤差在近處表現為 0.1cm 的虛實對齊誤差,但在遠處被放大為 10cm),您在設計虛擬內容時需要適當調整虛擬內容相較於目標圖像的物理尺寸的大小。
總結與最佳實踐
內容抖動需區分正常抖動與異常抖動。正常抖動(輕微位移、短暫恢復等)無需特別處理;異常抖動(高頻跳變、經常丟失等)需要額外關注,這類抖動會影響用戶體驗,建議按順序排查:
- 檢查目標圖像質量;
- 確認是否是特定設備的性能導致的獨有現象;
- 排除環境因素的干擾(如光照、動態場景、反光表面等);
- 虛擬內容本身是否過大。
若問題持續,可透過 EasyAR 官方論壇或技術支援提供日誌文件、錄屏等進一步分析。