Panduan tugas deteksi objek

Tugas MediaPipe Object Detector memungkinkan Anda mendeteksi keberadaan dan lokasi beberapa class objek dalam gambar atau video. Misalnya, pendeteksi objek dapat menemukan dalam gambar. Tugas ini beroperasi pada data gambar dengan model machine learning (ML), yang menerima data statis atau streaming video berkelanjutan sebagai input dan mengirimkan daftar hasil deteksi. Setiap hasil deteksi mewakili objek yang muncul dalam gambar atau video.

Cobalah!

Mulai

Mulailah menggunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform yang sedang Anda kerjakan:

Panduan khusus platform ini akan memandu Anda dalam menerapkan dasar tugas ini, termasuk model yang direkomendasikan, dan contoh kode dengan opsi konfigurasi yang direkomendasikan.

Detail tugas

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

Fitur

  • Pemrosesan gambar input - Pemrosesan mencakup rotasi gambar, pengubahan ukuran, normalisasi, dan konversi ruang warna.
  • Lokalitas peta label - Menyetel bahasa yang digunakan untuk nama tampilan
  • Batas skor - Memfilter hasil berdasarkan skor prediksi.
  • Deteksi top-k - Memfilter hasil deteksi angka.
  • Daftar label dan daftar tolak yang diizinkan - Menentukan kategori yang terdeteksi.
Input tugas Output tugas
Object Detector API menerima input dari salah satu jenis data berikut:
  • Gambar diam
  • Frame video yang didekode
  • Feed video live
Object Detector API menampilkan hasil berikut untuk objek yang terdeteksi:
  • Kategori objek
  • Skor probabilitas
  • Koordinat kotak pembatas

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:

IMAGE: Mode untuk input gambar tunggal.

VIDEO: Mode untuk frame video yang didekode.

LIVE_STREAM: Mode untuk livestream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses yang menerima hasil secara asinkron.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names Menetapkan bahasa label yang akan digunakan untuk nama tampilan yang diberikan dalam metadata model tugas, jika tersedia. Defaultnya adalah en untuk bahasa Inggris. Anda dapat menambahkan label yang dilokalkan ke metadata model kustom menggunakan TensorFlow Lite Metadata Writer API Kode lokal id
max_results Menetapkan jumlah maksimum opsional hasil deteksi dengan skor teratas yang akan ditampilkan. Semua bilangan positif -1 (semua hasil ditampilkan)
score_threshold Menetapkan nilai minimum skor prediksi yang menggantikan skor yang diberikan dalam metadata model (jika ada). Hasil di bawah nilai ini ditolak. Semua float Tidak ditetapkan
category_allowlist Menetapkan daftar opsional nama kategori yang diizinkan. Jika tidak kosong, hasil deteksi yang nama kategorinya tidak ada dalam kumpulan ini akan difilter. Nama kategori duplikat atau tidak diketahui akan diabaikan. Opsi ini sama-sama bersifat 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 deteksi yang nama kategorinya ada dalam kumpulan ini akan difilter. Nama kategori duplikat atau tidak diketahui akan diabaikan. Opsi ini sama-sama bersifat eksklusif dengan category_allowlist dan menggunakan keduanya akan menghasilkan error. String apa pun Tidak ditetapkan

Model

Object Detector API mengharuskan model deteksi objek untuk didownload dan disimpan di direktori project Anda. Jika Anda belum memiliki model, mulailah dengan model default yang direkomendasikan. Model lain yang disajikan di bagian ini menimbulkan kompromi antara latensi dan akurasi.

Model EfficientDet-Lite0 menggunakan backbone EfficientNet-Lite0 dengan ukuran input 320x320 dan jaringan fitur BiFPN. Model ini dilatih dengan set data COCO, set data deteksi objek skala besar yang berisi 1,5 juta instance objek dan 80 label objek. Lihat daftar lengkap label yang didukung. EfficientDet-Lite0 tersedia sebagai int8, float16, atau float32. Model ini direkomendasikan karena mencapai keseimbangan antara latensi dan akurasi. Keduanya cukup akurat dan ringan untuk banyak kasus penggunaan.

Nama model Bentuk input Jenis kuantisasi Versions
EfficientDet-Lite0 (int8) 320 x 320 int8 Terbaru
EfficientDet-Lite0 (float 16) 320 x 320 float 16 Terbaru
EfficientDet-Lite0 (float 32) 320 x 320 Tidak ada (float32) Terbaru

Model EfficientDet-Lite2

Model EfficientDet-Lite2 menggunakan backbone EfficientNet-Lite2 dengan ukuran input 448x448 dan jaringan fitur BiFPN. Model ini dilatih dengan set data COCO, set data deteksi objek skala besar yang berisi 1,5 juta instance objek dan 80 label objek. Lihat daftar lengkap label yang didukung. EfficientDet-Lite2 tersedia sebagai model int8, float16, atau float32. Model ini umumnya lebih akurat daripada EfficientDet-Lite0, tetapi juga lebih lambat dan memerlukan lebih banyak memori. Model ini cocok untuk kasus penggunaan ketika akurasi merupakan prioritas yang lebih besar untuk kecepatan dan ukuran.

Nama model Bentuk input Jenis kuantisasi Versions
EfficientDet-Lite2 (int8) 448 x 448 int8 Terbaru
EfficientDet-Lite2 (float 16) 448 x 448 float 16 Terbaru
EfficientDet-Lite2 (float 32) 448 x 448 Tidak ada (float32) Terbaru

Model SSD MobileNetV2

Model SSD MobileNetV2 menggunakan backbone MobileNetV2 dengan ukuran input 256x256 dan jaringan fitur SSD. Model ini dilatih dengan set data COCO, set data deteksi objek skala besar yang berisi 1,5 juta instance objek dan 80 label objek. Lihat daftar lengkap label yang didukung. SSD MobileNetV2 tersedia sebagai model int8 dan float 32. Model ini lebih cepat dan lebih ringan daripada EfficientDet-Lite0, tetapi juga umumnya kurang akurat. Model ini cocok untuk kasus penggunaan yang memerlukan model yang cepat dan ringan yang mengorbankan beberapa akurasi.

Nama model Bentuk input Jenis kuantisasi Versions
SSDMobileNet-V2 (int8) 256 x 256 int8 Terbaru
SSDMobileNet-V2 (float 32) 256 x 256 Tidak ada (float32) Terbaru

Metadata dan persyaratan model

Bagian ini menjelaskan persyaratan untuk model kustom jika Anda memutuskan untuk membangun model yang akan digunakan dengan tugas ini. Model kustom harus dalam format TensorFlow Lite dan harus menyertakan metadata yang menjelaskan parameter operasi model.

Persyaratan desain

Input Bentuk Deskripsi
Gambar input Tensor float32 dari bentuk[1, tinggi, lebar, 3] Gambar input yang dinormalisasi.
Output Bentuk Deskripsi
detection_boxes Tensor float32 dari bentuk [1, num_boxes, 4] Lokasi kotak setiap objek yang terdeteksi.
detection_classes Tensor float32 dari bentuk [1, num_boxes] Indeks nama class untuk setiap objek yang terdeteksi.
detection_scores Tensor float32 dari bentuk [1, num_boxes] Skor prediksi untuk setiap objek yang terdeteksi.
num_boxes Tensor float32 ukuran 1 Jumlah kotak yang terdeteksi.

Persyaratan metadata

Parameter Deskripsi Deskripsi
input_norm_mean Nilai rata-rata yang digunakan dalam normalisasi tensor input. Gambar input yang dinormalisasi.
input_norm_std Norma medan yang digunakan dalam normalisasi tensor input. Lokasi kotak setiap objek yang terdeteksi.
label_file_paths Jalur ke file label tensor kategori. Jika model tidak memiliki file label, teruskan daftar kosong. Indeks nama class untuk setiap objek yang terdeteksi.
score_calibration_md Informasi tentang operasi kalibrasi skor pada tensor klasifikasi. Parameter ini tidak diperlukan jika model tidak menggunakan kalibrasi
skor.
Skor prediksi untuk setiap objek yang terdeteksi.
num_boxes Tensor float32 ukuran 1 Jumlah kotak yang terdeteksi.

Tolok ukur tugas

Berikut adalah benchmark tugas untuk model terlatih di atas. Hasil latensi adalah latensi rata-rata di Pixel 6 yang menggunakan CPU / GPU.

Nama Model Latensi CPU Latensi GPU
Model float32 EfficientDet-Lite0 61,30 md 27,83 md
Model float16 EfficientDet-Lite0 53,97 md 27,97 md
Model int8 EfficientDet-Lite0 29,31 md -
Model float32 EfficientDet-Lite2 197,98 md 41,15 md
Model float16 EfficientDet-Lite2 198,77 md 47,31 md
Model int8 EfficientDet-Lite2 70,91 md -
Model float32 SSD MobileNetV2 36,30 md 24,01 md
Model float16 SSD MobileNetV2 37,35 md 28,16 md