新增圖片尺寸

平台專屬指南

ARCore 的擴增圖像 API 可讓您建構 AR 應用程式,偵測及擴增使用者環境中的 2D 圖像,例如海報或產品包裝。

您提供一組參考圖片。ARCore 會使用電腦視覺演算法,從每張圖片的灰階資訊中擷取特徵,並將這些特徵的表示法儲存在一或多個擴增圖片資料庫中。

在執行階段,ARCore 會在使用者環境的平面上搜尋這些特徵。這樣一來,ARCore 就能偵測世界中的這些圖片,並估算圖片的位置、方向和大小 (如果未提供)。

功能

ARCore 最多可同時追蹤 20 張圖片。ARCore 不會同時偵測或追蹤同一張圖片的多個執行個體。

每個擴增圖片資料庫最多可儲存 1,000 張參考圖片的資訊。資料庫數量沒有限制,但一次只能啟用一個資料庫。

您可以在執行階段將圖片新增至擴增圖片資料庫,每個資料庫最多可新增 1,000 張圖片。您可以使用網路連線,下載先前建立的資料庫。

新增圖片時,可以提供要偵測的圖片實體大小。這樣做有助於提升圖片偵測成效。

  • 如果未提供實體大小,ARCore 會估算大小,並隨著時間推移修正估算值。

  • 如果提供實體大小,ARCore 會使用該大小並估算圖片的位置和方向,忽略明顯或實際大小與所提供實體大小之間的任何差異。

ARCore 可以回應及追蹤下列圖片:

  • 固定位置的圖片,例如掛在牆上的沖印相片或桌上的雜誌

  • 移動中的圖片,例如行駛中公車上的廣告,或是使用者移動雙手時,平面物體上的圖片。

ARCore 開始追蹤圖片後,就會在每個影格中提供圖片位置和方向的估計值。ARCore 會在收集更多資料時,持續修正這些預估值。

偵測到圖片後,ARCore 會繼續「追蹤」圖片的位置和方向,即使使用者移動裝置導致圖片暫時移出攝影機畫面,ARCore 也不會停止追蹤。發生這種情況時,ARCore 會假設圖片的位置和方向是靜態的,且圖片本身不會在環境中移動。

所有追蹤作業都會在裝置上進行。偵測及追蹤圖片時,不需要連上網際網路。

需求條件

圖片必須符合下列條件:

  • 攝影機畫面至少要有 25% 的面積,才能偵測到物體。

  • 平整 (例如,不得有皺褶或包覆瓶身)。

  • 確保相機可清楚拍到你的臉。不得部分遮蔽、以極斜角度觀看,或在攝影機因動態模糊而移動過快時觀看。

CPU 使用率和效能注意事項

視已啟用的 ARCore 功能而定,啟用擴增圖片可能會增加 ARCore 的 CPU 使用率。如果 AR 體驗不需要某些功能,請考慮在這些時候停用。這會為應用程式提供額外的 CPU 週期,並提升散熱效能和電池續航力。

詳情請參閱「效能注意事項」。

最佳做法

選取參考圖片的訣竅

  • 圖片解析度應至少為 300 x 300 像素。使用高解析度圖片不會提升成效。
  • 參考圖片可採用 PNG 或 JPEG 檔案格式
  • 不會使用顏色資訊。彩色和等效灰階圖片都可以做為參考圖片,或由使用者在執行階段使用。
  • 避免使用經過大量壓縮的圖片,因為這會干擾特徵擷取。
  • 避免使用含有大量幾何特徵或特徵極少的圖片 (例如條碼、QR code、標誌和其他線條藝術),否則偵測和追蹤成效會不佳。
  • 避免使用重複圖案的圖片,否則也可能導致偵測和追蹤問題。
  • 使用 ARCore SDK 隨附的 arcoreimg 工具,取得每張圖片介於 0100 之間的分數。建議品質分數至少達到 75 分。我們來看看下面兩個範例:

    範例圖片 1 範例圖片 2
    分數:0 分數:100
    含有重複的幾何特徵 解析度足夠;包含許多獨特特徵

建立圖片資料庫的訣竅

  • 使用 Android 適用的 arcoreimg 工具產生圖片資料庫檔案。這項工具僅適用於 Android 和 Android NDK 開發作業。這項功能已內建於 Unity SDK 和 ARCore Unreal 外掛程式。
  • 資料庫會儲存從參考圖片的灰階資料中擷取的特徵壓縮表示法。每個圖片項目約佔 6 KB。
  • 在執行階段將圖片新增至資料庫約需 30 毫秒。
    • 在背景工作執行緒中新增圖片,避免封鎖 UI 執行緒。
    • 或者,如果可以,請使用 ARCore SDK 隨附的 arcoreimg 工具,在編譯時新增圖片。
  • 如果知道圖片的預期實際大小,請指定該大小。這項資訊可提升偵測和追蹤效能,尤其是大型實體圖片 (超過 75 公分)。
  • 請避免在資料庫中保留大量未使用的圖片,因為 CPU 使用率增加會對系統效能造成輕微影響。

最佳化追蹤的訣竅

  • 如果圖片不會從初始位置移動 (例如貼在牆上的海報),您可以將錨點附加至圖片,提高追蹤穩定性。
  • 實體圖片必須佔據相機圖片至少 25% 的空間,才能進行初步偵測。您可以提示使用者將實體圖片放入相機畫面中。
  • 請勿使用圖片的姿勢和大小估計值,直到圖片的追蹤狀態為完整追蹤為止。ARCore 首次偵測到圖片時,如果未指定預期的實體大小,系統就會暫停追蹤狀態。這表示 ARCore 已辨識出圖片,但尚未收集足夠的資料來估算圖片在 3D 空間中的位置。