Ibrahim Ulukaya
Developer Programs Engineer

Kami semua di kantor Firebase menikmati waktu-waktu bermain dengan project "CoreML-in-ARKit" Hanley Weng. Ia menampilkan label 3D di atas gambar yang terdeteksi dalam adegan dibawah ini. Meskipun deteksi pada-perangkat memberikan respons cepat, kami ingin membangun solusi yang memberikan kecepatan model pada-perangkat dengan akurasi yang bisa Anda dapatkan dari solusi berbasis-cloud. Nah, itulah sebenarnya yang kami bangun dengan project MLKit-ARKit kami. Baca terus untuk mengetahui selengkapnya tentang bagaimana kami melakukannya!

Bagaimana cara kerjanya

ML Kit for Firebase adalah SDK seluler yang memperluas kemampuan machine learning (ML) Google Cloud ke dalam aplikasi Android dan iOS dalam paket yang kuat tetapi mudah digunakan. Ini memuat Base API yang mudah digunakan dan menawarkan kemampuan untuk menghadirkan model TFLite kustom Anda sendiri.
ARKit adalah framework Apple yang menggabungkan pelacakan gerak perangkat, tangkapan layar kamera, pemrosesan adegan lanjutan, dan kemudahan tampilan untuk menyederhanakan tugas membangun pengalaman AR. Anda bisa menggunakan teknologi ini untuk membuat berbagai jenis pengalaman AR menggunakan kamera belakang atau pun depan pada perangkat iOS.
Dalam project ini kami mendorong bingkai ARKit dari kamera belakang ke dalam antrean. ML Kit memprosesnya untuk mengetahui objek dalam bingkai tersebut.
Ketika pengguna menge-tap layar, ML Kit menampilkan label yang terdeteksi dengan keyakinan tinggi. Kami kemudian membuat teks balon 3D dan menambahkannya ke dalam adegan pengguna.



Bagaimana cara kerja ML Kit

ML Kit mempermudah pemanfaatan ML untuk semua developer seluler, baik bagi Anda yang sudah berpengalaman dalam ML maupun yang baru mengenalnya. Bagi mereka yang menghadapi lebih banyak kasus penggunaan lanjutan, ML Kit memungkinkan Anda membawa model TFLite Anda sendiri, tetapi untuk kasus penggunaan yang lebih umum, Anda bisa menerapkan salah satu dari Base API yang mudah digunakan. API ini mencakup kasus penggunaan seperti pengenalan teks, pelabelan gambar, deteksi wajah dan lebih banyak lagi, dan didukung oleh model yang dilatih Google Cloud. Kami akan menggunakan pelabelan gambar dalam contoh kami.
Base API tersedia dalam dua jenis: Pada-perangkat dan berbasis-cloud. API pada-perangkat gratis digunakan dan berjalan secara lokal, sedangkan API berbasis-cloud memberikan akurasi yang lebih tinggi dan respons yang lebih tepat. Vision API berbasis-cloud gratis untuk 1.000/panggilan API pertama dan berbayar setelahnya. Mereka memberikan kemampuan model berukuran penuh dari Google Cloud Vision API.



Pendekatan hibrid

Kami menggunakan API pelabelan gambar pada-perangkat ML Kit untuk mendapatkan input hasil langsung sembari mempertahankan laju bingkai stabil pada 60fps. Saat pengguna menge-tap layar, kami menjalankan panggilan async ke API pelabelan gambar Cloud dengan gambar saat ini. Ketika mendapat respons dari model berakurasi lebih tinggi ini, kami mengupdate label 3D dengan segera. Jadi, selagi kami terus menjalankan API pada-perangkat dan menggunakan hasilnya sebagai sumber informasi awal, Cloud API yang berakurasi lebih tinggi akan dipanggil saat dibutuhkan dan hasilnya nanti menggantikan label pada-perangkat.



Hasil mana yang ditampilkan?

Meskipun API pada-perangkat bersifat real-time dengan semua pemrosesan terjadi secara lokal, Cloud Vision API membuat permintaan jaringan ke backend Google Cloud, sehingga memanfaatkan model dengan akurasi yang lebih tinggi dan besar. Dengan mempertimbangkan bahwa kami menganggapnya sebagai respons yang lebih tepat, di aplikasi kami, kami mengganti label yang diberikan oleh API pada-perangkat dengan hasil dari Cloud Vision API saat diterima.



Cobalah sendiri!

1. Meng-clone project
$ git clone https://github.com/FirebaseExtended/MLKit-ARKit.git
2. Instal pod dan buka file .xcworkspace untuk melihat project di Xcode.
  1. $ cd MLKit-ARKit
  2. $ pod install --repo-update
  3. $ open MLKit-ARKit.xcworkspace
3. Untuk menyiapkan Firebase ML Kit di aplikasi contoh:
  1. Ikuti petunjuk ini untuk menambahkan Firebase ke aplikasi Anda.
  2. Pastikan untuk menetapkan "com.google.firebaseextended.MLKit-ARKit" sebagai ID paket project iOS.
  3. Download file GoogleService-Info.plist yang dihasilkan sebagai bagian dari penambahan Firebase ke aplikasi Anda.
  4. Dalam Xcode, tambahkan file GoogleService-Info.plist ke aplikasi Anda, di sebelah Info.plist.
Pada titik ini, aplikasi seharusnya sudah bisa menggunakan pengenalan pada-perangkat.

4. (Opsional) Untuk menyiapkan Cloud Vision API di aplikasi contoh:
  1. Alihkan project Firebase Anda ke paket Blaze
    Hanya project level Blaze yang bisa menggunakan Cloud Vision API. Ikuti langkah-langkah berikut untuk mengalihkan project Anda ke paket Blaze dan mengaktifkan tagihan pay-as-you-go.
    1. Buka project Anda di Firebase console.
    2. Klik link MODIFY di sudut kiri bawah di sebelah paket Spark yang saat ini dipilih.
    3. Pilih paket Blaze dan ikuti petunjuk di Firebase Console untuk menambahkan akun penagihan.
      ★ Fitur deteksi label cloud masih tetap gratis untuk 1.000 penggunaan pertama per bulan. Klik di sini untuk melihat detail harga tambahan.
  2. Masuklah ke bagian ML Kit dari Firebase console dan aktifkan tombol "Cloud Based APIs" di bagian atas.
Sekarang, aplikasi seharusnya mengupdate label dengan hasil yang lebih tepat dari Cloud Vision API.