問題診斷和報告
本章主要描述構建AR應用時可能遇到的問題、主要的分析方法,以及報告問題所需要收集的資訊和聯繫途徑。
AR 場景中問題分析的挑戰
在 AR 場景中的問題分析,存在一些獨特的挑戰。
輸入的不確定性
在傳統應用中,輸入通常是確定的點擊或鍵盤事件。而在 AR 中,輸入源自變動的物理環境,這帶來了極大的分析難度。AR 應用需要結合物理環境來使用,但開發和測試時,在物理環境中無法每次獲得相同的輸入,即使按照同一條路線行進,取得的相機圖像、加速度計、陀螺儀等感測器的數據都可能產生一些變化,而這對跟踪結果的影響可能是巨大的。
EasyAR 中提供了 EIF 檔案的錄製和回放功能,可以在一定程度上緩解輸入的不確定性,但由於演算法的不確定性,最終的跟踪結果本質上還是不確定的。同時,EIF 錄製數據覆蓋不全、光照變化、行人或車輛造成的動態遮擋等,也會影響實際使用時的跟踪品質。
演算法的不確定性
AR 的核心演算法是一些視覺演算法,例如 SLAM(即時定位與地圖構建)。這些演算法本質上是概率性的而非確定性的。
當輸入的相機圖像缺乏顯著的特徵時,演算法可能使用歷史位置姿態和加速度計、陀螺儀等感測器數據進行預測,預測的位置和姿態的結果會隨著時間推移而累積,產生飄移。而每次的預測結果和數據的傳入時機、設備的溫度、CPU 的頻率、網路傳輸速度等外界因素有關,存在動態變化,累積下來即使是同樣的輸入,多次運行的結果也可能偏差很大。
不同問題的分析方法
對於不同的問題,可能需要不同的分析方法。
日誌
對於一些程式運行不正常的情況,例如黑屏、無法正常定位、無法正常跟踪的情況,最基本的方法是檢視日誌,檢查其中是否有錯誤資訊。EasyAR 中產生的日誌,均會使用特定的標籤,便於識別。
崩潰
有時候程式會發生崩潰,崩潰的位置可能在庫的程式碼中,也可能在程式自己的程式碼中。崩潰發生的原因有可能是由於程式本身的問題,也可能是庫中存在問題。
抖動、跳動等視覺異常
由於感測器數據精度或者演算法適配原因,可能會發生定位抖動或跳動。此時應嘗試使用不同設備重現此問題,並截圖、錄屏和錄製 EIF 檔案。
平台專用指南
問題診斷和報告與平台緊密相關。請根據您的目標平台,參考以下指南進行開發: