ML Kit ile özel modeller

ML Kit'in API'leri varsayılan olarak Google tarafından eğitilmiş makine öğrenimi modellerini kullanır. Bu modeller, çok çeşitli uygulamaları kapsayacak şekilde tasarlanmıştır. Ancak bazı kullanım alanları daha hedefli modeller gerektirir. Bu nedenle, bazı ML Kit API'leri artık varsayılan modelleri özel LiteRT modelleriyle değiştirmenize olanak tanıyor.

Hem Image Labeling hem de Object Detection & Tracking API, özel görüntü sınıflandırma modellerini destekler. Bu API'ler, TensorFlow Hub'daki yüksek kaliteli önceden eğitilmiş modellerin bir seçkisiyle veya TensorFlow ya da AutoML ile eğitilmiş kendi özel modelinizle uyumludur.

Diğer alanlar veya kullanım alanları için özel bir çözüme ihtiyacınız varsa Google'ın cihaz üzerinde makine öğrenimi ile ilgili tüm çözümleri ve araçları hakkında bilgi edinmek için Cihaz Üzerinde Makine Öğrenimi sayfasını ziyaret edin.

ML Kit'i özel modellerle kullanmanın avantajları

ML Kit ile özel görüntü sınıflandırma modeli kullanmanın avantajları şunlardır:

  • Kullanımı kolay üst düzey API'ler: Düşük düzeyli model giriş/çıkışıyla uğraşmanıza, resim ön/son işlemeyi yönetmenize veya işleme ardışık düzeni oluşturmanıza gerek yoktur.
  • ML Kit, etiketleri kendiniz eşlemeniz konusunda endişelenmenize gerek kalmadan LiteRT modeli meta verilerinden çıkarır ve eşlemeyi sizin için yapar.
  • TensorFlow Hub'da yayınlanan önceden eğitilmiş modellerden TensorFlow veya AutoML ile eğitilmiş yeni modellere kadar çok çeşitli kaynaklardan gelen özel modelleri destekler.
  • Android'in Kamera API'leriyle entegrasyon için optimize edilmiştir.

Ayrıca, özellikle Nesne Algılama ve İzleme için:

  • Önce nesneleri bularak ve sınıflandırıcıyı yalnızca ilgili görüntü alanında çalıştırarak sınıflandırma doğruluğunu artırın.
  • Kullanıcılarınıza algılanan ve sınıflandırılan nesneler hakkında anında geri bildirim vererek anlık etkileşimli bir deneyim sunun.

Önceden eğitilmiş bir görüntü sınıflandırma modeli kullanma

Bir dizi ölçütü karşılamaları koşuluyla önceden eğitilmiş LiteRT modellerini kullanabilirsiniz. TensorFlow Hub aracılığıyla, Google veya diğer model oluşturucular tarafından geliştirilen ve bu ölçütleri karşılayan bir dizi onaylı model sunuyoruz.

TensorFlow Hub'da yayınlanan bir modeli kullanma

TensorFlow Hub, çeşitli model oluşturucular tarafından sunulan ve görüntü etiketleme ile nesne algılama ve izleme API'leriyle kullanılabilen, önceden eğitilmiş çok çeşitli görüntü sınıflandırma modelleri sunar. Şu adımları uygulayın:

  1. ML Kit ile uyumlu modeller koleksiyonundan bir model seçin.
  2. Model ayrıntıları sayfasından .tflite model dosyasını indirin. Mümkünse meta verileri içeren bir model biçimi seçin.
  3. Model dosyasını projenizle birlikte paketleme ve Android veya iOS uygulamanızda kullanma hakkında bilgi edinmek için Image Labeling API ya da Object Detection and Tracking API ile ilgili kılavuzlarımızı inceleyin.

Kendi görüntü sınıflandırma modelinizi eğitme

Önceden eğitilmiş bir resim sınıflandırma modeli ihtiyaçlarınıza uygun değilse kendi LiteRT modelinizi eğitmenin çeşitli yolları vardır. Bunlardan bazıları aşağıdaki bölümde özetlenmiş ve daha ayrıntılı olarak ele alınmıştır.

Kendi görüntü sınıflandırma modelinizi eğitme seçenekleri
AutoML
  • Google Cloud AI aracılığıyla sunulur.
  • Son teknoloji ürünü görüntü sınıflandırma modelleri oluşturma
  • Performans ve boyut arasında değerlendirme yapma
TensorFlow modelini LiteRT'ye dönüştürme
  • TensorFlow ile bir model eğitip LiteRT'ye dönüştürme

AutoML

AutoML kullanılarak eğitilen görüntü sınıflandırma modelleri, Görüntü Etiketleme ve Nesne Algılama ve İzleme API'lerindeki özel modeller tarafından desteklenir. Bu API'ler, Cloud Storage ile barındırılan modellerin indirilmesini de destekler.

AutoML ile eğitilmiş bir modeli Android ve iOS uygulamalarınızda nasıl kullanacağınız hakkında daha fazla bilgi edinmek için kullanım alanınıza bağlı olarak her API'ye yönelik özel model kılavuzlarını inceleyin.

LiteRT dönüştürücü kullanılarak oluşturulan modeller

Mevcut bir TensorFlow görüntü sınıflandırma modeliniz varsa LiteRT dönüştürücüyü kullanarak modeli dönüştürebilirsiniz. Oluşturulan modelin aşağıdaki uyumluluk koşullarını karşıladığından emin olun.

Android ve iOS uygulamalarınızda LiteRT modelini kullanma hakkında daha fazla bilgi edinmek için kullanım alanınıza bağlı olarak Image Labeling API veya Object Detection and Tracking API kılavuzlarımızı inceleyin.

LiteRT model uyumluluğu

Aşağıdaki koşulları karşılaması şartıyla önceden eğitilmiş herhangi bir LiteRT görüntü sınıflandırma modelini kullanabilirsiniz:

Tensörler

  • Modelde aşağıdaki kısıtlamalara sahip yalnızca bir giriş tensörü olmalıdır:
    • Veriler RGB piksel biçimindedir.
    • Veriler UINT8 veya FLOAT32 türündedir. Giriş tensör türü FLOAT32 ise Metadata ekleyerek NormalizationOptions'ı belirtmesi gerekir.
    • Tensörün 4 boyutu vardır : BxHxWxC. Burada:
      • B, grup boyutudur. 1 olmalıdır (daha büyük gruplarda çıkarım desteklenmez).
      • G ve Y, giriş genişliği ve yüksekliğidir.
      • C, beklenen kanal sayısıdır. 3 olmalıdır.
  • Modelde N sınıflı ve 2 veya 4 boyutlu en az bir çıkış tensörü olmalıdır:
    • (1xN)
    • (1x1x1xN)
  • Yalnızca tek başlı modeller tam olarak desteklenir. Çok başlı modeller beklenmedik sonuçlar verebilir.

Meta veri

LiteRT modellerine meta veri ekleme başlıklı makalede açıklandığı gibi LiteRT dosyasına meta veri ekleyebilirsiniz.

FLOAT32 giriş tensörüne sahip bir modeli kullanmak için meta verilerde NormalizationOptions'ı belirtmeniz gerekir.

Bu meta verileri çıkış tensörüne TensorMetadata olarak eklemenizi de öneririz:

  • Her çıkış sınıfının adını belirten bir etiket haritası, türü TENSOR_AXIS_LABELS olan bir AssociatedFile olarak (aksi takdirde yalnızca sayısal çıkış sınıfı dizinleri döndürülebilir)
  • Sonuçların döndürülmesi için güven düzeyinin çok düşük kabul edildiği varsayılan puan eşiği. ProcessUnit olarak ScoreThresholdingOptions ile birlikte kullanılır.