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.
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:
- Android - Kod örneği - Kılavuz
- Python - Kod örneği - Kılavuz
- Web - Kod örneği - Kılavuz
- iOS - Kod örneği - Rehber
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:
|
Resim Sınıflandırıcı, aşağıdakileri içeren bir kategori listesi oluşturur:
|
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 (önerilen)
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.