Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

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

İnsanlar, etkinlikler, hayvanlar, bitkiler ve yerler dahil olmak üzere yüzlerce nesne sınıfını tanımlamak için önceden eğitilmiş ve optimize edilmiş bir model kullanın.

Başlamak

Görüntü sınıflandırması kavramına aşina değilseniz , Görüntü sınıflandırması nedir?

Bir mobil uygulamada görüntü sınıflandırmasının nasıl kullanılacağını öğrenmek için, Örnek uygulamalarımızı ve kılavuzlarımızı incelemenizi öneririz.

Android veya iOS dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine aşina iseniz, başlangıç ​​görüntü sınıflandırma modelimizi ve beraberindeki etiketleri indirebilirsiniz.

Başlangıç ​​modelini ve etiketlerini indirin

Başlangıç ​​modelini hedef cihazınızda çalıştırdıktan sonra, performans, doğruluk ve model boyutu arasındaki optimum dengeyi bulmak için farklı modelleri deneyebilirsiniz. Yardım için Farklı bir model seçme bölümüne bakın.

Örnek uygulamalar ve kılavuzlar

Hem Android hem de iOS için resim sınıflandırması için örnek uygulamalarımız var. Her örnek için, nasıl çalıştığını açıklayan bir kılavuz sunuyoruz.

Android

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

Uygulamanın nasıl çalıştığını öğrenmek için Android örnek kılavuzunu okuyun.

iOS

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

Uygulamanın nasıl çalıştığını öğrenmek için iOS örnek kılavuzunu okuyun.

Ekran görüntüsü

Aşağıdaki ekran görüntüsü Android görüntü sınıflandırma örneğini göstermektedir.

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

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

Makine öğreniminin yaygın bir kullanımı, bir görüntünün neyi temsil ettiğini belirlemektir. Örneğin, aşağıdaki fotoğrafta ne tür bir hayvanın göründüğünü bilmek isteyebiliriz.

köpek

Bir görüntünün neyi temsil ettiğini tahmin etme 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, bir model üç farklı hayvan türünü temsil eden fotoğrafları tanımak için eğitilebilir: tavşanlar, hamsterler ve köpekler.

Daha sonra modele girdi olarak yeni bir görüntü sağladığımızda, üzerinde eğitildiği hayvan türlerinin her birini temsil eden görüntünün olasılıklarını çıkaracaktı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ıya dayanarak, sınıflandırma modelinin görüntünün bir köpeği temsil etme olasılığının yüksek olduğunu tahmin ettiğini görebiliriz.

Eğitim, etiketler ve çıkarım

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.

Çıkarım yapmak için, bir modele girdi olarak bir görüntü aktarılır. Model daha sonra 0 ile 1 arasında bir olasılık dizisi çıkaracaktır. Örnek modelimizle, bu süreç aşağıdaki gibi görünebilir:

köpek [0,07, 0,02, 0,91]

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

Etiket olasılık
tavşan 0.07
hamster 0.02
köpek 0.91

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

Olasılıkların toplamı her zaman 1 olacağından, görüntünün modelin eğitildiği sınıflardan herhangi birine ait olduğu kesin olarak tanınmazsa, olasılığın etiketlere dağıtıldığını, 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

Kullanımlar ve sınırlamalar

Sağladığımız görüntü sınıflandırma modelleri, tek etiketli sınıflandırma için kullanışlıdır; bu, görüntünün hangi tek etiketi temsil etme olasılığının en yüksek olduğunu tahmin etmek anlamına gelir. 1000 görüntü sınıfını tanımak için 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. Rehberlik için Farklı bir model seçme bölümüne bakın.

Performans testleri

Performans karşılaştırma numaraları, burada açıklanan araçla oluşturulur.

Model adı Model boyutu cihaz NNAPI İşlemci
Mobilenet_V1_1.0_224_quant 4.3 Mb Pixel 3 (Android 10) 6ms 13ms *
Pixel 4 (Android 10) 3.3ms 5ms *
iPhone XS (iOS 12.4.1) 11ms **

* 4 iplik kullanıldı.

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

Farklı bir model seçin

Barındırılan modeller listemizde çok sayıda görüntü sınıflandırma modeli mevcuttur. Uygulamanız için performans, doğruluk ve model boyutuna göre en uygun modeli seçmeyi hedeflemelisiniz. Her biri arasında değiş tokuş var.

Verim

Performansı, bir modelin belirli bir donanım parçası üzerinde çıkarım yapması için geçen süre açısından ölçüyoruz. Daha az zaman, model daha hızlı.

İ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 yapmak için çıkarımın 33 ms'den daha hızlı olması gerekir) .

Nicelleştirilmiş MobileNet modellerimizin performansı 3,7 ms ile 80,3 ms arasında değişir.

doğruluk

Doğruluğu, modelin bir görüntüyü ne sıklıkla doğru sınıflandırdığına göre ölçüyoruz. Ö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 modeller listemiz , İ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ında en yüksek 5 olasılıkta doğru etiketin ne sıklıkla göründüğünü ifade eder.

Nicelleştirilmiş MobileNet modellerimizin İlk 5 doğruluğu% 64,4 ile% 89,9 arasında değişmektedir.

Boyut

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.

Nicelleştirilmiş MobileNet modellerimizin boyutu 0,5 ile 3,4 Mb arasında değişmektedir.

Mimari

Barındırılan modellerin listesinde, modelin adıyla gösterilen birkaç farklı model mimarisi mevcuttur. Örneğin, MobileNet, Inception ve diğerleri arasından seçim yapabilirsiniz.

Bir modelin mimarisi, performansını, doğruluğunu ve boyutunu etkiler. Barındırılan tüm modellerimiz aynı veriler üzerinde eğitilmiştir, yani sağlanan istatistikleri kullanarak bunları karşılaştırabilir ve uygulamanız için hangisinin en uygun olduğunu seçebilirsiniz.

Modeli özelleştirin

Sağladığımız ö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 öğrenimi olarak bilinen bir tekniği 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 kod laboratuarında veya model oluşturucu araç setiyle Çiçekleri Tanıyın'da transfer öğrenmeyi nasıl gerçekleştireceğinizi öğrenin.