平台專屬指南
Android (Kotlin/Java)
Android NDK (C)
Unity (AR 基礎)
Unreal Engine
ARCore 中的 Augmented Images API 可讓您建構可偵測 擴增使用者環境中的 2D 圖片,例如海報或產品 。
請提供一組參考圖片。ARCore 運用電腦視覺演算法 從每張圖片的灰階資訊中擷取特徵 在一或多個擴增圖片資料庫中呈現這些特徵的示意圖。
在執行階段,ARCore 會在使用者裝置內的平面上搜尋這些功能 環境。讓 ARCore 能偵測世界各地的這些圖片,然後進行評估 這些資訊包括廣告的位置、方向和大小 (如果未提供這些資訊的話)。
功能
ARCore 可同時追蹤最多 20 張圖片。ARCore 不會同時運作 偵測或追蹤同一個映像檔的多個例項。
每個擴增圖片資料庫最多可儲存 1,000 個參考資訊 所以映像檔較小資料庫數量沒有限制,但只有一個資料庫 或任一時間點的狀態
圖片可在執行階段新增至擴增圖片資料庫,直到 每個資料庫最多 1,000 個映像檔。可下載先前建立 存取多個資料庫
新增圖片時,可以提供圖片的實際大小 。這麼做可提升圖片偵測效能。
如未提供實體大小,ARCore 會估算並修正這個大小
如果提供實體尺寸,ARCore 會使用所提供的大小和預估值 圖片的位置和方向,同時忽略兩者之間的任何差異 明顯或實際大小,以及提供的實體大小。
ARCore 可回應並追蹤符合以下條件的圖片:
固定位置的圖片,例如掛在牆上的印刷,或是 放在桌上的雜誌
移動圖片,例如行經公車上的廣告或平面圖片 物件。
ARCore 開始追蹤圖片後,就會提供圖片位置的預估值 以及螢幕方向和方向ARCore 會持續修正這些預估值 收集更多資料
偵測到圖像後,ARCore 會繼續執行「追蹤」作業圖片的位置 螢幕方向 (即使圖片暫時移出相機檢視畫面) 因為使用者移動了裝置。在這種情況下,ARCore 會假設 圖片的位置和方向為靜態,且圖片本身並非 移動。
所有追蹤作業都是在裝置上進行。不需要網路連線即可偵測 追蹤圖片及追蹤圖片
需求條件
圖片必須符合下列規定:
請至少填滿 25% 的相機影格,即可開始偵測。
持平(例如,不要被皺摺或包圍在瓶子裡)。
請清楚拍下攝影機的畫面。不應遮蓋或查看部分內容 拍攝到極度傾斜角,或是拍攝時因為 動態模糊。
CPU 使用率和效能注意事項
視已啟用的 ARCore 功能而定,啟用擴增功能 圖片可能會增加 ARCore 的 CPU 使用率。建議您停用所有未使用的 功能在某些時候都不需要這些功能這將 為您的應用程式提供額外的 CPU 週期,並改善熱能 效能和電池續航力
如需詳細資訊,請參閲 效能注意事項
最佳做法
選取參考圖片的訣竅
- 圖片解析度不得低於 300 x 300 像素。使用圖片 高解析度相片並無法改善效能。
- 參考圖片可以是 PNG 或 JPEG 檔案格式。
- 不使用顏色資訊。顏色和相等的灰階圖片 可做為參考圖片,或供使用者在執行階段使用
- 避免使用過度壓縮的圖片,以免干擾功能 擷取。
- 避免使用含有大量幾何圖形特徵的圖片,或 部分功能 (例如條碼、QR code、標誌和其他線條圖片) 的偵測和追蹤效能不佳。
- 避免使用重複圖案的圖片,因為這也可能會導致 偵測及追蹤
使用 ARCore SDK 中的
arcoreimg
工具取得品質分數 每張圖片的0
至100
之間建議品質分數為 至少 75。我們來看看下面兩個範例:範例圖片 1 範例圖片 2 分數: 0
分數: 100
包含重複的幾何圖形特徵 足夠的解析度;含有許多
建立映像檔資料庫的提示
- 使用 Android 適用的 arcoreimg 工具 生成圖像資料庫檔案這項工具僅適用於 Android 和 Android NDK 的開發工作。Unity SDK 和 ARCore 內建這項功能 Unreal 外掛程式。
- 資料庫會壓縮所擷取特徵的壓縮表示法 參考圖片中的灰階資料每個圖片項目 約 6 KB
- 在執行階段將映像檔新增至資料庫約需 30 毫秒。
- 在背景工作執行緒中新增圖片,以免阻斷 UI 執行緒。
- 或者,如果可以,使用
arcoreimg
工具在編譯期間新增圖片 已納入 ARCore SDK
- 如果您知道圖片的預期實體大小,請加以指定。這個 進而提高偵測和追蹤成效 大型實體圖片 (超過 75 公分)。
- 避免將許多未使用的映像檔保留在資料庫中,因為做法稍微 會對系統效能產生影響
最佳化追蹤的訣竅
- 如果圖片絕對不會從初始位置移動 (例如 放在牆上的海報),您可以附加錨點 可提高追蹤穩定性
- 實體影像必須至少佔據相機 25% 的面積。 初始偵測。您可以提示使用者將實際圖片調整成 相機鏡頭。
- 圖像追蹤之前,請勿使用圖片的姿勢和大小估算值 則是完整追蹤初始偵測到映像檔時 ARCore 且未指定預期的實體大小,其追蹤狀態將 這表示 ARCore 已辨識圖片,但 未收集到足夠的資料,因此無法判斷其在 3D 空間中的位置。