Tarihi kaydet! Google I / O 18-20 Mayıs'ta geri dönüyor Şimdi kaydolun
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Görüntü sınıflandırması

Bir görüntünün neyi temsil ettiğini belirleme görevine görüntü sınıflandırması denir. Bir görüntü sınıflandırma modeli, çeşitli görüntü sınıflarını tanımak için eğitilmiştir. Örneğin, üç farklı hayvan türünü temsil eden fotoğrafları tanımak için bir model eğitebilirsiniz: tavşanlar, hamsterler ve köpekler. TensorFlow Lite, mobil uygulamalarınızda devreye alabileceğiniz optimize edilmiş önceden eğitilmiş modeller sağlar. TensorFlow kullanarak görüntü sınıflandırma hakkında daha fazla bilgiyi buradan edinebilirsiniz .

Aşağıdaki görüntü, Android'deki görüntü sınıflandırma modelinin çıktısını göstermektedir.

Android örneğinin ekran görüntüsü

Başlamak

TensorFlow Lite'ta yeniyseniz ve Android veya iOS ile çalışıyorsanız, başlamanıza yardımcı olabilecek aşağıdaki örnek uygulamaları keşfetmeniz önerilir.

Görüntü sınıflandırma modellerini yalnızca birkaç kod satırında entegre etmek için TensorFlow Lite Görev Kitaplığı'ndaki kullanıma hazır API'den yararlanabilirsiniz. TensorFlow Lite Destek Kitaplığı'nı kullanarak kendi özel çıkarım ardışık düzeninizi de oluşturabilirsiniz .

Aşağıdaki Android örneği, sırasıyla lib_task_api ve lib_support olarak her iki yöntemin uygulamasını göstermektedir.

Android örneğini görüntüleyin

İOS örneğini görüntüleyin

Android / iOS dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine aşina iseniz , başlangıç ​​modelini ve destekleyici dosyaları (varsa) indirin.

Başlangıç ​​modelini indirin

Model Açıklaması

Nasıl çalışır

Eğitim sırasında, bir görüntü sınıflandırma modeli, görüntüler ve bunların ilgili etiketleri ile beslenir. Her etiket, modelin tanımayı öğreneceği farklı bir kavramın veya sınıfın adıdır.

Yeterli eğitim verisi verildiğinde (genellikle etiket başına yüzlerce veya binlerce görüntü), bir görüntü sınıflandırma modeli, yeni görüntülerin eğitim aldığı sınıflardan herhangi birine ait olup olmadığını tahmin etmeyi öğrenebilir. Bu tahmin sürecine çıkarım denir. Önceden var olan bir modeli kullanarak yeni görüntü sınıflarını tanımlamak için aktarım öğrenmeyi de kullanabileceğinizi unutmayın. Transfer öğrenimi çok büyük bir eğitim veri kümesi gerektirmez.

Daha sonra modele girdi olarak yeni bir görüntü sağladığınızda, üzerinde eğitildiği hayvan türlerinin her birini temsil eden görüntünün olasılıklarını çıkarır. Örnek bir çıktı aşağıdaki gibi olabilir:

Hayvan türü Olasılık
Tavşan 0.07
Hamster 0.02
Köpek 0.91

Çıktıdaki her sayı, eğitim verilerindeki bir etikete karşılık gelir. Çıktıyı modelin eğitildiği üç etiketle ilişkilendirerek, modelin görüntünün bir köpeği temsil etme olasılığının yüksek olduğunu tahmin ettiğini görebilirsiniz.

Tüm olasılıkların toplamının (tavşan, hamster ve köpek için) 1'e eşit olduğunu fark edebilirsiniz. Bu, birden çok sınıfa sahip modeller için yaygın bir çıktı türüdür (daha fazla bilgi için bkz. Softmax ).

Belirsiz sonuçlar

Çıktı olasılıklarının toplamı her zaman 1 olacağından, bir görüntünün modelin eğitildiği sınıflardan herhangi birine ait olduğu kesin olarak algılanmazsa, olasılığın etiketlere dağıtıldığını ve herhangi bir değerin önemli ölçüde daha büyük olmadığını görebilirsiniz.

Örneğin, aşağıdaki belirsiz bir sonucu gösterebilir:

Etiket Olasılık
tavşan 0.31
hamster 0.35
köpek 0.34
Modeliniz sık sık belirsiz sonuçlar veriyorsa, farklı, daha doğru bir modele ihtiyacınız olabilir.

Model mimari seçimi

TensorFlow Lite, tümü orijinal veri kümesinde eğitilmiş çeşitli görüntü sınıflandırma modelleri sunar. MobileNet, Inception ve NASNet gibi model mimarileri barındırılan modeller sayfasında mevcuttur . Kullanım durumunuz için en iyi modeli seçmek için, bireysel mimarileri ve çeşitli modeller arasındaki bazı ödünleşimleri göz önünde bulundurmanız gerekir. Bu model değiş tokuşlarından bazıları performans, doğruluk ve model boyutu gibi ölçütlere dayalıdır. Örneğin, bir tıbbi görüntüleme uygulaması için daha yavaş, daha doğru bir modeli tercih ederken, bir barkod tarayıcısı oluşturmak için daha hızlı bir modele ihtiyacınız olabilir. Sağlanan görüntü sınıflandırma modellerinin çeşitli boyutlarda girdileri kabul ettiğini unutmayın. Bazı modellerde bu, dosya adında belirtilir. Örneğin, Mobilenet_V1_1.0_224 modeli 224x224 piksellik bir girişi kabul eder. Tüm modeller piksel başına üç renk kanalı gerektirir (kırmızı, yeşil ve mavi). Nicelleştirilmiş modeller kanal başına 1 bayt gerektirir ve kayan modeller kanal başına 4 bayt gerektirir. Android ve iOS kod örnekleri, tam boyutlu kamera görüntülerinin her model için gerekli formatta nasıl işleneceğini gösterir.

Kullanımlar ve sınırlamalar

TensorFlow Lite görüntü sınıflandırma modelleri, tek etiketli sınıflandırma için kullanışlıdır; yani, resmin hangi tek etiketi temsil etme olasılığının en yüksek olduğunu tahmin etmek. 1000 görüntü sınıfını tanımak üzere eğitilmişlerdir. Sınıfların tam listesi için, model zip dosyasındaki etiketler dosyasına bakın. Yeni sınıfları tanımak için bir model eğitmek istiyorsanız, Modeli özelleştirme konusuna bakın. Aşağıdaki kullanım durumları için farklı bir model türü kullanmalısınız:
  • Bir görüntüdeki bir veya daha fazla nesnenin türünü ve konumunu tahmin etme (bkz. Nesne algılama )
  • Bir görüntünün kompozisyonunu tahmin etme, örneğin konuya karşı arka plan (bkz. Bölümleme )
Başlangıç ​​modelini hedef cihazınızda çalıştırdıktan sonra, performans, doğruluk ve model boyutu arasındaki en uygun dengeyi bulmak için farklı modelleri deneyebilirsiniz.

Modeli özelleştirin

Sağlanan önceden eğitilmiş modeller, 1000 görüntü sınıfını tanımak üzere eğitilmiştir. Sınıfların tam listesi için, model zip dosyasındaki etiketler dosyasına bakın. Orijinal sette olmayan sınıfları tanımak için bir modeli yeniden eğitmek için transfer öğrenmeyi de kullanabilirsiniz. Örneğin, orijinal eğitim verilerinde ağaç olmamasına rağmen farklı ağaç türleri arasında ayrım yapmak için modeli yeniden eğitebilirsiniz. Bunu yapmak için, eğitmek istediğiniz her yeni etiket için bir dizi eğitim görüntüsüne ihtiyacınız olacak. TensorFlow codelab veya Model Maker kitaplığı ile Çiçekleri Tanıyın'da transfer öğrenmeyi nasıl gerçekleştireceğinizi öğrenin.

Performans testleri

Model performansı, bir modelin belirli bir donanım parçası üzerinde çıkarım yapması için geçen süre cinsinden ölçülür. Zaman ne kadar düşükse model o kadar hızlıdır. İhtiyaç duyduğunuz performans, uygulamanıza bağlıdır. Performans, gerçek zamanlı video gibi uygulamalar için önemli olabilir; burada her kareyi bir sonraki kare çizilmeden önce analiz etmek önemli olabilir (örneğin, 30 fps video akışında gerçek zamanlı çıkarım gerçekleştirmek için çıkarımın 33 ms'den daha hızlı olması gerekir) . TensorFlow Lite, MobileNet modellerinin performans aralığını 3,7 ms ile 80,3 ms arasında nicelleştirmiştir. Karşılaştırma aracı ile performans karşılaştırma numaraları oluşturulur.
Model adı Model boyutu cihaz NNAPI İşlemci
Mobilenet_V1_1.0_224_quant 4.3 Mb Pixel 3 (Android 10) 6 ms 13 ms *
Pixel 4 (Android 10) 3,3 ms 5 ms *
iPhone XS (iOS 12.4.1) 11 ms **

* 4 iplik kullanıldı.

** En iyi performans sonucu için iPhone'da kullanılan 2 iş parçacığı.

Model doğruluğu

Doğruluk, modelin bir görüntüyü ne sıklıkla doğru şekilde sınıflandırdığına göre ölçülür. Örneğin, doğruluğu% 60 olan bir modelin bir görüntüyü ortalama% 60 oranında doğru bir şekilde sınıflandırması beklenebilir.

Barındırılan modellerin listesi İlk 1 ve İlk 5 doğruluk istatistiklerini sağlar. İlk 1, modelin çıktısında en yüksek olasılığa sahip etiket olarak doğru etiketin ne sıklıkla göründüğünü belirtir. İlk 5, modelin çıktısındaki en yüksek 5 olasılıkta doğru etiketin ne sıklıkla göründüğünü ifade eder.

TensorFlow Lite, MobileNet modellerinin ilk 5 doğruluk aralığını% 64,4 ile% 89,9 arasında nicelleştirmiştir.

Model boyutu

Diskteki bir modelin boyutu, performansına ve doğruluğuna göre değişir. Boyut, mobil geliştirme için (uygulama indirme boyutlarını etkileyebileceği durumlarda) veya donanımla çalışırken (mevcut depolama sınırlı olabileceği durumlarda) önemli olabilir.

TensorFlow Lite, MobileNet modellerinin boyutları 0,5 ila 3,4 MB arasında değişir.

Daha fazla okuma ve kaynaklar

Görüntü sınıflandırmasıyla ilgili kavramlar hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları kullanın: