Latih model deteksi objek dengan AutoML Vision Edge

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

Untuk melatih model deteksi objek, Anda memberikan AutoML Vision Edge satu set 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, buat proyek di Firebase console .

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

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

1. Kumpulkan data pelatihan Anda

Pertama, Anda perlu mengumpulkan dataset pelatihan dari gambar berlabel. Ingatlah pedoman berikut ini:

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

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

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

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

  • Data pelatihan harus sedekat mungkin dengan data prediksi yang akan dibuat. 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 bekerja dengan baik untuk sinar-X, gambar tangan, dokumen yang dipindai, kuitansi, 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 kemungkinan juga tidak dapat dilatih untuk melakukannya.

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

Opsi 1: Penyimpanan Cloud 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, unggah 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 dalam 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 buat batas objek di Google Cloud Console setelah Anda menguploadnya. Ini hanya disarankan 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 New dataset , berikan nama untuk dataset, pilih tipe model yang ingin Anda latih, dan klik Create dataset .

  3. Pada tab Impor set data Anda, unggah gambar pelatihan Anda, arsip zip gambar pelatihan Anda, atau file CSV yang berisi lokasi Cloud Storage tempat Anda mengunggahnya. 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, buat 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 tipe model Edge .

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

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

      Waktu maksimum, dalam jam komputasi, 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 ditagih hanya untuk jam yang benar-benar digunakan.

      Waktu pelatihan biasa
      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 kinerja untuk model tersebut.

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

Dalam konteks klasifikasi gambar, presisi adalah rasio jumlah gambar yang diberi label dengan benar dengan jumlah gambar yang diberi label model yang diberikan ambang batas yang dipilih. Ketika sebuah model memiliki presisi tinggi, model akan lebih jarang memberikan label yang salah (lebih sedikit positif palsu).

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

Apakah Anda mengoptimalkan presisi atau mengingat akan bergantung pada kasus penggunaan Anda. Lihat panduan pemula AutoML Vision dan panduan ML Inklusif - AutoML untuk informasi selengkapnya.

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

4. Publikasikan atau unduh model Anda

Jika Anda puas dengan kinerja 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 mengunduh model dan menggabungkannya dengan aplikasi Anda.

Sebarkan modelnya

Pada tab Uji & penggunaan set data, Anda dapat menerapkan model Anda 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 memperbarui 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 dengan Firebase, dan tidak memaketkannya dengan aplikasi Anda, Anda dapat mengurangi ukuran unduhan awal aplikasi Anda. Namun, perlu diingat bahwa jika model tidak dibundel dengan aplikasi Anda, fungsionalitas terkait model apa pun tidak akan tersedia hingga aplikasi Anda mengunduh model untuk pertama kalinya.

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

  • Download model TF Lite dari halaman Uji & penggunaan set data Anda di Google Cloud Console, lalu unggah model di halaman Model kustom di Firebase console. Ini biasanya cara termudah untuk menerbitkan satu model.
  • Publikasikan model langsung dari proyek Google Cloud Anda ke Firebase menggunakan Admin SDK. Anda dapat menggunakan metode ini untuk memublikasikan beberapa model secara batch atau untuk membantu membuat jalur penerbitan otomatis.

Untuk memublikasikan model dengan API pengelolaan model Admin SDK :

  1. Instal dan inisialisasi SDK .

  2. Publikasikan modelnya.

    Anda perlu menentukan pengenal sumber daya model, yang berupa string yang terlihat seperti contoh berikut:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Nomor proyek bucket Cloud Storage yang berisi model. Ini mungkin proyek Firebase Anda atau proyek Google Cloud lainnya. Anda dapat menemukan nilai ini di halaman Setelan Firebase console atau 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);
    

Unduh & bundel model dengan aplikasi Anda

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

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

Untuk mengunduh model Anda, klik TF Lite di halaman Uji & penggunaan set data Anda.

Langkah selanjutnya

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