Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

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 untuk 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, membuat satu di konsol Firebase .

  • Membiasakan diri dengan pedoman yang disajikan dalam Inklusif ML panduan - 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 Anda menyiapkan gambar pelatihan, siapkan untuk diimpor ke Google Cloud. Anda memiliki dua opsi:

Opsi 1: Penyimpanan Cloud dengan indeks CSV

Upload gambar pelatihan untuk Google Cloud Storage dan mempersiapkan file CSV daftar URL dari setiap gambar, dan, opsional, label objek yang benar dan wilayah berlari 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 training .

Gambar harus disimpan dalam ember yang di us-central1 wilayah dan bagian dari yang sesuai proyek Google Cloud Firebase proyek 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 Visi dataset halaman di Cloud Console Google. Pilih proyek Anda saat diminta.

  2. Klik dataset baru, memberikan nama untuk dataset, pilih jenis model yang Anda ingin kereta api, dan klik Buat dataset.

  3. Pada tab Impor dataset Anda, meng-upload gambar pelatihan Anda, arsip zip gambar pelatihan atau file CSV yang berisi lokasi Cloud Storage Anda upload mereka untuk. Lihat Merakit data training Anda .

  4. Setelah menyelesaikan tugas impor, 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 Kereta, klik pelatihan Start.

    1. 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

Ketika pelatihan selesai, Anda dapat mengklik Mengevaluasi tab untuk melihat metrik kinerja untuk model.

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 memindahkan slider threshold Keyakinan, Anda dapat melihat bagaimana ambang batas yang berbeda mempengaruhi kinerja model. Kinerja model diukur dengan menggunakan dua metrik: presisi dan recall.

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

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

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

Saat Anda menemukan ambang batas keyakinan yang menghasilkan metrik yang nyaman bagi Anda, catatlah; 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 dataset Anda Uji & penggunaan tab, Anda dapat menyebarkan model untuk prediksi online, yang berjalan model Anda di awan. Pilihan 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:

  • Men-download model TF Lite dari dataset Anda Uji & penggunaan halaman di Google Cloud Console, dan kemudian meng-upload model pada model kustom halaman konsol Firebase. 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 mempublikasikan model dengan Admin SDK model manajemen API :

  1. Instal dan menginisialisasi 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 men-download model Anda, klik TF Lite pada dataset Anda halaman Uji & digunakan.

Langkah selanjutnya

Sekarang bahwa Anda telah dipublikasikan atau di-download model, belajar bagaimana menggunakan model dalam Anda iOS dan Android apps.