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

MediaPipe Görüntü Sınıflandırıcı görevi, görüntüler üzerinde sınıflandırma yapmanıza olanak tanır. Bu görevi, bir resmin eğitim sırasında tanımlanan bir grup kategori içinde neyi temsil ettiğini belirlemek için kullanabilirsiniz. Bu görev, statik veri veya sürekli akış olarak bir makine öğrenimi (ML) modeliyle görüntü verileri üzerinde çalışır ve azalan olasılık puanına göre sıralanmış potansiyel kategorilerin listesini oluşturur.

Deneyin!

Başlayın

Hedef platformunuz için bu uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın. Platforma özgü bu kılavuzlar, önerilen bir model kullanarak bu görevin temel bir şekilde uygulanmasında size yol gösterir ve önerilen yapılandırma seçenekleriyle kod örnekleri sağlar:

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

  • Resim işleme: İşleme resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
  • İlgilenilen bölge: Resmin tamamı yerine belirli bir bölgesi üzerinde sınıflandırma yapın.
  • 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.
  • Top-k sınıflandırması - Sınıflandırma sonuçlarının sayısını sınırlandırın.
  • Etiket izin verilenler listesi ve ret listesi - Sınıflandırılmış kategorileri belirtin.
Görev girişleri Görev çıkışları
Giriş, aşağıdaki veri türlerinden biri olabilir:
  • Hareketsiz resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Image Classifier, aşağıdakileri içeren bir kategori listesi verir:
  • Kategori dizini: Model çıkışlarındaki kategori dizini
  • Puan: Bu kategorinin güven puanı. Genellikle [0,1] aralığında bir olasılıktır.
  • Kategori adı (isteğe bağlı): TFLite Modeli Meta Verileri'nde belirtilen kategori adı (varsa)
  • Kategori görünen adı (isteğe bağlı): TFLite Model Meta Verilerinde belirtildiği şekliyle, varsa görünen adlar yerel ayarları aracılığıyla belirtilen dilde, kategori için görünen ad

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_locale 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ı sınıflandırma sonuçlarının isteğe bağlı maksimum sayısını ayarlar. < 0 ise mevcut tüm sonuçlar döndürülür. Pozitif sayılar -1
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 sınıflandırma 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 sınıflandırma 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
result_callback Sonuç işleyiciyi, 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ıştırma modu LIVE_STREAM olarak ayarlandığında kullanılabilir Yok Belirlenmedi

Modeller

Görüntü Sınıflandırıcı, bir görüntü 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. Mevcut diğer 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çlar, hayvanlar, yiyecekler, araçlar, kişiler gibi 1.000 sınıfı tanıyacak şekilde ImageNet kullanılarak eğitilmiştir. Desteklenen etiketlerin tam listesine bakın. EfficientNet-Lite0, int8 ve kayan 32 modeli olarak kullanılabilir. 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
EfficientNet-Lite0 (int8) 224 x 224 int8 En son
EfficientNet-Lite0 (float 32) 224 x 224 Yok (float32) En son

EfficientNet-Lite2 modeli

EfficientNet-Lite2 modeli, EfficientNet mimarisini kullanır ve ağaçlar, hayvanlar, yiyecekler, araçlar, kişiler gibi 1.000 sınıfı tanıyacak şekilde ImageNet kullanılarak eğitilmiştir. Desteklenen etiketlerin tam listesine bakın. EfficientNet-Lite2, int8 ve kayan 32 modeli olarak kullanılabilir. Bu model genellikle EfficientNet-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 veya boyuttan daha yüksek öncelikli olduğu kullanım durumları için uygundur.

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

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

Yukarıda önceden eğitilmiş modellere dayalı olarak ardışık düzenin tamamı için görev karşılaştırmaları aşağıda verilmiştir. Gecikme sonucu, Pixel 6'da CPU / GPU kullanılarak elde edilen ortalama gecikmedir.

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

Özel modeller

Sağlanan modellerin özelliklerini iyileştirmek veya değiştirmek isterseniz bu görevle özelleştirilmiş bir makine öğrenimi modeli kullanabilirsiniz. Mevcut modelleri değiştirmek veya TensorFlow gibi araçlar kullanarak bir model oluşturmak için Model Maker'ı kullanabilirsiniz. MediaPipe ile kullanılan özel modeller TensorFlow Lite biçiminde olmalı ve modelin işletim parametrelerini açıklayan belirli meta verileri içermelidir. Kendi modelinizi oluşturmadan önce, bu görev için verilen modelleri değiştirmek amacıyla Model Maker'ı kullanmayı düşünmelisiniz.

Kendi veri kümenizi kullanarak özel bir Resim sınıflandırıcı oluşturmak isterseniz Resim sınıflandırıcı özelleştirme eğitimiyle başlayın.