Nesne algılama modeli, görüntü etiketleme modeline benzer ancak tüm görüntülere etiket atamak yerine görüntülerin bölgelerine etiket atar. Nesne algılama modellerini, bir resimdeki nesneleri tanımak ve bulmak ya da bir nesnenin hareketlerini bir dizi resimde izlemek için kullanabilirsiniz.
Nesne algılama modeli eğitmek için AutoML Vision Edge'e, ilgili nesne etiketleri ve nesne sınırlarıyla birlikte bir dizi görüntü sağlarsınız. AutoML Vision Edge, bulutta yeni bir model eğitmek için bu veri kümesini kullanır. Bu modeli, cihaz üzerinde nesne algılama için kullanabilirsiniz.
Başlamadan önce
Henüz bir Firebase projeniz yoksa Firebase konsolunda bir proje oluşturun.
Kapsamlı ML kılavuzu - AutoML'da sunulan yönergeler hakkında bilgi edinin.
AutoML Vision Edge'i denemek istiyorsanız ve kendi eğitim verileriniz yoksa aşağıdaki gibi bir örnek veri kümesi indirin:
- TensorFlow'un önerilen veri kümelerinden biri.
- Kaggle'da barındırılan bir veri kümesi.
1. Eğitim verilerinizi bir araya getirme
Öncelikle, etiketli görüntülerden 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, ön işleme sırasında çoğu görüntüyü küçültür. Bu nedenle, çok yüksek çözünürlüklü görüntüler sağlamanın genellikle 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, tahminlerin yapılacağı verilere mümkün olduğunca yakın olmalıdır. Örneğin, kullanım alanınız bulanık ve düşük çözünürlüklü resimleri (ör. güvenlik kamerasından alınan) içeriyorsa eğitim verileriniz bulanık ve düşük çözünürlüklü resimlerden 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ı, elle çizilmiş resimler, taranmış belgeler, makbuzlar vb. için iyi sonuç vermeyebilir.
Ayrıca, modeller genellikle insanların atayamadığı etiketleri tahmin edemez. Dolayısıyla, bir insan 1-2 saniye boyunca resme bakarak etiket atayamıyorsa model de bunu yapacak şekilde eğitilemez.
Eğitim resimleriniz hazır olduğunda bunları Google Cloud'ya aktarmak için hazırlayın. İki seçeneğiniz vardır:
1. seçenek: Cloud Storage ile CSV dizini
Eğitim resimlerinizi Google Cloud Storage adresine yükleyin ve her resmin URL'sini, isteğe bağlı olarak da her resim için doğru nesne etiketlerini ve sınırlama bölgelerini listeleyen bir CSV dosyası hazırlayın. Bu seçenek, büyük veri kümeleri kullanılırken faydalıdır.
Örneğin, resimlerinizi Cloud Storage adresine yükleyin ve aşağıdaki gibi 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ı, resimde göreli koordinatlar olarak belirtilir. Eğitim verileri CSV dosyasını biçimlendirme başlıklı makaleyi inceleyin.
Resimler, us-central1
bölgesinde bulunan ve Firebase projenizin ilgili Google Cloud projesinin parçası olan bir pakette depolanmalıdır.
2. seçenek: Etiketsiz resimler
Eğitim resimlerinizi 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. Sonraki adıma bakın.
2. Modelinizi eğitin
Ardından, resimlerinizi kullanarak bir model eğitin:
Google Cloud konsolunda Vision Veri Kümeleri sayfasını açın. İstendiğinde projenizi seçin.
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.
Veri kümenizin İçe aktar sekmesinde eğitim resimlerinizi, eğitim resimlerinizin bulunduğu bir zip arşivini veya Cloud Storage konumlarını içeren bir CSV dosyasını yükleyin. Eğitim verilerinizi bir araya getirme başlıklı makaleyi inceleyin.
İçe aktarma görevi tamamlandıktan sonra, eğitim verilerini doğrulamak için Görüntüler sekmesini kullanın.
CSV dosyası yüklemediyseniz her görüntü için tanımak istediğiniz nesnelerin etrafına sınırlayıcı kutular çizin ve her nesneyi etiketleyin.
Eğit sekmesinde Eğitimi başlat'ı tıklayın.
Modele ad verin ve Edge model türünü seçin.
Oluşturulan modelin performansını belirleyen aşağıdaki eğitim ayarlarını yapılandırın:
Model için kullanılacak optimizasyon seçeneği: Kullanılacak model yapılandırması. Düşük gecikme süresi veya küçük paket boyutu önemli olduğunda daha hızlı ve daha küçük modeller, doğruluk en önemli olduğunda ise daha yavaş ve daha büyük modeller eğitebilirsiniz. Düğüm saati bütçesi Modeli eğitmek için harcanabilecek maksimum süre (işlem saati cinsinden). Daha uzun 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 bir sürede tamamlanabileceğini unutmayın. Yalnızca gerçekten kullanılan saatler için faturalandırılırsınız.
Genel eğitim süreleri Çok küçük kümeler 1 saat 500 resim 2 saat 1.000 resim 3 saat 5.000 resim 6 saat 10.000 resim 7 saat 50.000 resim 11 saat 100.000 resim 13 saat 1.000.000 resim 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ım alanlarından biri, modeliniz için en iyi sonucu verecek güven eşiğini belirlemektir. Güven eşiği, modelin bir görüntüye etiket ataması için 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ı, hassasiyet ve geri çağırma olmak üzere iki metrik kullanılarak ölçülür.
Resim sınıflandırma bağlamında kesinlik, doğru etiketlenmiş resim sayısının, seçilen eşik göz önünde bulundurularak modelin etiketlediği resim sayısına oranıdır. Hassasiyeti yüksek olan bir model, etiketleri daha az sıklıkta yanlış atar (daha az yanlış pozitif).
Geri çağırma, doğru etiketlenen resim sayısının, modelin etiketleyebilmesi gereken içeriğe sahip resim sayısına oranıdır. Geri çağırması yüksek olan bir model, daha az sıklıkla etiket atamada başarısız olur (daha az yanlış negatif).
Hassasiyet veya hatırlama için optimizasyon yapmanız, kullanım alanınıza bağlıdır. Daha fazla bilgi için AutoML Vision başlangıç kılavuzu ve Kapsamlı ML kılavuzu - AutoML başlıklı makaleleri inceleyin.
Kendinizi rahat hissettiğiniz metrikleri üreten bir güven eşiği bulduğunuzda bunu not edin. Güven eşiğini, uygulamanızdaki modeli yapılandırmak için kullanacaksı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 modeli bir uygulamada kullanmak istiyorsanız üç seçeneğiniz vardır. Bu seçeneklerden herhangi bir kombinasyonu tercih edebilirsiniz: Modeli online tahmin için dağıtın, modeli Firebase'de yayınlayın veya modeli indirip uygulamanızla birlikte paketleyin.
Modeli dağıtma
Veri kümenizin Test etme ve kullanma sekmesinde, modelinizi bulutta çalıştıran online tahmin için dağıtabilirsiniz. Bu seçenek Cloud AutoML belgelerinde ele alınmıştır. Bu sitedeki dokümanlar, kalan iki seçenekle ilgilidir.
Modeli yayınlama
Modeli Firebase'de yayınlayarak yeni bir uygulama sürümü yayınlamadan modeli güncelleyebilir ve farklı kullanıcılara dinamik olarak farklı modeller sunmak için Remote Config ve A/B Testing kullanabilirsiniz.
Modeli yalnızca Firebase ile barındırarak sağlamayı ve uygulamanızla birlikte paketlememeyi seçerseniz uygulamanızın ilk indirme boyutunu küçültebilirsiniz. Ancak modeli uygulamanızla birlikte paketlemezseniz modelle ilgili işlevler, uygulamanız modeli ilk kez indirene kadar kullanılamaz.
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, ardından Firebase konsolunun Özel model sayfasına yükleyin. Bu genellikle tek bir modeli yayınlamanın en kolay yoludur.
- Admin 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 işlem hatları oluşturmaya yardımcı olmak için kullanabilirsiniz.
Modeli Admin SDK model yönetimi API ile yayınlamak için:
Modeli yayınlayın.
Modelin kaynak tanımlayıcısını belirtmeniz gerekir. Bu, 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, Firebase projeniz veya başka bir Google Cloud proje olabilir. Bu değeri Firebase konsolunun veya Google Cloud konsol kontrol panelinin Ayarlar sayfasında bulabilirsiniz. MODEL_ID
Modelin kimliği (AutoML Cloud API'den alınır). 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 paketleme
Modelinizi uygulamanızla birlikte paketleyerek, Firebase'de barındırılan model kullanılamadığı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 yeni sürümü kullanır.
Modelinizi indirmek için veri kümenizin Test etme ve kullanma 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ı öğrenin.