AutoML Vision Edge ile nesne algılama modelini eğitme

Nesne algılama modeli, görüntü etiketleme modeline benzer, ancak görüntülerin tamamına etiket atamak yerine, görüntülerin bölgelerine etiket atar. Bir görüntüdeki nesneleri tanımak ve bulmak veya bir nesnenin bir dizi görüntüdeki hareketlerini izlemek için nesne algılama modellerini kullanabilirsiniz.

Bir nesne algılama modelini eğitmek için AutoML Vision Edge'e karşılık gelen nesne etiketleri ve nesne sınırlarına sahip bir dizi görüntü sağlarsınız. AutoML Vision Edge, bu veri kümesini bulutta, cihazdaki nesne algılama için kullanabileceğiniz yeni bir modeli eğitmek için kullanır.

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 bunları Google Cloud'a aktarılmaya hazırlayın. İki seçeneğiniz var:

1. 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 nesne etiketlerini ve sınırlayıcı bölgeleri listeleyen bir CSV dosyası hazırlayın. Bu seçenek 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,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Nesne sınırlayıcı kutular görüntüde göreli koordinatlar olarak belirtilir. Bkz . Eğitim verileri CSV'sini biçimlendirme .

Görüntülerin us-central1 bölgesindeki bir pakette ve Firebase projenizin ilgili Google Cloud projesinin bir parçası olarak saklanması gerekir.

2. Seçenek: Etiketlenmemiş resimler

Eğitim görsellerinizi etiketleyin ve yükledikten sonra Google Cloud konsolunda nesne sınırlarını çizin. Bu yalnızca küçük veri kümeleri için önerilir. 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örsellerinizi, 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 için Görüntüler sekmesini kullanın.

  5. Bir CSV yüklemediyseniz, her görsel için, tanımak istediğiniz nesnelerin çevresine sınırlayıcı kutular çizin ve her nesneyi etiketleyin.

  6. 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, doğruluğun en önemli olduğu durumlarda ise 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 bunu 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ı modelleri farklı kullanıcı gruplarına 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.

    Piton

    # 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.