Nesne algılama görev kılavuzu

MediaPipe Nesne Dedektörü görevi, resimlerdeki veya videolardaki birden fazla nesne sınıfının varlığını ve konumunu algılamanızı sağlar. Örneğin, bir nesne detektörü bir resimdeki köpeklerin yerini belirleyebilir. Bu görev, makine öğrenimi (ML) modeliyle görüntü verileri üzerinde çalışır, statik verileri veya sürekli video akışını girdi olarak kabul eder ve algılama sonuçlarının listesini çıkarır. Her algılama sonucu, resim veya videoda görünen bir nesneyi temsil eder.

Deneyin!

Başlayın

Üzerinde çalıştığınız platform için bu uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın:

Bu platforma özel kılavuzlar, önerilen bir model ve önerilen yapılandırma seçeneklerinin yer aldığı kod örneği de dahil olmak üzere, bu görevin temel bir şekilde uygulanması konusunda size yol gösterir.

Görev ayrıntıları

Bu bölümde, bu görevin yetenekleri, girişleri ve çıkışları açıklanmaktadır.

Özellikler

  • Resim işleme: İşleme resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
  • Harita yerel ayarını etiketle - Görünen adlar için kullanılan dili ayarlayın
  • Puan eşiği - Sonuçları tahmin puanlarına göre filtreleyin.
  • Üst-k algılama - Sayı algılama sonuçlarını filtreleyin.
  • Etiket izin verilenler listesi ve ret listesi - Algılanan kategorileri belirtin.
Görev girişleri Görev çıkışları
Object Detector API, aşağıdaki veri türlerinden birinin girişini kabul eder:
  • Hareketsiz resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Object Detector API, algılanan nesneler için aşağıdaki sonuçları verir:
  • Nesnenin kategorisi
  • Olasılık puanı
  • Sınırlayıcı kutu koordinatları

Yapılandırma seçenekleri

Bu görev aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
running_mode Görevin çalışma modunu ayarlar. Üç mod vardır:

RESİM: Tek resimli girişler için mod.

VİDEO: Bir videonun kodu çözülmüş karelerine yönelik mod.

LIVE_STREAM: Kamera gibi giriş verilerini içeren bir canlı yayın modu. Bu modda, sonuçları eşzamansız olarak almak üzere bir işleyici ayarlamak için resultListener çağrılmalıdır.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names Varsa görev modelinin meta verilerinde sağlanan görünen adlar için kullanılacak etiketlerin dilini ayarlar. İngilizce için varsayılan değer en şeklindedir. TensorFlow Lite Metadata Writer API'yi kullanarak özel modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz Yerel ayar kodu en
max_results İsteğe bağlı olarak döndürülecek en yüksek puanlı algılama sonuçlarının isteğe bağlı maksimum sayısını ayarlar. Pozitif sayılar -1 (tüm sonuçlar döndürülür)
score_threshold Model meta verilerinde belirtilen eşiği (varsa) geçersiz kılan tahmin puanı eşiğini ayarlar. Bu değerin altındaki sonuçlar reddedilir. Tüm kayan Belirlenmedi
category_allowlist İsteğe bağlı olarak izin verilen kategori adları listesini ayarlar. Boş değilse kategori adı bu grupta yer almayan algılama sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yoksayılır. Bu seçenek, category_denylist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. Herhangi bir dize Belirlenmedi
category_denylist İzin verilmeyen kategori adlarının isteğe bağlı listesini ayarlar. Boş değilse kategori adı bu kümede yer alan algılama sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yoksayılır. Bu seçenek category_allowlist ile birlikte kullanılamaz ve her iki sonucun da kullanılması hataya neden olur. Herhangi bir dize Belirlenmedi

Modeller

Object Detector API için bir nesne algılama modelinin indirilmesi ve proje dizininizde depolanması gerekir. Hâlihazırda bir modeliniz yoksa önerilen varsayılan modelle başlayın. Bu bölümde sunulan diğer modeller, gecikme ile doğruluk arasında bir fark vardır.

EfficientDet-Lite0 modeli, 320x320 giriş boyutuna ve BiFPN özellik ağına sahip bir EfficientNet-Lite0 omurgasını kullanır. Model, 1,5 milyon nesne örneği ve 80 nesne etiketi içeren büyük ölçekli bir nesne algılama veri kümesi olan COCO veri kümesi ile eğitildi. Desteklenen etiketlerin tam listesini inceleyin. EfficientDet-Lite0; int8, float16 veyafloat32 olarak mevcuttur. Bu model, gecikme ve doğruluk arasında denge sağladığı için önerilir. Hem doğruluk oranı yüksek hem de birçok kullanım alanı için yeterince hafiftir.

Model adı Giriş şekli Nicelleştirme türü Sürümler
EfficientDet-Lite0 (int8) 320 x 320 int8 En son
EfficientDet-Lite0 (kayan 16) 320 x 320 kayan nokta 16 En son
EfficientDet-Lite0 (kayan 32) 320 x 320 Yok (float32) En son

EfficientDet-Lite2 modeli

EfficientDet-Lite2 modeli, 448x448 giriş boyutuna ve BiFPN özellik ağına sahip bir EfficientNet-Lite2 omurgasını kullanır. Model, 1,5 milyon nesne örneği ve 80 nesne etiketi içeren büyük ölçekli bir nesne algılama veri kümesi olan COCO veri kümesi ile eğitildi. Desteklenen etiketlerin tam listesini inceleyin. EfficientDet-Lite2; int8, float16 veya float32 modeli olarak sunulur. Bu model genellikle EfficientDet-Lite0'dan daha doğru sonuç verir, ancak aynı zamanda daha yavaştır ve daha fazla bellek kullanır. Bu model, doğruluğun hız ve boyuta göre daha önemli olduğu kullanım alanları için uygundur.

Model adı Giriş şekli Nicelleştirme türü Sürümler
EfficientDet-Lite2 (int8) 448 x 448 int8 En son
EfficientDet-Lite2 (kayan 16) 448 x 448 kayan nokta 16 En son
EfficientDet-Lite2 (kayan noktalı 32) 448 x 448 Yok (float32) En son

SSD MobileNetV2 modeli

SSD MobileNetV2 modeli, 256x256 giriş boyutuna ve SSD özellik ağına sahip MobileNetV2 omurgasını kullanır. Model, 1,5 milyon nesne örneği ve 80 nesne etiketi içeren büyük ölçekli bir nesne algılama veri kümesi olan COCO veri kümesi ile eğitildi. Desteklenen etiketlerin tam listesini inceleyin. SSD MobileNetV2, int8 ve float 32 modeli olarak sunulur. Bu model, EfficientDet-Lite0'dan daha hızlı ve hafiftir ancak genellikle daha az doğrudur. Bu model, bir miktar doğruluktan ödün veren hızlı ve hafif bir model gerektiren kullanım alanları için uygundur.

Model adı Giriş şekli Nicelleştirme türü Sürümler
SSDMobileNet-V2 (int8) 256 x 256 int8 En son
SSDMobileNet-V2 (float 32) 256 x 256 Yok (float32) En son

Model gereksinimleri ve meta veriler

Bu bölümde, bu görevle kullanmak üzere bir model oluşturmaya karar verirseniz özel model gereksinimleri açıklanmaktadır. Özel modeller TensorFlow Lite biçiminde olmalı ve modelin işletim parametrelerini açıklayan meta verileri içermelidir.

Tasarım gereksinimleri

Giriş Şekil Açıklama
Resim girin Float32 tensörü şekil tensörü[1, yükseklik, genişlik, 3] Normalleştirilmiş giriş görüntüsü.
Çıkış Şekil Açıklama
detection_boxes Şeklin float32 tensörü [1, num_boxes, 4] Algılanan her nesnenin kutu konumu.
detection_classes Şeklin Float32 tensörü [1, num_boxes] Algılanan her nesne için sınıf adlarının dizinleri.
detection_scores kayan32 şekil tensörü [1, num_boxes] Algılanan her nesne için tahmin puanları.
num_boxes 1 boyutundaki Float32 tensörü Algılanan kutuların sayısı.

Meta veri gereksinimleri

Parametre Açıklama Açıklama
input_norm_mean Giriş tensör normalleştirmesinde kullanılan ortalama değer. Normalleştirilmiş giriş görüntüsü.
input_norm_std Giriş tensörü normalleştirmesinde kullanılan alan normu. Algılanan her nesnenin kutu konumu.
label_file_paths Kategori tensörü etiket dosyalarına giden yollar. Modelde herhangi bir etiket dosyası yoksa boş bir liste iletin. Algılanan her nesne için sınıf adlarının dizinleri.
score_calibration_md Sınıflandırma tensöründeki puan kalibrasyon işlemi hakkında bilgi. Modelde puan
kalibrasyonu kullanılmıyorsa bu parametre gerekli değildir.
Algılanan her nesne için tahmin puanları.
num_boxes 1 boyutundaki Float32 tensörü Algılanan kutuların sayısı.

Görev karşılaştırmaları

Yukarıda, önceden eğitilmiş modellerle ilgili görev karşılaştırmaları aşağıda verilmiştir. Gecikme sonucu, CPU / GPU kullanılarak Pixel 6'da elde edilen ortalama gecikmedir.

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