Catat tanggalnya! Google I / O mengembalikan 18-20 Mei Daftar sekarang
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Klasifikasi gambar

Tugas mengidentifikasi apa yang diwakili oleh suatu gambar disebut klasifikasi gambar . Model klasifikasi gambar dilatih untuk mengenali berbagai kelas gambar. Misalnya, Anda dapat melatih model untuk mengenali foto yang mewakili tiga jenis hewan: kelinci, hamster, dan anjing. TensorFlow Lite menyediakan model terlatih yang dioptimalkan yang dapat Anda terapkan di aplikasi seluler Anda. Pelajari lebih lanjut tentang klasifikasi gambar menggunakan TensorFlow di sini .

Gambar berikut menunjukkan keluaran dari model klasifikasi gambar di Android.

Tangkapan layar contoh Android

Memulai

Jika Anda baru mengenal TensorFlow Lite dan bekerja dengan Android atau iOS, sebaiknya jelajahi aplikasi contoh berikut yang dapat membantu Anda memulai.

Anda dapat memanfaatkan API out-of-box dari TensorFlow Lite Task Library untuk mengintegrasikan model klasifikasi gambar hanya dalam beberapa baris kode. Anda juga dapat membuat pipeline inferensi kustom Anda sendiri menggunakan Support Library TensorFlow Lite .

Contoh Android di bawah ini mendemonstrasikan implementasi untuk kedua metode sebagai lib_task_api dan lib_support .

Lihat contoh Android

Lihat contoh iOS

Jika Anda menggunakan platform selain Android / iOS, atau jika Anda sudah terbiasa dengan TensorFlow Lite API , download model awal dan file pendukung (jika ada).

Unduh model pemula

Deskripsi model

Bagaimana itu bekerja

Selama pelatihan, model klasifikasi gambar diberi makan gambar dan label yang terkait. Setiap label adalah nama dari konsep atau kelas yang berbeda, yang akan dipelajari oleh model untuk dikenali.

Dengan data pelatihan yang memadai (seringkali ratusan atau ribuan gambar per label), model klasifikasi gambar dapat mempelajari untuk memprediksi apakah gambar baru termasuk dalam salah satu kelas yang telah dilatihnya. Proses prediksi ini disebut inferensi . Perhatikan bahwa Anda juga dapat menggunakan pembelajaran transfer untuk mengidentifikasi kelas gambar baru dengan menggunakan model yang sudah ada sebelumnya. Pembelajaran transfer tidak membutuhkan set data pelatihan yang sangat besar.

Saat Anda kemudian memberikan gambar baru sebagai masukan untuk model, itu akan menampilkan probabilitas gambar yang mewakili setiap jenis hewan yang dilatihnya. Contoh keluarannya mungkin seperti berikut:

Jenis hewan Kemungkinan
kelinci 0,07
Hamster 0,02
Anjing 0.91

Setiap angka di keluaran sesuai dengan label di data pelatihan. Dengan mengaitkan keluaran dengan tiga label tempat model dilatih, Anda dapat melihat bahwa model telah memprediksi probabilitas tinggi bahwa gambar tersebut mewakili seekor anjing.

Anda mungkin memperhatikan bahwa jumlah semua probabilitas (untuk kelinci, hamster, dan anjing) sama dengan 1. Ini adalah tipe keluaran umum untuk model dengan beberapa kelas (lihat Softmax untuk informasi lebih lanjut).

Hasil yang ambigu

Karena probabilitas keluaran akan selalu berjumlah 1, jika sebuah gambar tidak dengan yakin dikenali sebagai milik salah satu kelas tempat model dilatih, Anda mungkin melihat probabilitas didistribusikan ke seluruh label tanpa ada satu nilai yang secara signifikan lebih besar.

Misalnya, berikut ini mungkin menunjukkan hasil yang ambigu:

Label Kemungkinan
kelinci 0.31
hamster 0.35
anjing 0.34
Jika model Anda sering memberikan hasil yang ambigu, Anda mungkin memerlukan model lain yang lebih akurat.

Memilih arsitektur model

TensorFlow Lite memberi Anda berbagai model klasifikasi gambar yang semuanya dilatih pada kumpulan data asli. Arsitektur model seperti MobileNet, Inception, dan NASNet tersedia di halaman model yang dihosting . Untuk memilih model terbaik untuk kasus penggunaan Anda, Anda perlu mempertimbangkan arsitektur individual serta beberapa pengorbanan antara berbagai model. Beberapa pengorbanan model ini didasarkan pada metrik seperti kinerja, akurasi, dan ukuran model. Misalnya, Anda mungkin memerlukan model yang lebih cepat untuk membuat pemindai kode batang sementara Anda mungkin lebih memilih model yang lebih lambat dan lebih akurat untuk aplikasi pencitraan medis. Perhatikan bahwa model klasifikasi gambar yang disediakan menerima berbagai ukuran input. Untuk beberapa model, ini ditunjukkan dalam nama file. Misalnya, model Mobilenet_V1_1.0_224 menerima masukan 224x224 piksel. Semua model membutuhkan tiga saluran warna per piksel (merah, hijau, dan biru). Model terkuantisasi membutuhkan 1 byte per saluran, dan model float membutuhkan 4 byte per saluran. Contoh kode Android dan iOS menunjukkan cara memproses gambar kamera berukuran penuh ke dalam format yang diperlukan untuk setiap model.

Kegunaan dan batasan

Model klasifikasi gambar TensorFlow Lite berguna untuk klasifikasi label tunggal; yaitu, memprediksi label tunggal mana yang paling mungkin diwakili oleh gambar. Mereka dilatih untuk mengenali 1000 kelas gambar. Untuk daftar lengkap kelas, lihat file label di zip model . Jika Anda ingin melatih model untuk mengenali kelas baru, lihat Menyesuaikan model . Untuk kasus penggunaan berikut, Anda harus menggunakan jenis model yang berbeda:
  • Memprediksi tipe dan posisi satu atau lebih objek dalam gambar (lihat Deteksi objek )
  • Memprediksi komposisi gambar, misalnya subjek versus latar belakang (lihat Segmentasi )
Setelah Anda menjalankan model starter di perangkat target, Anda dapat bereksperimen dengan model yang berbeda untuk menemukan keseimbangan optimal antara performa, akurasi, dan ukuran model.

Sesuaikan model

Model terlatih yang disediakan dilatih untuk mengenali 1000 kelas gambar. Untuk daftar lengkap kelas, lihat file label di zip model . Anda juga dapat menggunakan pembelajaran transfer untuk melatih kembali model untuk mengenali kelas yang tidak ada di set aslinya. Misalnya, Anda dapat melatih ulang model untuk membedakan spesies pohon yang berbeda, meskipun tidak ada pohon dalam data pelatihan asli. Untuk melakukan ini, Anda memerlukan sekumpulan gambar pelatihan untuk setiap label baru yang ingin Anda latih. Pelajari cara melakukan pembelajaran transfer di Mengenali bunga dengan codelab TensorFlow, atau dengan library Model Maker .

Tolok ukur kinerja

Performa model diukur dalam hal jumlah waktu yang diperlukan model untuk menjalankan inferensi pada perangkat keras tertentu. Semakin rendah waktunya, semakin cepat modelnya. Kinerja yang Anda butuhkan bergantung pada aplikasi Anda. Performa dapat menjadi penting untuk aplikasi seperti video real-time, di mana mungkin penting untuk menganalisis setiap frame dalam waktu sebelum frame berikutnya diambil (misalnya, inferensi harus lebih cepat dari 33ms untuk melakukan inferensi waktu nyata pada streaming video 30fps) . Performa model MobileNet terkuantisasi TensorFlow Lite berkisar dari 3,7 md hingga 80,3 md. Angka tolok ukur kinerja dihasilkan dengan alat benchmarking .
Nama model Ukuran model Alat NNAPI CPU
Mobilenet_V1_1.0_224_quant 4.3 Mb Pixel 3 (Android 10) 6 md 13 md *
Pixel 4 (Android 10) 3,3 md 5 md *
iPhone XS (iOS 12.4.1) 11 md **

* 4 utas digunakan.

** 2 utas digunakan di iPhone untuk hasil kinerja terbaik.

Akurasi model

Akurasi diukur dalam hal seberapa sering model mengklasifikasikan gambar dengan benar. Misalnya, model dengan akurasi 60% diharapkan dapat mengklasifikasikan gambar dengan benar rata-rata 60%.

Daftar model yang dihosting memberikan statistik akurasi Top-1 dan Top-5. Top-1 mengacu pada seberapa sering label yang benar muncul sebagai label dengan probabilitas tertinggi dalam keluaran model. Top-5 mengacu pada seberapa sering label yang benar muncul dalam 5 probabilitas tertinggi dalam keluaran model.

Rentang akurasi Top-5 model MobileNet terkuantisasi TensorFlow Lite dari 64,4 hingga 89,9%.

Ukuran model

Ukuran model pada disk bervariasi dengan kinerja dan akurasinya. Ukuran mungkin penting untuk pengembangan seluler (jika mungkin memengaruhi ukuran unduhan aplikasi) atau saat bekerja dengan perangkat keras (jika penyimpanan yang tersedia mungkin terbatas).

Ukuran model MobileNet terkuantisasi TensorFlow Lite berkisar antara 0,5 hingga 3,4 MB.

Bacaan dan sumber lebih lanjut

Gunakan sumber daya berikut untuk mempelajari lebih lanjut tentang konsep yang berkaitan dengan klasifikasi gambar: