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.
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:
- Android - Kod örneği - Kılavuz
- Python - Kod örneği - Kılavuz
- Web - Kod örneği - Kılavuz
- iOS - Kod örneği - Kılavuz
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:
|
Image Classifier, aşağıdakileri içeren bir kategori listesi verir:
|
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 (önerilir)
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.