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 üzerinde görüntü etiketleme için kullanabileceğiniz bulutta yeni bir modeli eğitmek için bu veri kümesini kullanır. (Bu özellik hakkında genel bilgi için Genel Bakış'a bakın.)
AutoML Vision Edge bir Google Cloud hizmetidir. Hizmetin kullanımı, Google Cloud Platform Lisans Sözleşmesine ve Hizmete Özel Şartlara tabidir ve buna göre faturalandırılır. Fatura bilgileri için AutoML Fiyatlandırma sayfasına bakın.
Sen başlamadan önce
Halihazırda bir Firebase veya Google Cloud projeniz yoksa, Firebase konsolunda bir tane oluşturun.
Inclusive ML kılavuzu - AutoML'de sunulan yönergeleri öğrenin.
Yalnızca AutoML Vision Edge'i denemek istiyorsanız ve kendi eğitim verileriniz yoksa aşağıdakilerden biri gibi bir örnek veri kümesi indirin:
- TensorFlow'un resmi çiçek resmi örneği veri seti
- Bu Amerikan İşaret Dili (ASL) alfabesi veri seti
Kaggle'da barındırılan daha fazla veri kümesi bulabilirsiniz.
1. Egzersiz verilerinizi bir araya getirin
İlk olarak, etiketli görüntülerden oluşan bir eğitim veri kümesini bir araya getirmeniz gerekir. Aşağıdaki yönergeleri aklınızda bulundurun:
Resimler şu formatlardan birinde olmalıdır: JPEG, PNG, GIF, BMP, ICO.
Her resim 30MB 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 bir yararı olmadığını unutmayın.
Her etiket için en az 10 ve 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 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), egzersiz 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. X-ışınları, el çizimleri, taranmış belgeler, makbuzlar vb. için iyi çalışmayabilirler.
Ayrıca, modeller genellikle insanların atayamayacağı etiketleri tahmin edemez. Bu nedenle, bir insan görüntüye 1-2 saniye bakarak etiket atayamazsa, model de muhtemelen bunu yapmak için eğitilemez.
Eğitim görüntülerinizi hazır hale getirdiğinizde, bunları Firebase'e içe aktarmaya hazırlayın. Üç seçeneğiniz var:
Seçenek 1: Yapılandırılmış zip arşivi
Eğitim görüntülerinizi, her biri bir etiketten sonra adlandırılan ve bu etikete örnek olan görüntüleri 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 ve alt çizgi karakteri ( _
) 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örüntülerinizi Google Cloud Storage'a yükleyin ve her görüntünün URL'sini 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ıldığında yararlı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
Resimler, Firebase projenizin ilgili Google Cloud projesinin parçası olan bir pakette saklanmalıdır.
CSV dosyasını hazırlama hakkında daha fazla bilgi için Cloud AutoML Vision belgelerinde Eğitim verilerinizi hazırlama bölümüne bakın.
3. Seçenek: Etiketlenmemiş resimler
Eğitim resimlerinizi tek tek veya yapılandırılmamış bir zip dosyasında yükledikten sonra Firebase konsolunda etiketleyin. Bir sonraki adıma bakın.
2. Modelinizi eğitin
Ardından, resimlerinizi kullanarak bir model eğitin:
Google Cloud Console'da Vision Veri Kümeleri sayfasını açın. Sorulduğunda projenizi seçin.
Yeni veri kümesi 'ni tıklayın, veri kümesi için bir ad sağlayın, eğitmek istediğiniz model türünü seçin ve Veri kümesi oluştur 'u tıklayın.
Veri kümenizin İçe Aktarma sekmesinde, eğitim görüntülerinizin bir zip arşivini veya bunları yüklediğiniz Bulut Depolama konumlarını içeren bir CSV dosyasını yükleyin. Egzersiz verilerinizi birleştirme konusuna bakın.
İç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.
Eğitim sekmesinde, Eğitimi başlat seçeneğine tıklayın.
Modeli adlandırın ve Edge model tipini seçin.
Oluşturulan modelin performansını yöneten aşağıdaki eğitim ayarlarını yapılandırın:
Modeli optimize et... Kullanılacak model yapılandırması. Düşük gecikme süresinin veya küçük paket boyutunun önemli olduğu durumlarda 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 Modeli eğitmek için harcanan hesaplama saati cinsinden maksimum süre. Daha fazla eğitim süresi genellikle daha doğru bir modelle sonuçlanır.
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 gerçekte kullanılan saatler için faturalandırılırsınız.
Tipik eğitim süreleri Çok küçük setler 1 saat 500 resim 2 saat 1.000 resim 3 saat 5.000 görüntü 6 saat 10.000 görüntü 7 saat 50.000 görüntü 11 saat 100.000 görüntü 13 saat 1.000.000 görüntü 18 saat
3. Modelinizi değerlendirin
Eğitim tamamlandığında, modelin 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çü kullanılarak ölçülür: kesinlik ve geri çağırma .
Görüntü sınıflandırması bağlamında kesinlik , doğru şekilde etiketlenen görüntü sayısının, seçilen eşik değeri verilen modelin etiketlediği görüntü sayısına oranıdır. Bir model yüksek hassasiyete sahip olduğunda, etiketleri daha az hatalı olarak atar (daha az hatalı pozitif).
Hatırlama , doğru etiketlenmiş görüntü sayısının, modelin etiketleyebilmesi gereken içeriğe sahip görüntü sayısına oranıdır. Bir model yüksek hatırlamaya sahip olduğunda, daha az sıklıkla herhangi bir etiket atayamaz (daha az yanlış negatif).
Kesinlik veya geri çağırma için optimize edip etmediğiniz, kullanım durumunuza bağlı olacaktır. Daha fazla bilgi için AutoML Vision yeni başlayanlar kılavuzuna ve Inclusive ML kılavuzu - AutoML'ye bakın.
Kendinizi rahat hissedeceğiniz metrikler üreten bir güven eşiği bulduğunuzda, bunu not edin; uygulamanızda 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ğıtın
Veri kümenizin Test et ve kullan sekmesinde, modelinizi bulutta çalıştıran çevrimiçi tahmin için modelinizi dağıtabilirsiniz. Bu seçenek, Cloud AutoML belgelerinde ele alınmıştır. Bu sitedeki belgeler, kalan iki seçenekle ilgilenir.
Modeli yayınlayın
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 Remote Config ve A/B Testini kullanabilirsiniz.
Modeli yalnızca Firebase ile barındırarak sağlamayı ve uygulamanızla birlikte paketlemeyi seçerseniz, uygulamanızın ilk indirme boyutunu küçültebilirsiniz. Bununla birlikte, 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 veri kümenizin Google Cloud Console'daki Test et ve kullan 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'de yayınlayın. Birkaç modeli toplu olarak yayımlamak veya otomatik yayımlama işlem hatları oluşturmaya yardımcı olmak için bu yöntemi kullanabilirsiniz.
Modeli Admin SDK model yönetimi API'si ile yayınlamak için:
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 projesi olabilir. Bu değeri Firebase konsolunun Ayarlar sayfasında veya Google Cloud Console kontrol panelinde bulabilirsiniz. MODEL_ID
AutoML Cloud API'den 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 uygulamanızla birlikte indirin ve paketleyin
Modelinizi uygulamanızla bir araya getirerek, Firebase tarafından barındırılan model mevcut olmadığında uygulamanızın ML özelliklerinin çalışmaya devam etmesini sağlayabilirsiniz.
Modeli hem yayınlar hem de uygulamanızla birlikte paketlerseniz, uygulama mevcut en son sürümü kullanır.
Modelinizi indirmek için veri kümenizin Test et ve kullan sayfasındaki TF Lite'ı tıklayın.
Sonraki adımlar
Modeli yayınladığınıza veya indirdiğinize göre, modeli iOS+ ve Android uygulamalarınızda nasıl kullanacağınızı öğrenin.