Panduan khusus platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Augmented Images API di ARCore memungkinkan Anda mem-build aplikasi AR yang dapat mendeteksi dan meningkatkan gambar 2D di lingkungan pengguna, seperti poster atau kemasan produk.
Anda memberikan serangkaian gambar referensi. ARCore menggunakan algoritma computer vision untuk mengekstrak fitur dari informasi hitam putih di setiap gambar, dan menyimpan representasi fitur ini di satu atau beberapa database Gambar Augmented.
Saat runtime, ARCore akan menelusuri fitur ini di permukaan datar di lingkungan pengguna. Hal ini memungkinkan ARCore mendeteksi gambar ini di dunia dan memperkirakan posisi, orientasi, dan ukurannya jika tidak disediakan.
Kemampuan
ARCore dapat melacak hingga 20 gambar secara bersamaan. ARCore tidak akan mendeteksi atau melacak beberapa instance gambar yang sama secara bersamaan.
Setiap database Gambar Augmented dapat menyimpan informasi hingga 1.000 gambar referensi. Tidak ada batasan jumlah database, tetapi hanya satu database yang dapat aktif pada waktu tertentu.
Gambar dapat ditambahkan ke database Gambar Augmented saat runtime, hingga batas 1.000 gambar per database. Anda dapat mendownload database yang dibuat sebelumnya menggunakan koneksi jaringan.
Saat menambahkan gambar, Anda dapat memberikan ukuran fisik gambar yang akan dideteksi. Tindakan ini akan meningkatkan performa deteksi gambar.
Jika tidak ada ukuran fisik yang diberikan, ARCore akan memperkirakan ukuran dan meningkatkan estimasi ini dari waktu ke waktu.
Jika ukuran fisik diberikan, ARCore akan menggunakan ukuran yang diberikan dan memperkirakan posisi dan orientasi gambar, mengabaikan perbedaan apa pun antara ukuran yang terlihat atau sebenarnya dan ukuran fisik yang diberikan.
ARCore dapat merespons dan melacak gambar yang:
Gambar yang terpasang di tempat, seperti cetakan yang tergantung di dinding atau majalah di atas meja
Gambar bergerak, seperti iklan di bus yang lewat atau gambar di objek datar yang dipegang oleh pengguna saat mereka menggerakkan tangan.
Setelah ARCore mulai melacak gambar, ARCore akan memberikan estimasi untuk posisi dan orientasi gambar di setiap frame. ARCore terus meningkatkan estimasi ini saat mengumpulkan lebih banyak data.
Setelah gambar terdeteksi, ARCore akan terus "melacak" posisi dan orientasi gambar, meskipun gambar sementara keluar dari tampilan kamera karena pengguna telah memindahkan perangkatnya. Jika hal ini terjadi, ARCore mengasumsikan bahwa posisi dan orientasi gambar bersifat statis, dan bahwa gambar itu sendiri tidak bergerak di lingkungan.
Semua pelacakan dilakukan di perangkat. Tidak diperlukan koneksi internet untuk mendeteksi dan melacak gambar.
Persyaratan
Gambar harus:
Isi setidaknya 25% bingkai kamera agar terdeteksi pada awalnya.
Datar (misalnya, tidak berkerut atau melilit botol).
Terlihat jelas di kamera. Objek tidak boleh terhalang sebagian, dilihat dengan sudut yang sangat miring, atau dilihat saat kamera bergerak terlalu cepat karena blur gerakan.
Pertimbangan performa dan penggunaan CPU
Bergantung pada fitur ARCore yang sudah diaktifkan, mengaktifkan Augmented Images dapat meningkatkan penggunaan CPU ARCore. Pertimbangkan untuk menonaktifkan fitur yang tidak digunakan selama pengalaman AR Anda tidak memerlukannya. Tindakan ini akan menyediakan siklus CPU tambahan untuk aplikasi Anda, serta meningkatkan performa termal dan masa pakai baterai.
Untuk informasi tambahan, lihat pertimbangan performa.
Praktik terbaik
Tips untuk memilih gambar referensi
- Resolusi gambar harus minimal 300x300 piksel. Menggunakan gambar dengan resolusi tinggi tidak meningkatkan performa.
- Gambar referensi dapat diberikan dalam format file PNG atau JPEG.
- Informasi warna tidak digunakan. Gambar warna dan gambar hitam putih yang setara dapat digunakan sebagai gambar referensi atau oleh pengguna saat runtime.
- Hindari gambar dengan kompresi berat karena hal ini akan mengganggu ekstraksi fitur.
- Hindari gambar yang berisi banyak fitur geometris, atau sangat sedikit fitur (misalnya, kode batang, kode QR, logo, dan gambar garis lainnya) karena hal ini akan menghasilkan performa pelacakan dan deteksi yang buruk.
- Hindari gambar dengan pola berulang karena hal ini juga dapat menyebabkan masalah deteksi dan pelacakan.
Gunakan alat
arcoreimg
yang disertakan dalam ARCore SDK untuk mendapatkan skor kualitas antara0
dan100
untuk setiap gambar. Sebaiknya skor kualitasnya setidaknya 75. Berikut ini dua contoh:Contoh gambar 1 Contoh gambar 2 Skor: 0
Skor: 100
berisi fitur geometris berulang resolusi yang memadai; berisi banyak fitur unik
Tips untuk membuat database gambar
- Gunakan alat arcoreimg untuk Android untuk membuat file database gambar. Alat ini hanya tersedia untuk pengembangan Android dan Android NDK. Plugin ini terintegrasi dengan Unity SDK dan plugin ARCore Unreal.
- Database menyimpan representasi fitur yang dikompresi dan diekstrak dari data hitam putih dalam gambar referensi. Setiap entri gambar menggunakan sekitar 6 KB.
- Perlu waktu sekitar 30 md untuk menambahkan gambar ke database saat runtime.
- Tambahkan gambar pada thread pekerja untuk menghindari pemblokiran UI thread.
- Atau, jika memungkinkan, tambahkan gambar pada waktu kompilasi menggunakan alat
arcoreimg
yang disertakan dalam ARCore SDK.
- Jika Anda mengetahui ukuran fisik gambar yang diharapkan, tentukan ukuran tersebut. Informasi ini meningkatkan performa deteksi dan pelacakan, terutama untuk gambar fisik yang besar (lebih dari 75 cm).
- Hindari menyimpan banyak gambar yang tidak digunakan dalam database karena ada sedikit dampak pada performa sistem karena peningkatan penggunaan CPU.
Tips untuk mengoptimalkan pelacakan
- Jika gambar tidak akan pernah berpindah dari posisi awalnya (misalnya, poster yang ditempelkan ke dinding), Anda dapat melampirkan anchor ke gambar untuk meningkatkan stabilitas pelacakan.
- Gambar fisik harus menempati minimal 25% gambar kamera untuk deteksi awal. Anda dapat meminta pengguna untuk menyesuaikan gambar fisik dalam bingkai kamera mereka.
- Jangan gunakan estimasi pose dan ukuran gambar hingga status pelacakan gambar adalah pelacakan penuh. Saat gambar awalnya terdeteksi oleh ARCore, dan tidak ada ukuran fisik yang diharapkan yang ditentukan, status pelacakannya akan dijeda. Ini berarti ARCore telah mengenali gambar, tetapi belum mengumpulkan cukup data untuk memperkirakan lokasinya dalam ruang 3D.