Görüntü sınıflandırma görevi kılavuzu

%95 güven derecesiyle flamingo olarak doğru etiketlenmiş bir hayvan

MediaPipe Resim Sınıflandırıcı görevi, resimlerde sınıflandırma yapmanıza olanak tanır. Bir görüntünün, eğitim sırasında tanımlanan bir dizi kategori arasında neyi temsil ettiğini belirlemek için bu görevi kullanabilirsiniz. Bu görev, statik veri veya sürekli bir akış olarak makine öğrenimi (ML) modeli içeren görüntü verilerinde çalışır ve olası kategorilerin listesini, azalan olasılık puanına göre sıralayarak döndürür.

Deneyin.

Başlayın

Hedef platformunuzla ilgili bu uygulama kılavuzlarından birini uygulayarak bu görevi kullanmaya başlayın. Platforma özel bu kılavuzlar, önerilen bir model kullanarak bu görevin temel uygulamasını adım adım gösterir ve önerilen yapılandırma seçenekleriyle kod örnekleri sunar:

Görev ayrıntıları

Bu bölümde, bu görevin özellikleri, girişleri, çıkışları ve yapılandırma seçenekleri açıklanmaktadır.

Özellikler

  • Giriş resmi işleme: İşleme, resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
  • İlgi alanı: Resmin tamamı yerine bir bölgesinde sınıflandırma yapın.
  • Etiket haritası yerel ayarı: Görünen adlar için kullanılan dili ayarlayın.
  • Skor eşiği: Sonuçları tahmin puanlarına göre filtreleyin.
  • En iyi k sınıflandırması: Sınıflandırma sonuçlarının sayısını sınırlayın.
  • Etiket izin verilenler ve red listesi: Sınıflandırılan kategorileri belirtin.
Görev girişleri Görev çıkışları
Giriş aşağıdaki veri türlerinden biri olabilir:
  • Sabit resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Resim Sınıflandırıcı, aşağıdakileri içeren bir kategori listesi oluşturur:
  • Kategori dizini: Model çıktılarındaki kategorinin dizini
  • Puan: Bu kategorinin güven puanı, genellikle [0,1] aralığında bir olasılık
  • Kategori adı (isteğe bağlı): Varsa TFLite Model Meta Verileri'nde belirtilen kategorinin adı
  • Kategori görünen adı (isteğe bağlı): TFLite Model Meta Verileri'nde belirtildiği şekilde, görünen ad yerel ayarları seçenekleri aracılığıyla belirtilen dilde kategori için görünen ad (varsa)

Yapılandırma seçenekleri

Bu görev için aşağıdaki yapılandırma seçenekleri vardır:

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 resim girişleri için kullanılan mod.

VIDEO: Bir videonun kod çözülmüş karelerinin modu.

LIVE_STREAM: Kameradan alınan giriş verilerinin canlı yayını için kullanılan mod. Bu modda, sonuçları asenkron olarak alacak bir dinleyici oluşturmak için resultListener çağrılmalıdır.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
display_names_locale Görevin modelinin meta verilerinde sağlanan görünen adlar için kullanılacak etiketlerin dilini belirler (varsa). Varsayılan değer, İngilizce için en'tir. TensorFlow Lite Meta Veri Yazıcı API'yi kullanarak özel bir modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz Yer kodu en
max_results Döndürülecek isteğe bağlı maksimum puana sahip sınıflandırma sonucu sayısını belirler. < 0 ise mevcut tüm sonuçlar döndürülür. Tüm pozitif sayılar -1
score_threshold Model meta verilerinde (varsa) sağlanan eşiği geçersiz kılan tahmin puanı eşiğini belirler. Bu değerin altındaki sonuçlar reddedilir. Herhangi bir kayan nokta Ayarlanmadı
category_allowlist İzin verilen kategori adlarının isteğe bağlı listesini ayarlar. Boş değilse kategori adı bu kümede bulunmayan sınıflandırma sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yok sayılır. Bu seçenek, category_denylist ile birbirini hariç tutar ve her ikisinin de kullanılması hatayla sonuçlanır. Herhangi bir dize Ayarlanmadı
category_denylist İzin verilmeyen kategori adlarının isteğe bağlı listesini ayarlar. Boş değilse kategori adı bu kümede bulunan sınıflandırma sonuçları filtrelenir. Yinelenen veya bilinmeyen kategori adları yok sayılır. Bu seçenek, category_allowlist ile birlikte kullanılamaz. İkisinin birlikte kullanılması hataya neden olur. Herhangi bir dize Ayarlanmadı
result_callback Sonuç dinleyicisini, görüntü sınıflandırıcı canlı yayın modundayken sınıflandırma sonuçlarını eşzamansız olarak alacak şekilde ayarlar. Yalnızca çalışma modu LIVE_STREAM olarak ayarlandığında kullanılabilir. Yok Ayarlanmadı

Modeller

Resim sınıflandırıcı, bir resim sınıflandırma modelinin indirilip proje dizininizde depolanmasını gerektirir. Bu görevle geliştirmeye başladığınızda hedef platformunuz için varsayılan, önerilen modelle başlayın. Diğer mevcut modeller genellikle performans, doğruluk, çözünürlük ve kaynak gereksinimleri arasında denge kurar ve bazı durumlarda ek özellikler içerir.

EfficientNet-Lite0 modeli, EfficientNet mimarisini kullanır ve ağaç, hayvan, yiyecek, araç, kişi vb. gibi 1.000 sınıfı tanımak için ImageNet kullanılarak eğitilmiştir. Desteklenen etiketlerin tam listesini inceleyin. EfficientNet-Lite0, int8 ve float 32 modeli olarak kullanılabilir. Bu model, gecikme ve doğruluk arasında denge sağladığı için önerilir. Hem doğru hem de birçok kullanım alanı için yeterince hafiftir.

Model adı Giriş şekli Kesirli sayılaştırma türü Sürümler
EfficientNet-Lite0 (int8) 224 x 224 int8 En son
EfficientNet-Lite0 (32 bit kayan nokta) 224 x 224 Yok (float32) En son

EfficientNet-Lite2 modeli

EfficientNet-Lite2 modeli, EfficientNet mimarisini kullanır ve ağaç, hayvan, yiyecek, araç, kişi vb. gibi 1.000 sınıfı tanımak için ImageNet kullanılarak eğitilmiştir. Desteklenen etiketlerin tam listesini inceleyin. EfficientNet-Lite2, int8 ve float 32 modeli olarak kullanılabilir. Bu model genellikle EfficientNet-Lite0'dan daha doğrudur ancak daha yavaş ve daha fazla bellek kullanır. Bu model, doğruluğun hız veya boyuttan daha yüksek öncelikli olduğu kullanım alanları için uygundur.

Model adı Giriş şekli Kesirli sayılaştırma türü Sürümler
EfficientNet-Lite2 (int8) 224 x 224 int8 En son
EfficientNet-Lite2 (kayan nokta 32) 224 x 224 Yok (float32) En son

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

Yukarıdaki önceden eğitilmiş modellere dayalı olarak tüm ardışık düzenin görev karşılaştırmalarını aşağıda bulabilirsiniz. Gecikme sonucu, CPU / GPU kullanan Pixel 6'taki ortalama gecikmedir.

Model Adı CPU Gecikmesi GPU Gecikmesi
EfficientNet-Lite0 (kayan nokta 32) 23,52 ms 18,90 ms
EfficientNet-Lite0 (int8) 10,08 ms -
EfficientNet-Lite2 (kayan noktalı 32 bit) 44,17 ms 22,20 ms
EfficientNet-Lite2 (int8) 19,43 ms -

Özel modeller

Sağlanan modellerin özelliklerini iyileştirmek veya değiştirmek istiyorsanız bu görevle özelleştirilmiş bir ML modeli kullanabilirsiniz. Mevcut modelleri değiştirmek veya TensorFlow gibi araçları kullanarak model oluşturmak için Model Oluşturucu'yu kullanabilirsiniz. MediaPipe ile kullanılan özel modeller TensorFlow Lite biçiminde olmalı ve modelin çalışma parametrelerini açıklayan belirli metadata içermelidir. Kendi modelinizi oluşturmadan önce, bu görev için sağlanan modelleri değiştirmek üzere Model Maker'ı kullanmayı düşünebilirsiniz.

Kendi veri kümenizi kullanarak özel bir görüntü sınıflandırıcı oluşturmak istiyorsanız Görüntü sınıflandırıcı özelleştirme eğitimiyle başlayın.