Melatih model deteksi objek dengan AutoML Vision Edge

Model deteksi objek mirip dengan model pelabelan gambar. Namun, model ini menetapkan label ke area tertentu pada gambar, bukan menetapkan label ke seluruh gambar. Anda dapat menggunakan model deteksi objek untuk mengenali dan menemukan objek dalam gambar atau untuk melacak gerakan objek di seluruh rangkaian gambar.

Untuk melatih model deteksi objek, Anda perlu menyediakan serangkaian gambar di AutoML Vision Edge, 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 memulai

1. Mengumpulkan data pelatihan Anda

Pertama-tama, Anda perlu mengumpulkan set data pelatihan gambar berlabel. Ingat pedoman berikut:

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

  • Setiap gambar harus berukuran 30 MB atau lebih kecil. Perlu diketahui bahwa AutoML Vision Edge menurunkan kualitas sebagian besar gambar selama pemrosesan awal, sehingga secara umum tidak akan ada peningkatan akurasi dengan memberikan gambar yang beresolusi sangat tinggi.

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

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

  • Data pelatihan harus semirip mungkin dengan data yang menjadi dasar prediksi. Misalnya, jika dalam kasus penggunaan Anda terdapat gambar buram dengan resolusi rendah (seperti gambar dari kamera keamanan), data pelatihan Anda harus terdiri dari gambar buram dengan resolusi rendah.

  • Berbagai model yang dihasilkan oleh AutoML Vision Edge dioptimalkan untuk beragam foto objek di dunia nyata. Model yang dihasilkan mungkin tidak bekerja dengan baik untuk foto sinar-X, gambar buatan tangan, dokumen hasil pindaian, tanda terima, dan sebagainya.

    Selain itu, model umumnya tidak dapat memprediksi label yang tidak dapat ditetapkan oleh manusia. Jadi, jika manusia tidak dapat menetapkan label dengan melihat gambar selama 1-2 detik, model tersebut kemungkinan tidak dapat dilatih untuk melakukan hal yang sama.

Setelah Anda menyiapkan gambar pelatihan, siapkan gambar yang akan diimpor ke Google Cloud. Anda memiliki dua opsi:

Opsi 1: Cloud Storage dengan indeks CSV

Upload gambar pelatihan Anda ke Google Cloud Storage dan siapkan file CSV yang mencantumkan URL setiap gambar, serta secara opsional, label objek dan area pembatas yang benar untuk setiap gambar. Opsi ini bermanfaat saat menggunakan set data yang 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 ditetapkan sebagai koordinat relatif pada gambar. Lihat Memformat CSV data pelatihan.

Gambar harus disimpan dalam bucket yang berada di region us-central1 dan merupakan bagian dari project Cloud terkait project Firebase Anda.

Opsi 2: Gambar tidak berlabel

Beri label pada gambar pelatihan Anda dan buat gambar batas objek di Google Cloud Console setelah menguploadnya. Tindakan ini hanya direkomendasikan untuk set data berukuran kecil. Lihat langkah berikutnya.

2. Melatih model Anda

Selanjutnya, latih model menggunakan gambar Anda:

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

  2. Klik New dataset, beri nama untuk set data, pilih jenis model yang ingin Anda latih, lalu klik Create dataset.

  3. Pada tab Import set data, upload gambar pelatihan, file zip gambar pelatihan, atau file CSV yang berisi lokasi Cloud Storage tempat Anda menguploadnya. Lihat Mengumpulkan data pelatihan Anda.

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

  5. Jika Anda tidak mendownload CSV, untuk setiap gambar, buat kotak pembatas di sekeliling objek yang ingin Anda kenali, lalu beri label pada setiap objek.

  6. Pada tab Train, klik Start training untuk memulai pelatihan.

    1. Beri nama model, lalu pilih jenis model Edge.

    2. Konfigurasikan setelan pelatihan berikut, yang mengatur performa model yang dihasilkan:

      Optimalkan model untuk... Konfigurasi model yang akan digunakan. Anda dapat melatih model yang lebih cepat dan lebih kecil jika mementingkan latensi rendah atau ukuran paket yang kecil, atau melatih model yang lebih lambat dan lebih besar jika mementingkan keakuratan.
      Anggaran jam kerja node

      Waktu maksimum, dalam jam komputasi, yang akan digunakan untuk melatih model Anda. Waktu pelatihan yang lebih lama umumnya menghasilkan model yang lebih akurat.

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

      Waktu pelatihan standar
      Set sangat kecil1 jam
      500 gambar2 jam
      1.000 gambar3 jam
      5.000 gambar6 jam
      10.000 gambar7 jam
      50.000 gambar11 jam
      100.000 gambar13 jam
      1.000.000 gambar18 jam

3. Mengevaluasi model Anda

Setelah pelatihan selesai, Anda dapat mengklik tab Evaluate guna melihat metrik performa untuk model tersebut.

Salah satu penggunaan penting halaman ini adalah untuk menentukan nilai minimum keyakinan yang paling sesuai untuk model Anda. Nilai minimum keyakinan adalah keyakinan minimum yang harus dimiliki model untuk menetapkan label ke gambar. Dengan menggerakkan penggeser Confidence threshold, Anda dapat melihat pengaruh nilai minimum yang berbeda terhadap performa model. Performa model diukur menggunakan dua metrik: presisi dan perolehan.

Dalam konteks klasifikasi gambar, presisi adalah rasio jumlah gambar yang diberi label dengan benar dibanding jumlah gambar yang diberi label oleh model berdasarkan nilai minimum yang dipilih. Ketika suatu model memiliki presisi tinggi, model tersebut jarang menetapkan label yang salah (positif palsu lebih sedikit).

Perolehan adalah rasio jumlah gambar yang diberi label dengan benar dibanding jumlah gambar yang memiliki konten yang seharusnya dapat diberi label oleh model tersebut. Ketika suatu model memiliki perolehan yang tinggi, model tersebut jarang gagal untuk menetapkan label apa pun (negatif palsu lebih sedikit).

Keputusan apakah pengoptimalan dilakukan untuk presisi atau untuk perolehan bergantung pada kasus penggunaan Anda. Lihat Panduan pemula AutoML Vision dan Panduan ML inklusif - AutoML untuk mengetahui informasi selengkapnya.

Jika Anda menemukan nilai minimum keyakinan yang menghasilkan metrik yang sesuai dengan keinginan Anda, catat nilai tersebut. Anda akan menggunakannya untuk mengonfigurasi model di aplikasi. (Anda dapat menggunakan alat ini kapan saja untuk mendapatkan nilai minimum yang sesuai.)

4. Memublikasikan atau mendownload model Anda

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

Men-deploy model

Pada tab Test & use set data, Anda dapat men-deploy model untuk prediksi online, yang menjalankan model Anda di cloud. Opsi ini dibahas dalam dokumentasi Cloud AutoML. Dokumentasi di situs ini membahas dua opsi lainnya.

Memublikasikan model

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

Jika Anda memilih untuk hanya menyediakan model dengan menghostingnya di Firebase, dan tidak memaketkannya dengan aplikasi, Anda dapat mengurangi ukuran download awal aplikasi. Namun, perlu diingat jika model tidak dipaketkan dengan aplikasi Anda, fungsi yang terkait dengan model tidak akan tersedia hingga aplikasi Anda mendownload model untuk pertama kalinya.

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

  • Download model TF Lite dari halaman Test & use set data di Google Cloud Console, lalu upload model tersebut di halaman Custom model di Firebase console. Opsi ini biasanya adalah cara termudah untuk memublikasikan satu model.
  • Publikasikan model secara langsung dari project Google Cloud ke Firebase menggunakan Admin SDK. Anda dapat menggunakan metode ini untuk memublikasikan beberapa model sekaligus atau untuk membantu membuat pipeline publikasi otomatis.

Untuk memublikasikan model dengan API pengelolaan model Admin SDK:

  1. Instal dan lakukan inisialisasi SDK.

  2. Publikasikan model.

    Anda harus menentukan ID resource 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 dapat berupa project Firebase Anda atau project Google Cloud lainnya. Anda dapat menemukan nilai ini di halaman Settings pada Firebase console atau di dasbor Google Cloud Console.
    MODEL_ID ID model, yang Anda dapatkan dari AutoML Cloud API.

    Python

    # 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);
    

Mendownload & memaketkan model dengan aplikasi Anda

Dengan memaketkan model dengan aplikasi, Anda dapat memastikan bahwa fitur ML pada aplikasi Anda masih berfungsi jika model yang dihosting Firebase tidak tersedia.

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

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

Langkah berikutnya

Setelah Anda memublikasikan atau mendownload model, pelajari cara menggunakan model di aplikasi iOS+ dan Android.