1. 程式人生 > >ARCore之路-ARCore影象識別

ARCore之路-ARCore影象識別

  影象識別技術正在突飛猛進,如人臉識別、車牌識別已經大規模商業化,通用的AR SDK也大量湧現,例如國外的Vuforia、ARKit、ARCore、ARToolkit、Wikitude,和國內的HiAR SDK、Void AR、EasyAR等。我們這裡只對ARCore影象識別進行學習。

  ARCore影象識別技術也是主要針對2D影象識別,也就是平面圖像的識別與追蹤技術,並與IMU資料進行融合,提供影象追蹤能力。藉助 ARCore 中的增強影象功能,可以構建能在真實環境中響應 2D 影象(如海報或產品包裝)的 AR 應用, 通過提供一組參考影象,在攝像頭視野中檢測到影象時,ARCore 會跟蹤這些影象的位置與姿態。從目前公佈的技術指標來看,ARCore影象識別技術還有提高的空間,特別是參考影象數、大傾角情況下的識別與跟蹤、運動影象跟蹤等等。

Cookie

一、ARCore影象識別技術指標

  目前,ARCore影象識別的主要技術指標如下:

  • 每個影象資料庫可以儲存最多 1000 張參考影象的特徵點資訊。
  • ARCore 可以在環境中同步跟蹤最多 20 張影象,但無法跟蹤同一影象的多個例項。
  • 環境中的物理影象必須至少為 15cm x 15cm 且必須平坦(例如,不能起皺或卷繞在瓶子上)。
  • 在物理影象被跟蹤後,ARCore 會提供對位置、方向和物理大小的估算。 隨著 ARCore 收集的資料增多,這些估算會持續優化。
  • ARCore 無法跟蹤移動的影象,不過它可以在影象停止移動後繼續跟蹤。
  • 所有跟蹤都在裝置上完成,所以無需網路連線。 可以在裝置端或通過網路更新參考影象,無需應用更新。

二、使用ARCore影象識別的注意事項

(一)、有關參考影象選擇

  • 增強影象支援 PNG 和 JPEG 檔案格式。 對於 JPEG 檔案,為了獲得最佳效能,請避免過度壓縮。
  • 檢測僅基於高對比度的點,所以彩色和黑白影象都會被檢測到,無論使用彩色還是黑白參考影象。
  • 影象的解析度至少應為 300 x 300 畫素。
  • 使用高解析度的影象不會提升效能。
  • 避免使用具有稀疏特徵的影象。
  • 避免使用具有重複特徵的影象。肉眼很難分辨高質量的參考影象,使用 ARCoreIMG 工具可以獲取每個影象的得分(0 - 100),Google建議得分至少為 75。ARCoreIMG 是一個命令列工具,它可以獲取一組參考影象並生成影象資料庫檔案,此工具還可以讓您檢查參考影象的質量。 這個工具在 ARCore SDK for Android 中提供,且僅適用於 Android 和 Android NDK 開發者。 它內置於 Unity SDK 和 ARCore Unreal 外掛中。不過,我們已經把這個工作提取出來了,並上傳到
    [這裡]
    ,讀者可以下載使用。在Windows下檢查參考影象質量的命令示例為:   arcoreimg.exe eval-img dog.png 下面是兩個示例影象:
Cookie

  從上面的參考影象選擇可以看出,ARCore影象識別對影象要求還很高,要求越高說明這種技術使用的侷限性就越大,或者說技術還不夠成熟,而且1000的引數影象總量對一些應用來說可能還遠遠不夠,希望技術的發展能突破這些條條框框的限制。

(二)、有關影象資料庫建立

  • 資料庫會儲存參考影象的壓縮表示。 每個影象佔據大約 6KB。
  • ARCore1.5支援執行時新增參考影象,執行時,將一個影象新增到資料庫需要大概 30ms。 儘量在工作執行緒上新增影象,以免阻塞介面執行緒,或者如果可以,使用 arcoreimg 工具在編譯時新增影象。
  • 如果可能,最好先指定影象的預期物理大小。 此元資料可以提升跟蹤效能,特別是對於較大的物理影象(超過 75cm)。
  • 不要在資料庫中儲存未使用的影象,因為這會對系統性能產生一定的影響。

(三)、有關跟蹤優化

  • 物理影象必須佔據攝像頭影象的 40%。需要及時提示使用者將物理影象放在他們的攝像頭取景範圍內。
  • 在 ARCore 初次檢測到影象時,如果未指定預期的物理大小,影象的跟蹤狀態將為暫停。 這意味著,ARCore 已識別出影象,但未收集到足夠的資料來估算影象在 3D 空間中的位置。 如果影象的狀態不是正在跟蹤,那麼開發者不應使用影象的姿態和大小估算。

參考文獻