Panduan tugas klasifikasi gambar

Hewan yang diberi label dengan benar sebagai flamingo dengan rating keyakinan 95%

Tugas Pengklasifikasi Gambar MediaPipe memungkinkan Anda melakukan klasifikasi pada gambar. Anda dapat menggunakan tugas ini untuk mengidentifikasi apa yang diwakili gambar di antara serangkaian kategori yang ditentukan pada waktu pelatihan. Tugas ini beroperasi pada data gambar dengan model machine learning (ML) sebagai data statis atau streaming berkelanjutan dan menghasilkan daftar kategori potensial yang diberi peringkat berdasarkan skor probabilitas menurun.

Coba sekarang.

Mulai

Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam penerapan dasar tugas ini, menggunakan model yang direkomendasikan, dan memberikan contoh kode dengan opsi konfigurasi yang direkomendasikan:

Detail tugas

Bagian ini menjelaskan kemampuan, input, output, dan opsi konfigurasi tugas ini.

Fitur

  • Pemrosesan gambar input - Pemrosesan mencakup rotasi gambar, pengubahan ukuran, normalisasi, dan konversi ruang warna.
  • Area minat - Melakukan klasifikasi pada area gambar, bukan seluruh gambar.
  • Label map locale - Menetapkan bahasa yang digunakan untuk nama tampilan.
  • Batas skor - Memfilter hasil berdasarkan skor prediksi.
  • Klasifikasi top-k - Membatasi jumlah hasil klasifikasi.
  • Daftar yang diizinkan dan ditolak untuk label - Tentukan kategori yang diklasifikasikan.
Input tugas Output tugas
Input dapat berupa salah satu jenis data berikut:
  • Gambar diam
  • Frame video yang didekode
  • Feed video live
Pengklasifikasi Gambar menghasilkan daftar kategori yang berisi:
  • Indeks kategori: indeks kategori dalam output model
  • Skor: skor keyakinan untuk kategori ini, biasanya probabilitas dalam [0,1]
  • Nama kategori (opsional): nama kategori seperti yang ditentukan dalam Metadata Model TFLite, jika tersedia
  • Nama tampilan kategori (opsional): nama tampilan untuk kategori seperti yang ditentukan dalam Metadata Model TFLite, dalam bahasa yang ditentukan melalui opsi lokalitas nama tampilan, jika tersedia

Opsi konfigurasi

Tugas ini memiliki opsi konfigurasi berikut:

Nama Opsi Deskripsi Rentang Nilai Nilai Default
running_mode Menetapkan mode berjalan untuk tugas. Ada tiga mode:

GAMBAR: Mode untuk input gambar tunggal.

VIDEO: Mode untuk frame video yang didekode.

LIVE_STREAM: Mode untuk live stream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses guna menerima hasil secara asinkron.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names_locale Menetapkan bahasa label yang akan digunakan untuk nama tampilan yang diberikan dalam metadata model tugas, jika tersedia. Default-nya adalah en untuk bahasa Inggris. Anda dapat menambahkan label yang dilokalkan ke metadata model kustom menggunakan TensorFlow Lite Metadata Writer API Kode lokalitas id
max_results Menetapkan jumlah maksimum opsional hasil klasifikasi dengan skor tertinggi yang akan ditampilkan. Jika < 0, semua hasil yang tersedia akan ditampilkan. Angka positif apa pun -1
score_threshold Menetapkan nilai minimum skor prediksi yang menggantikan nilai yang diberikan dalam metadata model (jika ada). Hasil di bawah nilai ini akan ditolak. Semua float Tidak ditetapkan
category_allowlist Menetapkan daftar opsional nama kategori yang diizinkan. Jika tidak kosong, hasil klasifikasi yang nama kategorinya tidak ada dalam kumpulan ini akan difilter. Nama kategori duplikat atau tidak dikenal akan diabaikan. Opsi ini saling eksklusif dengan category_denylist dan menggunakan keduanya akan menghasilkan error. String apa pun Tidak ditetapkan
category_denylist Menetapkan daftar opsional nama kategori yang tidak diizinkan. Jika tidak kosong, hasil klasifikasi yang nama kategorinya ada dalam kumpulan ini akan difilter keluar. Nama kategori duplikat atau tidak dikenal akan diabaikan. Opsi ini saling eksklusif dengan category_allowlist dan menggunakan keduanya akan menyebabkan error. String apa pun Tidak ditetapkan
result_callback Menetapkan pemroses hasil untuk menerima hasil klasifikasi secara asinkron saat Pengklasifikasi Gambar berada dalam mode live stream. Hanya dapat digunakan jika mode berjalan disetel ke LIVE_STREAM T/A Tidak ditetapkan

Model

Pengklasifikasi Gambar memerlukan model klasifikasi gambar untuk didownload dan disimpan di direktori project Anda. Mulailah dengan model default yang direkomendasikan untuk platform target Anda saat Anda mulai mengembangkan dengan tugas ini. Model lain yang tersedia biasanya melakukan kompromi antara performa, akurasi, resolusi, dan persyaratan resource, dan dalam beberapa kasus, menyertakan fitur tambahan.

Model EfficientNet-Lite0 menggunakan arsitektur EfficientNet dan dilatih menggunakan ImageNet untuk mengenali 1.000 class,seperti pohon, hewan, makanan, kendaraan, orang, dll. Lihat daftar lengkap label yang didukung. EfficientNet-Lite0 tersedia sebagai model int8 dan float 32. Model ini direkomendasikan karena mencapai keseimbangan antara latensi dan akurasi. Metode ini cukup akurat dan ringan untuk banyak kasus penggunaan.

Nama model Bentuk input Jenis kuantisasi Versi
EfficientNet-Lite0 (int8) 224 x 224 int8 Terbaru
EfficientNet-Lite0 (float 32) 224 x 224 Tidak ada (float32) Terbaru

Model EfficientNet-Lite2

Model EfficientNet-Lite2 menggunakan arsitektur EfficientNet dan dilatih menggunakan ImageNet untuk mengenali 1.000 class,seperti pohon, hewan, makanan, kendaraan, orang, dll. Lihat daftar lengkap label yang didukung. EfficientNet-Lite2 tersedia sebagai model int8 dan float 32. Model ini umumnya lebih akurat daripada EfficientNet-Lite0, tetapi juga lebih lambat dan lebih intensif memori. Model ini sesuai untuk kasus penggunaan dengan akurasi yang lebih diprioritaskan daripada kecepatan atau ukuran.

Nama model Bentuk input Jenis kuantisasi Versi
EfficientNet-Lite2 (int8) 224 x 224 int8 Terbaru
EfficientNet-Lite2 (float 32) 224 x 224 Tidak ada (float32) Terbaru

Tolok ukur tugas

Berikut adalah tolok ukur tugas untuk seluruh pipeline berdasarkan model terlatih di atas. Hasil latensi adalah latensi rata-rata di Pixel 6 yang menggunakan CPU / GPU.

Nama Model Latensi CPU Latensi GPU
EfficientNet-Lite0 (float 32) 23,52 md 18,90 md
EfficientNet-Lite0 (int8) 10,08 md -
EfficientNet-Lite2 (float 32) 44,17 md 22,20 md
EfficientNet-Lite2 (int8) 19,43 md -

Model kustom

Anda dapat menggunakan model ML yang disesuaikan dengan tugas ini jika ingin meningkatkan atau mengubah kemampuan model yang disediakan. Anda dapat menggunakan Model Maker untuk mengubah model yang ada atau membuat model menggunakan alat seperti TensorFlow. Model kustom yang digunakan dengan MediaPipe harus dalam format TensorFlow Lite dan harus menyertakan metadata tertentu yang menjelaskan parameter pengoperasian model. Sebaiknya pertimbangkan untuk menggunakan Model Maker guna mengubah model yang disediakan untuk tugas ini sebelum mem-build model Anda sendiri.

Jika Anda tertarik untuk membuat Pengklasifikasi gambar kustom menggunakan set data Anda sendiri, mulailah dengan tutorial Penyesuaian pengklasifikasi gambar.