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

Bir görüntü etiketleme modelini eğitmek için AutoML Vision Edge'e bir dizi görüntü ve karşılık gelen etiketler sağlarsınız. AutoML Vision Edge, uygulamanızda cihaz içi görüntü etiketleme için kullanabileceğiniz bulutta yeni bir modeli eğitmek için bu veri kümesini kullanır. (Bu özellikle ilgili genel bilgiler için Genel Bakış'a bakın.)

AutoML Vision Edge bir Google Cloud hizmetidir. Hizmetin kullanımı , Google Cloud Platform Lisans Sözleşmesi'ne 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.

Sen başlamadan önce

1. Egzersiz verilerinizi birleştirin

Öncelikle etiketli görsellerden oluşan bir eğitim veri seti oluşturmanız gerekir. Aşağıdaki yönergeleri aklınızda bulundurun:

  • Görseller şu formatlardan birinde olmalıdır: JPEG, PNG, GIF, BMP, ICO.

  • Her görsel 30 MB veya daha küçük olmalıdır. AutoML Vision Edge'in ön işleme sırasında çoğu görüntünün ölçeğini küçülttüğünü, dolayısıyla çok yüksek çözünürlüklü görüntüler sağlamanın genellikle doğruluk açısından hiçbir faydası olmadığını unutmayın.

  • Her etiketin en az 10 ve tercihen 100 veya daha fazla örneğini ekleyin.

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

  • Eğitim verileri, tahminlerin yapılacağı verilere mümkün olduğunca yakın olmalıdır. Örneğin, kullanım durumunuz bulanık ve düşük çözünürlüklü görüntüler içeriyorsa (örneğin bir güvenlik kamerasından), 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öntgen, el çizimleri, taranmış belgeler, makbuzlar vb. için iyi çalışmayabilirler.

    Ayrıca modeller genellikle insanların atayamayacağı etiketleri tahmin edemez. Yani eğer bir insan görüntüye 1-2 saniye bakarak etiket atayamazsa, model de muhtemelen bunu yapmak için eğitilemez.

Eğitim görsellerinizi hazırladığınızda onları Firebase'e aktarmaya hazırlayın. Üç seçeneğiniz var:

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

Eğitim görsellerinizi, her biri bir etiketle adlandırılan ve o etiketin örnekleri olan görselleri 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 alfasayısal 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 dizinli Bulut Depolama

Eğitim görsellerinizi Google Cloud Storage'a yükleyin ve her görselin URL'sini ve isteğe bağlı olarak her görsel için doğru etiketleri listeleyen bir CSV dosyası hazırlayın. Bu seçenek çok büyük veri kümeleri kullanıldığında faydalıdır.

Örneğin görsellerinizi Cloud Storage'a yükleyin ve aşağıdakine benzer 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ülerin, Firebase projenize karşılık gelen Google Cloud projesinin parçası olan bir pakette saklanması gerekir.

CSV dosyasını hazırlama hakkında daha fazla bilgi için Cloud AutoML Vision belgelerindeki Eğitim verilerinizi hazırlama konusuna bakın.

3. Seçenek: Etiketlenmemiş görseller

Eğitim görsellerinizi tek tek veya yapılandırılmamış bir zip dosyası olarak yükledikten sonra Firebase konsolunda etiketleyin. Bir sonraki adıma bakın.

2. Modelinizi eğitin

Daha sonra görsellerinizi kullanarak bir model eğitin:

  1. Google Cloud konsolunda 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 modelin türünü seçin ve Veri kümesi oluştur'u tıklayın.

  3. Veri kümenizin İçe Aktarma sekmesinde, eğitim görsellerinizin zip arşivini veya bunları yüklediğiniz Bulut Depolama konumlarını içeren bir CSV dosyasını yükleyin. Bkz. Egzersiz verilerinizi bir araya getirme .

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

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

    1. Modele bir ad verin ve Edge 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:

      Modeli şunun için optimize edin: Kullanılacak model yapılandırması. Düşük gecikme süresi veya küçük paket boyutu önemli olduğunda daha hızlı, daha küçük modelleri veya doğruluğun en önemli olduğu durumlarda daha yavaş, daha büyük modelleri eğitebilirsiniz.
      Düğüm saati bütçesi

      Modelin eğitimi için harcanacak hesaplama saati cinsinden maksimum süre. Daha fazla eğitim süresi genellikle daha doğru bir modelle sonuçlanır.

      Sistemin modelin optimize edildiğini ve ek eğitimin doğruluğu artırmayacağını belirlemesi durumunda eğitimin belirtilen süreden daha kısa sürede tamamlanabileceğini unutmayın. Yalnızca gerçekten kullandığınız saatler için faturalandırılırsınız.

      Tipik eğitim süreleri
      Çok küçük setler 1 saat
      500 görsel 2 saat
      1.000 görsel 3 saat
      5.000 görsel 6 saat
      10.000 görsel 7 saat
      50.000 görsel 11 saat
      100.000 görsel 13 saat
      1.000.000 görsel 18 saat

3. Modelinizi değerlendirin

Eğitim tamamlandığında modele ilişkin performans ölçümlerini görmek için Değerlendir sekmesine tıklayabilirsiniz.

Bu sayfanın önemli bir kullanımı, 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ırıcısını hareket ettirerek farklı eşiklerin modelin performansını nasıl etkilediğini görebilirsiniz. Model performansı iki ölçüm kullanılarak ölçülür: kesinlik ve geri çağırma .

Görüntü sınıflandırması bağlamında hassasiyet , doğru şekilde etiketlenen görüntü sayısının, seçilen eşik dikkate alındığında modelin etiketlediği görüntü sayısına oranıdır. Bir model yüksek hassasiyete sahip olduğunda, etiketleri daha az hatalı şekilde atar (daha az yanlış pozitif).

Geri çağırma , doğru şekilde etiketlenen görsellerin sayısının, modelin etiketleyebilmesi gereken içeriğe sahip görsellerin sayısına oranıdır. Bir modelin hatırlanabilirliği yüksek olduğunda, herhangi bir etiketi daha az sıklıkla atamada başarısız olur (daha az yanlış negatif).

Hassasiyet için mi yoksa geri çağırma için mi optimizasyon yapacağınız kullanım durumunuza bağlı olacaktır. Daha fazla bilgi için AutoML Vision yeni başlayanlar kılavuzuna ve Kapsayıcı ML kılavuzu - AutoML'ye bakın.

Sizin için uygun olan ölçümleri üreten bir güven eşiği bulduğunuzda bunu not edin; Uygulamanızdaki modeli yapılandırmak için güven eşiğini kullanacaksınız. (Uygun bir eşik değeri elde etmek için bu aracı istediğiniz zaman kullanabilirsiniz.)

4. Modelinizi yayınlayın veya indirin

Modelin performansından memnunsanız ve onu bir uygulamada kullanmak istiyorsanız, herhangi bir kombinasyonu seçebileceğiniz üç seçeneğiniz vardır: modeli çevrimiçi tahmin için dağıtın, modeli Firebase'de yayınlayın veya modeli indirip paketleyin. Uygulamanız ile.

Modeli dağıtma

Veri kümenizin Test ve kullanım sekmesinde, modelinizi bulutta çalıştıran çevrimiçi tahmin için modelinizi dağıtabilirsiniz. Bu seçenek Cloud AutoML belgelerinde ele alınmaktadır. Bu sitedeki dokümanlar kalan iki seçenekle ilgilidir.

Modeli yayınla

Modeli Firebase'de yayınlayarak, yeni bir uygulama sürümü yayınlamadan modeli güncelleyebilir ve farklı kullanıcı gruplarına farklı modelleri dinamik olarak sunmak için Uzaktan Yapılandırma ve A/B Testini kullanabilirsiniz.

Modeli yalnızca Firebase'de barındırarak sağlamayı ve uygulamanızla birlikte paketlememeyi seçerseniz uygulamanızın ilk indirme boyutunu azaltabilirsiniz. Ancak model, uygulamanızla birlikte paketlenmemişse, uygulamanız modeli ilk kez indirene kadar modelle ilgili herhangi bir işlevin kullanılamayacağını unutmayın.

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

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

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

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

  2. Modeli yayınlayın.

    Aşağıdaki örneğe benzeyen bir dize olan modelin kaynak tanımlayıcısını belirtmeniz gerekecektir:

    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 projeniz olabilir. Bu değeri Firebase konsolunun Ayarlar sayfasında veya Google Cloud konsolu kontrol panelinde bulabilirsiniz.
    MODEL_ID AutoML Cloud API'sinden aldığınız modelin 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 indirin ve uygulamanızla birlikte paketleyin

Modelinizi uygulamanızla birlikte paketleyerek, Firebase tarafından barındırılan model mevcut olmadığında uygulamanızın makine öğrenimi özelliklerinin çalışmaya devam etmesini sağlayabilirsiniz.

Hem modeli yayınlar hem de uygulamanızla birlikte paketlerseniz uygulama mevcut en son sürümü kullanacaktır.

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

Sonraki adımlar

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