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

Görüntü etiketleme modelini eğitmek için AutoML Vision Edge'e resimleri ve ilgili etiketleri kullanın. AutoML Vision Edge, bulutta yeni bir model eğitmek için bu veri kümesini kullanır. Bu modeli, uygulamanızda cihaz üzerinde resim etiketleme için kullanabilirsiniz. (Bu özellik hakkında 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. Faturalandırma bilgileri için AutoML Fiyatlandırma sayfasına bakın.

erişmeye devam edebilirsiniz.

Başlamadan önce

1. Eğitim verilerinizi bir araya getirme

Öncelikle, etiketli resimlerden oluşan bir eğitim veri kümesi oluşturmanız gerekir. Aşağıdaki kuralları 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 resmin boyutunu küçülttüğünü unutmayın. Bu nedenle, genellikle çok yüksek çözünürlüklü resimler sağlamanın doğruluk açısından bir avantajı yoktur.

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

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

  • Eğitim verileri, üzerinde çalışılan verilere olabildiğince öngörülmesi gerektiği anlamına gelir. Örneğin, kullanım alanınız bulanık ve düşük çözünürlüklü görüntüler (ör. güvenlik kamerasından alınan görüntüler) içeriyorsa 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, makbuzlar vb. için iyi sonuç vermeyebilir.

    Ayrıca modeller genellikle insanların atayamayacağı etiketleri tahmin edemez. Bu nedenle, bir insan resme 1-2 saniye bakarak etiket atayamazsa model de bunu yapmak için 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ış dizinler halinde düzenleyin ve resim içeren etiketleri kullanabilirsiniz. Ardından, dizin yapısını bir zip arşivi olarak 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.

Örneğin:

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 resimlerinizi Google Cloud Storage adresine yükleyin ve her bir resmin URL'sini ve isteğe bağlı olarak her bir resim için doğru etiketleri listeleyen bir CSV dosyası hazırlayın. Bu seçenek, çok büyük boyutlu veri kümelerinde yer alır.

Örneğin, resimlerinizi Cloud Storage'e 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

Resimler, Firebase projenizin parçası olan bir pakette depolanmalıdır. ilgili Google Cloud projesi için geçerlidir.

Cloud AutoML'de Eğitim verilerinizi hazırlama bölümünü inceleyin. CSV dosyasını hazırlama hakkında daha fazla bilgi edinmek için Vision dokümanlarına göz atın.

3. seçenek: Etiketsiz resimler

Eğitim görüntülerinizi yükledikten sonra Firebase konsolunda etiketleyin. ayrı ayrı veya yapılandırılmamış bir ZIP dosyasında sağlanabilir. Sonraki adıma bakın.

2. Modelinizi eğitin

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

  1. Vision Veri Kümeleri'ni açın. Google Cloud konsolunda görebilirsiniz. İstendiğinde projenizi seçin.

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

  3. Veri kümenizin İçe Aktar sekmesinde, eğitim resimlerini veya kullandığınız Cloud Storage konumlarını içeren bir CSV dosyası bunları yükleyebilirsiniz. Eğitim verilerinizi bir araya getirme başlıklı makaleyi inceleyin.

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

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

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

    2. Performansı yöneten aşağıdaki eğitim ayarlarını yapılandırın örneğini aşağıda görebilirsiniz:

      Model için kullanılacak optimizasyon seçeneği: Kullanılacak model yapılandırması. Düşük gecikmenin veya küçük paket boyutunun önemli olduğu durumlarda daha hızlı, daha küçük modeller, doğruluğun en önemli olduğu durumlarda ise daha yavaş, daha büyük modeller eğitebilirsiniz.
      Düğüm saati bütçesi

      Modeli eğitmek için harcanabilecek maksimum işlem saati. Daha uzun eğitim süresi, genelde daha doğru modeli.

      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. Faturalandırıldınız saatlere kadardır.

      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 bir kullanım şekli de, geçerli olan güven eşiğinin, en iyi uygulamaları paylaşacağız. Güven eşiği, modelin bir görüntüye etiket ataması için gereken minimum güvendir. Güven eşiğini yükselterek farklı eşiklerin modelin performansını nasıl etkilediğini görebilirsiniz. Model performansı, hassasiyet ve geri çağırma olmak üzere iki metrik kullanılarak ölçülür.

Resim sınıflandırma bağlamında hassasiyet, doğru etiketlenmiş resim sayısının, seçilen eşik göz önüne alındığında modelin etiketlediği resim sayısına oranıdır. Hassasiyeti yüksek olan modeller, etiketleri daha seyrek olarak yanlış atar (daha az yanlış pozitif).

Geri çağırma, doğru bir şekilde etiketlenen görüntülerin sayısının modelin etiketleyebilmesi gereken içeriğe sahip resim sayısı. Zaman bir model yüksek geri çağırmaya sahipse herhangi bir etiketi daha seyrek atayamaz (daha az yanlış negatif anahtar kelimeler).

Doğruluk veya hatırlama için optimize edip etmeyeceğinizi kullanım alanınıza göre belirlersiniz. Görüntüleyin AutoML Vision'a yeni başlayanlar için kılavuz ve Daha fazla bilgi için kapsayıcı makine öğrenimi kılavuzu - AutoML'i inceleyin.

Size uygun metrikler üreten bir güven eşiği bulduğunuzda, not edin; modeli yapılandırmak için uygulamasını indirin. (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 modeli bir uygulamada kullanmak istiyorsanız herhangi bir kombinasyonu seçebileceğiniz üç seçeneğiniz vardır: modeli oluşturmak, modeli Firebase'de yayınlamak veya ve uygulamanızla paket haline getirebilirsiniz.

Modeli dağıtma

Veri kümenizin Test ve kullanın sekmesinden, modelinizi online modelinizi çalıştıracak yeni bir tahmin başlattık. Bu seçenek Cloud AutoML belgeleri. Bu sitedeki dokümanlar, kalan iki seçenekle ilgilidir.

Modeli yayınlama

Modeli Firebase'de yayınlayarak, modeli yayınlamadan güncelleyebilirsiniz. ve Remote Config ve A/B Testing özelliklerini kullanarak şunları yapabilirsiniz: Farklı kullanıcı gruplarına dinamik olarak farklı modeller sunar.

Modeli uygulamanızla birlikte paketlemek yerine yalnızca Firebase ile barındırarak sunmayı seçerseniz uygulamanızın ilk indirme boyutunu azaltabilirsiniz. Ancak model uygulamanızla birlikte paketlenmezse uygulamanız modeli ilk kez indirene kadar modelle ilgili işlevlerin kullanılamayacağını unutmayın.

Modelinizi yayınlamak için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • Veri kümenizin Test ve Test kullanın sayfasını Google Cloud konsoluna yükleyin ve ardından modeli Firebase konsolunun Özel model sayfası. Bu, genellikle tek bir modeli yayınlamanın en kolay yoludur.
  • Modeli doğrudan Google Cloud projenizden Firebase'e yayınlayın: Yönetici SDK'si. Bu yöntemi, birden fazla modeli toplu olarak yayınlamak veya otomatik yayınlama ardışık düzenlerini oluşturmaya yardımcı olmak için kullanabilirsiniz.

Modeli Admin SDK model yönetimi API ile yayınlamak için:

  1. SDK'yı yükleyip 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 benzer:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Modeli içeren Cloud Storage paketinin proje numarası. Bu, Firebase projeniz veya başka bir Google Cloud proje olabilir. Bu değeri Firebase konsolunun Ayarlar sayfasında veya Google Cloud konsolunun kontrol panelinde 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 birlikte paketleyerek, Firebase'de barındırılan model kullanılamadığında uygulamanızın ML özelliklerinin çalışmaya devam etmesini sağlayabilirsiniz.

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

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

Sonraki adımlar

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