Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Latih model deteksi objek dengan AutoML Vision Edge

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Model deteksi objek mirip dengan model pelabelan gambar, tetapi alih-alih menetapkan label ke seluruh gambar, model ini menetapkan label ke wilayah gambar. Anda dapat menggunakan model deteksi objek untuk mengenali dan menemukan objek dalam gambar atau untuk melacak pergerakan objek di seluruh rangkaian gambar.

Untuk melatih model deteksi objek, Anda menyediakan AutoML Vision Edge kumpulan gambar dengan label objek dan batas objek yang sesuai. AutoML Vision Edge menggunakan set data ini untuk melatih model baru di cloud, yang dapat Anda gunakan untuk deteksi objek di perangkat.

Sebelum kamu memulai

  • Jika Anda belum memiliki proyek Firebase, buatlah di konsol Firebase .

  • Biasakan diri Anda dengan pedoman yang disajikan dalam panduan ML Inklusif - AutoML .

  • Jika Anda hanya ingin mencoba AutoML Vision Edge, dan tidak memiliki data pelatihan sendiri, unduh contoh kumpulan data seperti salah satu dari berikut ini:

1. Kumpulkan data pelatihan Anda

Pertama, Anda perlu menyusun kumpulan data pelatihan dari gambar berlabel. Perhatikan panduan berikut ini:

  • Gambar harus dalam salah satu format berikut: JPEG, PNG, GIF, BMP, ICO.

  • Setiap gambar harus berukuran 30 MB atau lebih kecil. Perhatikan bahwa AutoML Vision Edge menurunkan skala sebagian besar gambar selama prapemrosesan, sehingga secara umum tidak ada keuntungan akurasi untuk menyediakan gambar beresolusi sangat tinggi.

  • Sertakan setidaknya 10, dan sebaiknya 100 atau lebih, contoh dari setiap label.

  • Sertakan beberapa sudut, resolusi, dan latar belakang untuk setiap label.

  • Data pelatihan harus sedekat mungkin dengan data yang akan dibuat prediksi. Misalnya, jika kasus penggunaan Anda melibatkan gambar buram dan beresolusi rendah (seperti dari kamera keamanan), data pelatihan Anda harus terdiri dari gambar buram beresolusi rendah.

  • Model yang dihasilkan oleh AutoML Vision Edge dioptimalkan untuk foto objek di dunia nyata. Mereka mungkin tidak berfungsi dengan baik untuk sinar-X, gambar tangan, dokumen yang dipindai, kuitansi, dan sebagainya.

    Juga, model umumnya tidak dapat memprediksi label yang tidak dapat diberikan manusia. Jadi, jika manusia tidak dapat memberi label dengan melihat gambar selama 1-2 detik, model tersebut kemungkinan besar juga tidak dapat dilatih untuk melakukannya.

Setelah gambar pelatihan Anda siap, siapkan untuk diimpor ke Google Cloud. Anda memiliki dua opsi:

Opsi 1: Cloud Storage dengan indeks CSV

Unggah gambar pelatihan Anda ke Google Cloud Storage dan siapkan file CSV yang mencantumkan URL setiap gambar, dan, secara opsional, label objek yang benar dan wilayah pembatas untuk setiap gambar. Opsi ini berguna saat menggunakan kumpulan data besar.

Misalnya, upload gambar Anda ke Cloud Storage, dan siapkan file CSV seperti berikut:

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Kotak pembatas objek ditentukan sebagai koordinat relatif pada gambar. Lihat Memformat CSV data pelatihan .

Gambar harus disimpan dalam keranjang yang ada di region us-central1 dan bagian dari proyek Google Cloud terkait proyek Firebase Anda.

Opsi 2: Gambar tanpa label

Beri label pada gambar pelatihan Anda dan gambar batas objek di Google Cloud Console setelah Anda mengunggahnya. Ini hanya direkomendasikan untuk kumpulan data kecil. Lihat langkah selanjutnya.

2. Latih model Anda

Selanjutnya, latih model menggunakan gambar Anda:

  1. Buka halaman Vision Datasets di Google Cloud Console. Pilih proyek Anda saat diminta.

  2. Klik Kumpulan data baru , beri nama untuk kumpulan data tersebut, pilih jenis model yang ingin Anda latih, dan klik Buat kumpulan data .

  3. Pada tab Impor set data, upload gambar pelatihan, arsip zip gambar pelatihan, atau file CSV yang berisi lokasi Cloud Storage tempat Anda menguploadnya. Lihat Merakit data latihan Anda .

  4. Setelah tugas impor selesai, gunakan tab Gambar untuk memverifikasi data pelatihan.

  5. Jika Anda tidak mengunggah CSV, untuk setiap gambar, gambar kotak pembatas di sekitar objek yang ingin Anda kenali dan beri label pada setiap objek.

  6. Pada tab Latih , klik Mulai pelatihan .

    1. Beri nama model dan pilih jenis model Edge .

    2. Konfigurasikan pengaturan pelatihan berikut, yang mengatur kinerja model yang dihasilkan:

      Mengoptimalkan model untuk... Konfigurasi model yang akan digunakan. Anda dapat melatih model yang lebih cepat dan lebih kecil saat latensi rendah atau ukuran paket kecil penting, atau model yang lebih lambat dan lebih besar saat akurasi paling penting.
      Anggaran jam node

      Waktu maksimum, dalam jam komputasi, yang dihabiskan untuk melatih model. Lebih banyak waktu pelatihan umumnya menghasilkan model yang lebih akurat.

      Perhatikan bahwa pelatihan dapat diselesaikan dalam waktu kurang dari waktu yang ditentukan jika sistem menentukan bahwa model dioptimalkan dan pelatihan tambahan tidak akan meningkatkan akurasi. Anda hanya ditagih untuk jam yang benar-benar digunakan.

      Waktu pelatihan yang khas
      Set yang sangat kecil 1 jam
      500 gambar 2 jam
      1.000 gambar 3 jam
      5.000 gambar 6 jam
      10.000 gambar 7 jam
      50.000 gambar 11 jam
      100.000 gambar 13 jam
      1.000.000 gambar 18 jam

3. Evaluasi model Anda

Saat pelatihan selesai, Anda dapat mengklik tab Evaluasi untuk melihat metrik performa untuk model tersebut.

Salah satu penggunaan penting halaman ini adalah untuk menentukan ambang keyakinan yang paling sesuai untuk model Anda. Ambang batas kepercayaan adalah kepercayaan minimum yang harus dimiliki model untuk menetapkan label ke gambar. Dengan menggerakkan penggeser ambang Keyakinan , Anda dapat melihat bagaimana perbedaan ambang memengaruhi performa model. Performa model diukur menggunakan dua metrik: presisi dan daya ingat .

Dalam konteks klasifikasi citra, presisi adalah rasio jumlah citra yang diberi label dengan benar terhadap jumlah citra model yang diberi label dengan ambang terpilih. Ketika sebuah model memiliki presisi tinggi, ia lebih jarang memberikan label yang salah (lebih sedikit false positive).

Recall adalah rasio jumlah gambar yang diberi label dengan benar terhadap jumlah gambar yang memiliki konten yang seharusnya dapat diberi label oleh model. Ketika sebuah model memiliki daya ingat yang tinggi, ia lebih jarang gagal menetapkan label apa pun (negatif palsu lebih sedikit).

Apakah Anda mengoptimalkan presisi atau daya ingat akan bergantung pada kasus penggunaan Anda. Lihat panduan pemula AutoML Vision dan panduan ML Inklusif - AutoML untuk informasi lebih lanjut.

Saat Anda menemukan ambang keyakinan yang menghasilkan metrik yang membuat Anda nyaman, catatlah; Anda akan menggunakan ambang batas keyakinan untuk mengonfigurasi model di aplikasi Anda. (Anda dapat menggunakan alat ini kapan saja untuk mendapatkan nilai ambang yang sesuai.)

4. Publikasikan atau unduh model Anda

Jika Anda puas dengan performa model dan ingin menggunakannya dalam aplikasi, Anda memiliki tiga opsi, dari mana Anda dapat memilih kombinasi apa pun: menerapkan model untuk prediksi online, memublikasikan model ke Firebase, atau mendownload model dan memaketkannya dengan aplikasi Anda.

Menyebarkan model

Di tab Uji & penggunaan set data, Anda dapat menerapkan model untuk prediksi online, yang menjalankan model Anda di cloud. Opsi ini tercakup dalam dokumen Cloud AutoML . Dokumen di situs ini menangani dua opsi yang tersisa.

Publikasikan modelnya

Dengan memublikasikan model ke Firebase, Anda dapat mengupdate model tanpa merilis versi aplikasi baru, dan Anda dapat menggunakan Remote Config dan Pengujian A/B untuk menyajikan model yang berbeda secara dinamis ke kumpulan pengguna yang berbeda.

Jika Anda memilih untuk hanya menyediakan model dengan menghostingnya di Firebase, dan tidak memaketkannya dengan aplikasi Anda, Anda dapat mengurangi ukuran download awal aplikasi Anda. Namun, perlu diingat bahwa jika model tidak dipaketkan dengan aplikasi Anda, semua fungsi terkait model tidak akan tersedia sampai aplikasi Anda mengunduh model untuk pertama kali.

Untuk memublikasikan model, Anda dapat menggunakan salah satu dari dua metode berikut:

  • Download model TF Lite dari halaman Uji & penggunaan set data Anda di Google Cloud Console, lalu upload model tersebut di halaman model Kustom di Firebase console. Ini biasanya cara termudah untuk menerbitkan satu model.
  • Publikasikan model langsung dari project Google Cloud Anda ke Firebase menggunakan Admin SDK. Anda dapat menggunakan metode ini untuk memublikasikan beberapa model atau untuk membantu membuat saluran penerbitan otomatis.

Untuk memublikasikan model dengan API pengelolaan model Admin SDK :

  1. Instal dan inisialisasi SDK .

  2. Publikasikan modelnya.

    Anda harus menentukan pengidentifikasi sumber daya model, yang merupakan string yang terlihat seperti contoh berikut:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Nomor project bucket Cloud Storage yang berisi model. Ini mungkin proyek Firebase Anda atau proyek Google Cloud lainnya. Anda dapat menemukan nilai ini di laman Setelan Firebase console atau dasbor Google Cloud Console.
    MODEL_ID ID model, yang Anda dapatkan dari AutoML Cloud API.

    Piton

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Download & bundel model dengan aplikasi Anda

Dengan memaketkan model Anda dengan aplikasi, Anda dapat memastikan bahwa fitur ML aplikasi Anda tetap berfungsi saat model yang dihosting oleh Firebase tidak tersedia.

Jika Anda memublikasikan model dan memaketkannya dengan aplikasi, aplikasi akan menggunakan versi terbaru yang tersedia.

Untuk mendownload model Anda, klik TF Lite di halaman Test & use dataset Anda.

Langkah selanjutnya

Sekarang setelah Anda memublikasikan atau mengunduh model, pelajari cara menggunakan model di aplikasi iOS+ dan Android .