AutoML Vision Edge ile görüntü etiketleme modelini eğitme

Görüntü etiketleme modelini eğitmek için AutoML Vision Edge'e bir dizi görüntü ve ilgili etiketler sağlarsınız. AutoML Vision Edge, bulutta yeni bir model eğitmek için bu veri kümesini kullanır. Bu modeli, uygulamanızda cihaz üzerinde görüntü etiketleme için kullanabilirsiniz. (Bu özellikle ilgili genel bilgi için Genel Bakış bölümüne bakın.)

AutoML Vision Edge, bir Google Cloud hizmetidir. Hizmetin kullanımı, Google Cloud Platform Lisans Sözleşmesi ve Hizmete Özel Şartlar'a tabidir ve buna göre faturalandırılır. Fatura bilgileri için AutoML Fiyatlandırma sayfasına bakın.

Başlamadan önce

1. Eğitim verilerinizi derleme

Öncelikle, etiketli görüntülerden oluşan bir eğitim veri kümesi oluşturmanız gerekir. Aşağıdaki yönergeleri göz önünde bulundurun:

  • Resimler şu biçimlerden birinde olmalıdır: JPEG, PNG, GIF, BMP, ICO.

  • Her resim 30 MB veya daha küçük olmalıdır. AutoML Vision Edge'in ön işleme sırasında çoğu görüntüyü aşağı ölçeklendirdiğini unutmayın. Bu nedenle, çok yüksek çözünürlüklü görüntüler sağlamanın genellikle hiçbir doğruluk avantajı yoktur.

  • Her etiketten en az 10, tercihen 100 veya daha fazla örnek ekleyin.

  • Her etiket için birden çok açı, çözünürlük ve arka plan ekleyin.

  • Eğitim verileri, tahminlerin yapılacağı verilere olabildiğince yakın olmalıdır. Örneğin, kullanım alanınız bulanık ve düşük çözünürlüklü görüntüler içeriyorsa (bir güvenlik kamerası gibi) eğitim verileriniz bulanık, düşük çözünürlüklü görüntülerden oluşmalıdır.

  • AutoML Vision Edge tarafından oluşturulan modeller, gerçek dünyadaki nesnelerin fotoğrafları için optimize edilmiştir. Röntgenler, el çizimleri, taranmış belgeler, fişler vb. için uygun olmayabilirler.

    Ayrıca, modeller genellikle insanların atayamayacağı etiketleri tahmin edemez. Bu nedenle, bir insan resme 1-2 saniye boyunca bakarak etiket atayamıyorsa model de muhtemelen bunu yapacak şekilde eğitilemez.

Eğitim görüntüleriniz hazır olduğunda bunları Firebase'e aktarmaya hazırlayın. Üç seçeneğiniz vardır:

1. Seçenek: Yapılandırılmış zip arşivi

Eğitim görüntülerinizi, her biri bir etiketle adlandırılmış ve o etikete örnek olarak verilen görüntüler içeren dizinler halinde düzenleyin. Ardından, dizin yapısını bir zip arşivine sıkıştırın.

Bu zip arşivindeki dizin adları en fazla 32 ASCII karakter uzunluğunda olabilir ve yalnızca alfanümerik karakterler ile alt çizgi karakterini (_) içerebilir.

Örnek:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

2. seçenek: CSV diziniyle Cloud Storage

Eğitim görüntülerinizi Google Cloud Storage'a yükleyin. Ardından her görüntünün URL'si ve isteğe bağlı olarak her görüntü için doğru etiketleri listeleyen bir CSV dosyası hazırlayın. Bu seçenek, çok büyük veri kümeleri kullanırken faydalıdır.

Örneğin, görüntülerinizi Cloud Storage'a yükleyin ve aşağıdaki gibi bir CSV dosyası hazırlayın:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

Görüntüler, Firebase projenizin ilgili Google Cloud projesinin parçası olan bir pakette depolanmalıdır.

CSV dosyasını hazırlamayla ilgili daha fazla bilgi için Cloud AutoML Vision belgelerindeki Eğitim verilerinizi hazırlama bölümüne bakın.

3. Seçenek: Etiketsiz resimler

Eğitim görüntülerinizi yükledikten sonra Firebase konsolunda tek tek veya yapılandırılmamış bir zip dosyası içinde etiketleyin. Sonraki adıma bakın.

2. Modelinizi eğitin

Ardından, resimlerinizi kullanarak bir model eğitin:

  1. Google Cloud Console'da Vision Veri Kümeleri sayfasını açın. İstendiğinde projenizi seçin.

  2. Yeni veri kümesi'ni tıklayın, veri kümesi için bir ad girin, eğitmek istediğiniz model türünü seçin ve Veri kümesi oluştur'u tıklayın.

  3. Veri kümenizin İçe Aktarma sekmesinde, eğitim resimlerinizin ZIP arşivini veya bunları yüklediğiniz Cloud Storage konumlarını içeren bir CSV dosyasını yükleyin. Eğitim verilerinizi derleme başlıklı makaleyi inceleyin.

  4. İçe aktarma görevi tamamlandıktan sonra, eğitim verilerini doğrulamak ve etiketlenmemiş görüntüleri etiketlemek için Images sekmesini kullanın.

  5. Eğitim sekmesinde Eğitimi başlat'ı tıklayın.

    1. Modele bir ad verin ve model türünü seçin.

    2. Oluşturulan modelin performansını yöneten aşağıdaki eğitim ayarlarını yapılandırın:

      Modelin optimizasyon ölçütü: Kullanılacak model yapılandırması. Düşük gecikmenin veya küçük paket boyutunun önemli olduğu durumlarda daha hızlı ve daha küçük modelleri ya da doğruluğun en önemli olduğu durumlarda daha yavaş ve daha büyük modelleri eğitebilirsiniz.
      Düğüm saati bütçesi

      Modelin eğitimi için işlem saati cinsinden maksimum süre. Daha uzun eğitim süresi, genellikle daha doğru bir modelin elde edilmesini sağlar.

      Sistem, modelin optimize edildiğini ve ek eğitimin doğruluğu artırmayacağını belirlerse eğitimin belirtilen süreden daha kısa sürede tamamlanabileceğini unutmayın. Yalnızca kullanılan saatler için faturalandırılırsınız.

      Genel eğitim süreleri
      Çok küçük setler1 saat
      500 resim2 saat
      1.000 resim3 saat
      5.000 resim6 saat
      10.000 resim7 saat
      50.000 resim11 saat
      100.000 resim13 saat
      1.000.000 görüntü18 saat

3. Modelinizi değerlendirme

Eğitim tamamlandığında, Değerlendir sekmesini tıklayarak modelin performans metriklerini görebilirsiniz.

Bu sayfanın önemli kullanımlarından biri, modeliniz için en uygun güven eşiğini belirlemektir. Güven eşiği, modelin bir görüntüye etiket ataması için sahip olması gereken minimum güvendir. Güven eşiği kaydırma çubuğunu hareket ettirerek farklı eşiklerin modelin performansını nasıl etkilediğini görebilirsiniz. Model performansı iki metrik kullanılarak ölçülür: hassas ve geri çağırma.

Görüntü sınıflandırma bağlamında hassas, doğru şekilde etiketlenen görüntü sayısının modelin seçilen eşik göz önünde bulundurduğu görüntü sayısına oranıdır. Bir model yüksek hassasiyete sahip olduğunda etiketleri daha az sıklıkta (daha az yanlış pozitif) atar.

Geri çağırma, doğru şekilde etiketlenmiş görüntülerin sayısının, modelin etiketleyebilmesi gereken içeriğe sahip görüntü sayısına oranıdır. Bir model yüksek geri çağırmaya sahip olduğunda herhangi bir etiketi daha seyrek atayamaz (daha az yanlış negatif sonuç).

Hassasiyet veya geri çağırma için optimizasyon yapmanız, kullanım alanınıza bağlıdır. Daha fazla bilgi için AutoML Vision başlangıç kılavuzuna ve Kapsayıcı makine öğrenimi kılavuzuna bakın.

Sizin için uygun olan metrikler oluşturan bir güven eşiği bulduğunuzda, bunu not edin. Bu güven eşiğini uygulamanızda modeli yapılandırmak için kullanırsınız. (Uygun bir eşik değeri elde etmek için bu aracı istediğiniz zaman kullanabilirsiniz.)

4. Modelinizi yayınlama veya indirme

Modelin performansından memnunsanız ve bir uygulamada kullanmak istiyorsanız üç seçeneğiniz vardır. Bu seçeneklerden herhangi bir kombinasyonu seçebilirsiniz: online tahmin için modeli dağıtma, modeli Firebase'e yayınlama veya modeli indirip uygulamanızla paketleme.

Modeli dağıtma

Veri kümenizin Test et ve kullan sekmesinde, modelinizi bulutta çalıştıran online tahmin için modelinizi dağıtabilirsiniz. Bu seçenek Cloud AutoML belgelerinde ele alınmıştır. Bu sitedeki dokümanlarda kalan iki seçenek vardır.

Modeli yayınlayın

Modeli Firebase'de yayınlayarak, yeni bir uygulama sürümü yayınlamadan modeli güncelleyebilirsiniz. Ayrıca farklı kullanıcı gruplarına dinamik olarak farklı modeller sunmak için Remote Config ve A/B Testi'ni kullanabilirsiniz.

Modeli yalnızca Firebase'de barındırarak sağlamayı ve uygulamanızla birlikte paketlemeyi seçerseniz uygulamanızın ilk indirme boyutunu küçültebilirsiniz. Bununla birlikte, modelin uygulamanızla birlikte paketlenmemesi durumunda uygulamanız modeli ilk kez indirene kadar modelle ilgili işlevlerin kullanılamayacağını unutmayın.

Modelinizi yayınlamak için iki yöntemden birini kullanabilirsiniz:

  • Google Cloud konsolundaki veri kümenizin Test etme ve kullanma sayfasından TF Lite modelini indirin ve ardından Firebase konsolunun Özel model sayfasına giderek modeli yükleyin. Bu genellikle tek bir model yayınlamanın en kolay yoludur.
  • Admin SDK'yı kullanarak modeli doğrudan Google Cloud projenizden Firebase'e yayınlayın. Bu yöntemi, çeşitli modelleri toplu olarak yayınlamak veya otomatik yayınlama ardışık düzenleri oluşturmaya yardımcı olmak için kullanabilirsiniz.

Modeli Yönetici SDK'sı model management API ile yayınlamak için:

  1. SDK'yı yükleyin ve başlatın.

  2. Modeli yayınlayın.

    Modelin kaynak tanımlayıcısını belirtmeniz gerekir. Bu tanımlayıcı, aşağıdaki örneğe benzeyen bir dizedir:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Modeli içeren Cloud Storage paketinin proje numarası. Bu, sizin Firebase projeniz veya başka bir Google Cloud projesi olabilir. Bu değeri, Firebase konsolunun veya Google Cloud Console kontrol panelinin Ayarlar sayfasında bulabilirsiniz.
    MODEL_ID AutoML Cloud API'den aldığınız model kimliği.

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Modeli indirip uygulamanızla paket haline getirme

Modelinizi uygulamanızla paket haline getirerek, Firebase tarafından barındırılan model kullanılamadığında uygulamanızın makine öğrenimi özelliklerinin çalışmaya devam etmesini sağlayabilirsiniz.

Modeli hem yayınlar hem de uygulamanızla paketlerseniz uygulama, mevcut en son sürümü kullanır.

Modelinizi indirmek için veri kümenizin Test etme ve kullan sayfasında TF Lite'ı tıklayın.

Sonraki adımlar

Modeli yayınladığınıza veya indirdiğinize göre iOS+ ve Android uygulamalarınızda modeli nasıl kullanacağınızı öğrenebilirsiniz.