Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Deteksi objek

Mendeteksi beberapa objek dalam gambar, dengan kotak pembatas. Kenali 90 kelas objek yang berbeda.

Memulai

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

Contoh Android contoh iOS

Jika Anda menggunakan platform selain Android atau iOS, atau Anda sudah terbiasa dengan TensorFlow Lite API , Anda dapat mendownload model deteksi objek awal kami dan label yang menyertainya.

Unduh model pemula dengan Medatada

Untuk informasi lebih lanjut tentang model starter, lihat Model starter .

Untuk informasi lebih lanjut tentang Medatada dan bidang terkait (misalnya: labels.txt ) lihat Membaca metadata dari model

Apa itu deteksi objek?

Dengan adanya gambar atau aliran video, model deteksi objek dapat mengidentifikasi kumpulan objek yang diketahui yang mungkin ada dan memberikan informasi tentang posisinya dalam gambar.

Misalnya, tangkapan layar dari aplikasi contoh kami ini menunjukkan bagaimana dua objek telah dikenali dan posisinya dianotasi:

Tangkapan layar contoh Android

Model deteksi objek dilatih untuk mendeteksi keberadaan dan lokasi beberapa kelas objek. Misalnya, model mungkin dilatih dengan gambar yang berisi berbagai potongan buah, bersama dengan label yang menentukan kelas buah yang mereka wakili (misalnya apel, pisang, atau stroberi), dan data yang menentukan di mana setiap objek muncul. foto.

Ketika kami selanjutnya memberikan gambar ke model, itu akan menampilkan daftar objek yang dideteksi, lokasi kotak pembatas yang berisi setiap objek, dan skor yang menunjukkan keyakinan bahwa pendeteksian itu benar.

Keluaran model

Bayangkan seorang model telah dilatih untuk mendeteksi apel, pisang, dan stroberi. Ketika kita memberikan gambar, itu akan menampilkan sejumlah hasil deteksi - dalam contoh ini, 5.

Kelas Skor Lokasi
apel 0.92 [18, 21, 57, 63]
pisang 0.88 [100, 30, 180, 150]
Stroberi 0.87 [7, 82, 89, 163]
pisang 0.23 [42, 66, 57, 83]
apel 0.11 [6, 42, 31, 58]

Skor kepercayaan

Untuk menginterpretasikan hasil tersebut, kita dapat melihat skor dan lokasi untuk setiap objek yang terdeteksi. Skor tersebut berupa angka antara 0 dan 1 yang menunjukkan keyakinan bahwa objek benar-benar terdeteksi. Semakin dekat angkanya dengan 1, semakin yakin modelnya.

Bergantung pada aplikasi Anda, Anda dapat menentukan ambang batas di bawah ini yang akan Anda buang hasil deteksi. Untuk contoh kita, kita mungkin memutuskan cut-off yang masuk akal adalah skor 0,5 (artinya kemungkinan 50% bahwa pendeteksian itu valid). Dalam kasus ini, kami akan mengabaikan dua objek terakhir dalam larik, karena skor keyakinan tersebut di bawah 0,5:

Kelas Skor Lokasi
apel 0.92 [18, 21, 57, 63]
pisang 0.88 [100, 30, 180, 150]
Stroberi 0.87 [7, 82, 89, 163]
pisang 0.23 [42, 66, 57, 83]
apel 0.11 [6, 42, 31, 58]

Batas yang Anda gunakan harus didasarkan pada apakah Anda lebih nyaman dengan positif palsu (objek yang salah diidentifikasi, atau area gambar yang secara keliru diidentifikasi sebagai objek padahal bukan), atau negatif palsu (objek asli yang rindu karena kepercayaan diri mereka rendah).

Misalnya, pada gambar berikut, buah pir (yang bukan merupakan objek yang dideteksi oleh model) telah salah diidentifikasi sebagai "orang". Ini adalah contoh positif palsu yang dapat diabaikan dengan memilih batas yang sesuai. Dalam kasus ini, batas 0,6 (atau 60%) akan mengecualikan positif palsu dengan nyaman.

Tangkapan layar contoh Android yang menunjukkan positif palsu

Lokasi

Untuk setiap objek yang terdeteksi, model akan mengembalikan array empat angka yang mewakili persegi panjang pembatas yang mengelilingi posisinya. Untuk model starter yang kami sediakan, angkanya diurutkan sebagai berikut:

[ puncak, kiri, bawah, Baik ]

Nilai teratas mewakili jarak tepi atas persegi panjang dari bagian atas gambar, dalam piksel. Nilai kiri mewakili jarak tepi kiri dari kiri gambar input. Nilai lainnya mewakili tepi bawah dan kanan dengan cara yang sama.

Tolok ukur kinerja

Angka tolok ukur kinerja dibuat dengan alat yang dijelaskan di sini .

Nama model Ukuran model Alat GPU CPU
COCO SSD MobileNet v1.0 27 Mb Pixel 3 (Android 10) 22 md 46 md *
Pixel 4 (Android 10) 20 md 29 md *
iPhone XS (iOS 12.4.1) 7,6 md 11 md **

* 4 utas digunakan.

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

Model pemula

Sebaiknya mulai dengan model COCO SSD MobileNet v1 terkuantisasi terlatih ini.

Unduh model dan label starter

Penggunaan dan batasan

Model deteksi objek yang kami sediakan dapat mengidentifikasi dan menemukan hingga 10 objek dalam sebuah gambar. Ia dilatih untuk mengenali 90 kelas objek. Untuk daftar lengkap kelas, lihat file label yang disematkan dalam model dengan visualisasi metadata .

Jika Anda ingin melatih model untuk mengenali kelas baru, lihat Menyesuaikan model .

Untuk kasus penggunaan berikut, Anda harus menggunakan jenis model yang berbeda:

  • Memprediksi label tunggal mana yang paling mungkin diwakili oleh gambar (lihat klasifikasi gambar )
  • Memprediksi komposisi gambar, misalnya subjek versus latar belakang (lihat segmentasi )

Memasukkan

Model mengambil gambar sebagai input. Gambar yang diharapkan adalah 300x300 piksel, dengan tiga saluran (merah, biru, dan hijau) per piksel. Ini harus diumpankan ke model sebagai buffer yang diratakan dengan nilai 270.000 byte (300x300x3). Karena model dikuantisasi , setiap nilai harus berupa byte tunggal yang mewakili nilai antara 0 dan 255.

Keluaran

Model mengeluarkan empat larik, dipetakan ke indeks 0-4. Larik 0, 1, dan 2 mendeskripsikan 10 objek yang terdeteksi, dengan satu elemen di setiap larik sesuai dengan setiap objek. Akan selalu ada 10 objek yang terdeteksi.

Indeks Nama Deskripsi
0 Lokasi Array multidimensi nilai floating point [10] [4] antara 0 dan 1, array dalam mewakili kotak pembatas dalam bentuk [atas, kiri, bawah, kanan]
1 Kelas Array 10 integer (keluaran sebagai nilai floating point) masing-masing menunjukkan indeks label kelas dari file label
2 Skor Larik 10 nilai floating point antara 0 dan 1 mewakili probabilitas kelas terdeteksi
3 Jumlah dan deteksi Larik dengan panjang 1 berisi nilai floating point yang menyatakan jumlah total hasil deteksi

Sesuaikan model

Model terlatih yang kami sediakan dilatih untuk mendeteksi 90 kelas objek. Untuk daftar lengkap kelas, lihat file label di metadata model .

Anda dapat menggunakan teknik yang dikenal sebagai pembelajaran transfer untuk melatih kembali model untuk mengenali kelas yang tidak ada di set aslinya. Misalnya, Anda dapat melatih ulang model untuk mendeteksi beberapa jenis sayuran, meskipun hanya ada satu sayuran di data pelatihan asli. Untuk melakukan ini, Anda memerlukan sekumpulan gambar pelatihan untuk setiap label baru yang ingin Anda latih.

Pelajari cara melakukan pembelajaran transfer dalam Pelatihan dan menyajikan detektor objek seluler real-time dalam 30 menit .