Model özelleştirme (sürüm 4.0 önizleme)

Model özelleştirme, kendi kullanım örneğiniz için özel bir Görüntü Analizi modeli eğitmenizi sağlar. Özel modeller görüntü sınıflandırması (etiketler resmin tamamına uygulanır) veya nesne algılama (etiketler görüntünün belirli alanlarına uygulanır) yapabilir. Özel modeliniz oluşturulduktan ve eğitildikten sonra Görüntü İşleme kaynağınıza aittir ve Görüntü Analizi API'sini kullanarak bunu çağırabilirsiniz.

Hızlı başlangıcı izleyerek model özelleştirmesini hızlı ve kolay bir şekilde uygulayın:

Önemli

Özel Görüntü İşleme hizmetini veya model özelleştirmesi ile Görüntü Analizi 4.0 hizmetini kullanarak özel bir modeli eğitebilirsiniz. Aşağıdaki tablo iki hizmeti karşılaştırır.

Alanlar Özel Görüntü İşleme hizmeti Görüntü Analizi 4.0 hizmeti
Görevler Görüntü sınıflandırma
Nesne algılama
Görüntü sınıflandırma
Nesne algılama
Temel model CNN Transformatör modeli
Etiketleme Customvision.ai AML Studio
Web Portalı Customvision.ai Vision Studio
Kitaplıklar REST, SDK REST, Python Örneği
Gereken en düşük eğitim verileri Kategori başına 15 resim Kategori başına 2-5 resim
Eğitim verileri depolama Hizmete yüklendi Müşterinin blob depolama hesabı
Model barındırma Bulut ve uç Yalnızca bulut barındırma, uç kapsayıcı barındırma geliyor
Yapay zeka kalitesi
bağlamGörüntü sınıflandırma
(ilk 1 doğruluk, 22 veri kümesi)
Nesne algılama
(mAP@50, 59 veri kümesi)
2 atış51.4733.3
3 atış56.7337.0
5 atış63.0143.4
10 atış68.9554.0
tam85.2576.6
bağlamGörüntü sınıflandırma
(ilk 1 doğruluk, 22 veri kümesi)
Nesne algılama
(mAP@50, 59 veri kümesi)
2 atış73.0249.2
3 atış75.5161.1
5 atış79.1468.2
10 atış81.3175.0
tam90.9885.4
Fiyatlandırma Özel Görüntü İşleme fiyatlandırması Görüntü Analizi fiyatlandırması

Senaryo bileşenleri

Model özelleştirme sisteminin ana bileşenleri eğitim görüntüleri, COCO dosyası, veri kümesi nesnesi ve model nesnesidir.

Eğitim görüntüleri

Eğitim görüntüleri kümeniz, algılamak istediğiniz etiketlerin her birine ilişkin birkaç örnek içermelidir. Modelinizi eğitildikten sonra test etmek için birkaç ek görüntü de toplamak isteyeceksiniz. Görüntülerin model tarafından erişilebilir olması için bir Azure Depolama kapsayıcısında depolanması gerekir.

Modelinizi etkili bir şekilde eğitmek için görsel çeşitliliği olan görüntüleri kullanın. Farklı görüntüler seçin:

  • kamera açısı
  • Aydınlatma
  • arka plan
  • görsel stili
  • bireysel/gruplandırılmış konular
  • size
  • Tür

Ayrıca tüm eğitim görüntülerinizin aşağıdaki ölçütlere uygun olduğundan emin olun:

  • Resim JPEG, PNG, GIF, BMP, WEBP, ICO, TIFF veya MPO biçiminde gösterilmelidir.
  • Görüntünün dosya boyutu 20 megabayttan (MB) küçük olmalıdır.
  • Görüntünün boyutları 50 x 50 pikselden büyük ve 16.000 x 16.000 pikselden küçük olmalıdır.

COCO dosyası

COCO dosyası tüm eğitim görüntülerine başvurur ve bunları etiketleme bilgileriyle ilişkilendirir. Nesne algılama durumunda, her görüntüdeki her etiketin sınırlayıcı kutu koordinatlarını belirtti. Bu dosya, belirli bir JSON dosyası türü olan COCO biçiminde olmalıdır. COCO dosyası, eğitim görüntüleriyle aynı Azure Depolama kapsayıcısında depolanmalıdır.

İpucu

COCO dosyaları hakkında

COCO dosyaları, belirli gerekli alanlara sahip JSON dosyalarıdır: "images", "annotations"ve "categories". Örnek bir COCO dosyası şöyle görünür:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

COCO dosya alanı başvurusu

Sıfırdan kendi COCO dosyanızı oluşturuyorsanız tüm gerekli alanların doğru ayrıntılarla doldurulduğundan emin olun. Aşağıdaki tablolarda BIR COCO dosyasındaki her alan açıklanmaktadır:

"resimler"

Tuş Type Açıklama Gerekli mi?
id integer 1'den başlayarak benzersiz görüntü kimliği Yes
width integer Görüntünün piksel cinsinden genişliği Yes
height integer Görüntünün piksel cinsinden yüksekliği Yes
file_name Dize Görüntü için benzersiz bir ad Yes
absolute_url veya coco_url Dize Blob kapsayıcısında bir bloba mutlak URI olarak görüntü yolu. Görüntü İşleme kaynağının ek açıklama dosyalarını ve başvuruda bulunan tüm görüntü dosyalarını okuma izni olmalıdır. Yes

değerini absolute_url blob kapsayıcınızın özelliklerinde bulabilirsiniz:

absolute url

"ek açıklamalar"

Tuş Type Açıklama Gerekli mi?
id integer Ek açıklamanın kimliği Yes
category_id integer bölümünde tanımlanan kategorinin categories kimliği Yes
image_id integer Görüntünün kimliği Yes
area integer 'Width' x 'Height' değeri (üçüncü ve dördüncü değerleri bbox) Hayır
bbox list[float] Sınırlayıcı kutunun göreli koordinatları (0 - 1), 'Sol', 'Üst', 'Genişlik', 'Yükseklik' sırasına göre Yes

"kategoriler"

Tuş Type Açıklama Gerekli mi?
id integer Her kategori için benzersiz kimlik (etiket sınıfı). Bunlar bölümünde bulunmalıdır annotations . Yes
name Dize Kategorinin adı (etiket sınıfı) Yes

COCO dosya doğrulaması

Coco dosyasının biçimini denetlemek için Python örnek kodumuzu kullanabilirsiniz.

Veri kümesi nesnesi

Dataset nesnesi, görüntü çözümleme hizmeti tarafından depolanan ve ilişkilendirme dosyasına başvuran bir veri yapısıdır. Model oluşturup eğitebilmek için önce bir Dataset nesnesi oluşturmanız gerekir.

Model nesnesi

Model nesnesi, Görüntü Analizi hizmeti tarafından depolanan ve özel bir modeli temsil eden bir veri yapısıdır. İlk eğitimin yapılabilmesi için veri kümesiyle ilişkilendirilmesi gerekir. Eğitildikten sonra, Görüntü Analizi API'sinin sorgu parametresine model-nameadını girerek modelinizi sorgulayabilirsiniz.

Kota sınırları

Aşağıdaki tabloda özel model projelerinizin ölçeğindeki sınırlar açıklanmaktadır.

Kategori Genel görüntü sınıflandırıcısı Genel nesne algılayıcısı
Maksimum # eğitim saatleri 288 (12 gün) 288 (12 gün)
Max # eğitim görüntüleri 1.000.000 200,000
Maksimum # değerlendirme görüntüleri 100.000 100.000
Kategori başına en az # eğitim görüntüsü 2 2
Resim başına en fazla # etiketi çok sınıflı: 1 NA
Görüntü başına en fazla # bölge NA 1.000
En fazla # kategorileri 2.500 1.000
En az # kategorileri 2 1
En büyük görüntü boyutu (Eğitim) 20 MB 20 MB
En büyük görüntü boyutu (Tahmin) Eşitleme: 6 MB, Toplu İş: 20 MB Eşitleme: 6 MB, Toplu İş: 20 MB
Maksimum görüntü genişliği/yüksekliği (Eğitim) 10,240 10,240
En düşük görüntü genişliği/yüksekliği (Tahmin) 50 50
Kullanılabilen bölgeler Batı ABD 2, Doğu ABD, Batı Avrupa Batı ABD 2, Doğu ABD, Batı Avrupa
Kabul edilen görüntü türleri jpg, png, bmp, gif, jpeg jpg, png, bmp, gif, jpeg

Sık sorulan sorular

Blob depolamadan içeri aktarırken COCO dosyası içeri aktarma işlemim neden başarısız oluyor?

Şu anda Microsoft, Coco dosyası içeri aktarma işleminin Vision Studio'da başlatıldığında büyük veri kümelerinde başarısız olmasına neden olan bir sorunu çözmektedir. Büyük bir veri kümesi kullanarak eğitmek için bunun yerine REST API kullanılması önerilir.

Eğitim neden belirtilen bütçemden daha uzun/kısa sürer?

Belirtilen eğitim bütçesi, duvar saati saati değil, kalibre edilmiş işlem zamanıdır. Farkın bazı yaygın nedenleri listelenir:

  • Belirtilen bütçeden uzun:

    • Görüntü Analizi yüksek eğitim trafiği yaşar ve GPU kaynakları sıkı olabilir. İşiniz kuyrukta bekleyebilir veya eğitim sırasında beklemeye alınabilir.
    • Arka uç eğitim işlemi beklenmeyen hatalarla karşılaştı ve bu da mantığın yeniden denenmesine neden oldu. Başarısız çalıştırmalar bütçenizi tüketmez, ancak bu genel olarak daha uzun eğitim süresine yol açabilir.
    • Verileriniz Görüntü İşleme kaynağınızdan farklı bir bölgede depolanır ve bu da daha uzun veri aktarım süresine yol açar.
  • Belirtilen bütçeden daha kısa: Aşağıdaki faktörler, belirli duvar saati zamanında daha fazla bütçe kullanmanın maliyetine göre eğitimi hızlandırır.

    • Görüntü Analizi bazen verilerinize bağlı olarak birden çok GPU ile eğitebilir.
    • Görüntü Analizi bazen birden çok GPU üzerinde aynı anda birden fazla keşif denemesi eğitebilir.
    • Görüntü Analizi bazen eğitmek için premier (daha hızlı) GPU SKU'ları kullanır.

Eğitimim neden başarısız oluyor ve ne yapmalıyım?

Eğitim hatasının bazı yaygın nedenleri şunlardır:

  • diverged: Eğitim verilerinizden anlamlı şeyler öğrenemez. Bazı yaygın nedenler şunlardır:
    • Veriler yeterli değil: daha fazla veri sağlamak yardımcı olmalıdır.
    • Veriler düşük kalitede: Görüntülerinizin düşük çözünürlükte olup olmadığını, en boy oranlarının yüksek olup olmadığını veya ek açıklamaların yanlış olup olmadığını denetleyin.
  • notEnoughBudget: Belirttiğiniz bütçe, eğittiğiniz veri kümesi ve model türünün boyutu için yeterli değildir. Daha büyük bir bütçe belirtin.
  • datasetCorrupt: Bu genellikle sağlanan resimlerinizin erişilebilir olmadığını veya ek açıklama dosyasının yanlış biçimde olduğu anlamına gelir.
  • datasetNotFound: veri kümesi bulunamıyor
  • unknown: Bu bir arka uç sorunu olabilir. Araştırma için destek almak için ulaşın.

Modelleri değerlendirmek için hangi ölçümler kullanılır?

Aşağıdaki ölçümler kullanılır:

  • Görüntü sınıflandırması: Ortalama Duyarlık, Doğruluk İlk 1, Doğruluk İlk 5
  • Nesne algılama: Ortalama Ortalama Duyarlık @ 30, Ortalama Ortalama Duyarlık @ 50, Ortalama Ortalama Duyarlık @ 75

Veri kümesi kaydım neden başarısız oluyor?

API yanıtları yeterince bilgilendirici olmalıdır. Bunlar:

  • DatasetAlreadyExists: Aynı ada sahip bir veri kümesi var
  • DatasetInvalidAnnotationUri: "Veri kümesi kayıt zamanında ek açıklama URI'leri arasında geçersiz bir URI sağlandı.

Makul/iyi/en iyi model kalitesi için kaç resim gerekir?

Floransa modelleri çok az çekim özelliğine (sınırlı veri kullanılabilirliği altında harika model performansı elde etme) sahip olsa da, genel olarak daha fazla veri eğitilmiş modelinizi daha iyi ve daha sağlam hale getirir. Bazı senaryolar çok az veri gerektirir (bir elmanın muzla sınıflandırılması gibi), diğerleri ise daha fazlasını gerektirir (yağmur ormanlarında 200 böcek türünü algılamak gibi). Bu, tek bir öneri vermeyi zorlaştırır.

Veri etiketleme bütçeniz kısıtlanmışsa, önerilen iş akışımız aşağıdaki adımları yinelemektir:

  1. Görüntüleri toplamanın kolay olduğu N sınıf başına görüntü toplama N (örneğin, N=3)

  2. Modeli eğitin ve değerlendirme kümenizde test edin.

  3. Model performansı şu şekildeyse:

    • Yeterince iyi (performans, daha az veri toplanmış önceki denemenize yakın bir şekilde beklentilerinizden veya performansınızdan daha iyidir): Burada durun ve bu modeli kullanın.
    • İyi değil (performans hala beklentilerinizin altında veya makul bir marjda toplanan daha az veri içeren önceki denemenizden daha iyi):
    • Her sınıf için daha fazla resim toplayın (sizin için kolay bir sayı) ve 2. Adım'a geri dönün.
    • Birkaç yinelemeden sonra performansın daha fazla iyileşmediğini fark ederseniz, bunun nedeni şu olabilir:
      • bu sorun iyi tanımlanmamış veya çok zor. Büyük/küçük harf analizi için bize ulaşın.
      • eğitim verileri düşük kaliteli olabilir: Yanlış ek açıklamalar veya çok düşük piksel görüntüleri olup olmadığını denetleyin.

Ne kadar eğitim bütçesi belirtmeliyim?

Kullanmak istediğiniz bütçenin üst sınırını belirtmeniz gerekir. Görüntü Analizi, kullanım örneğine en uygun modeli bulmak üzere farklı modelleri ve eğitim tariflerini denemek için arka uçta bir AutoML sistemi kullanır. Ne kadar fazla bütçe verilirse, daha iyi bir model bulma şansı o kadar yüksek olur.

AutoML sistemi, kalan bütçeler olsa bile daha fazlasını denemeye gerek olmadığı sonucuna varırsa otomatik olarak durdurulur. Bu nedenle, her zaman belirtilen bütçenizi tüketmez. Belirtilen bütçeniz üzerinden faturalandırılmaması garanti edilir.

Hiper parametreleri denetleyebiliyor veya eğitimde kendi modellerimi kullanabilir miyim?

Hayır, Görüntü Analizi modeli özelleştirme hizmeti arka uçta hyper-param arama ve temel model seçimini işleyen düşük kodlu bir AutoML eğitim sistemi kullanır.

Eğitimden sonra modelimi dışarı aktarabilir miyim?

Tahmin API'si yalnızca bulut hizmeti aracılığıyla desteklenir.

Nesne algılama modelim için değerlendirme neden başarısız oluyor?

Olası nedenler aşağıdadır:

  • internalServerError: Bilinmeyen bir hata oluştu. Lütfen daha sonra yeniden deneyin.
  • modelNotFound: Belirtilen model bulunamadı.
  • datasetNotFound: Belirtilen veri kümesi bulunamadı.
  • datasetAnnotationsInvalid: Test veri kümesiyle ilişkili temel gerçek ek açıklamalarını indirmeye veya ayrıştırmaya çalışırken bir hata oluştu.
  • datasetEmpty: Test veri kümesinde herhangi bir "temel gerçek" ek açıklaması yoktu.

Özel modellerle tahminler için beklenen gecikme süresi nedir?

Olası yüksek gecikme süresi nedeniyle iş açısından kritik ortamlar için özel modeller kullanmanızı önermeyiz. Müşteriler Vision Studio'da özel modelleri eğittiğinde, bu özel modeller eğitildiği Azure AI Vision kaynağına aittir ve müşteri Görüntü Analizi API'sini kullanarak bu modellere çağrı yapabilir. Bu çağrıları yaptıklarında özel model belleğe yüklenir ve tahmin altyapısı başlatılır. Bu durumda müşteriler tahmin sonuçlarını almak için beklenenden daha uzun gecikme süresiyle karşılaşabilir.

Veri gizliliği ve güvenliği

Tüm Azure yapay zeka hizmetlerinde olduğu gibi Görüntü Analizi modeli özelleştirmesini kullanan geliştiriciler de Microsoft'un müşteri verilerine yönelik ilkelerinin farkında olmalıdır. Daha fazla bilgi edinmek için Microsoft Güven Merkezi'nin Azure AI hizmetleri sayfasına bakın.

Sonraki adımlar

Özel model oluşturma ve eğitma