Tworzenie projektu niestandardowego

Ukończone

Aby utworzyć niestandardowy model usługi Azure AI Vision, najpierw potrzebujesz zasobu usług Azure AI Services (lub zasobu usługi Azure AI Vision). Po wdrożeniu tego zasobu w ramach subskrypcji należy utworzyć projekt niestandardowy.

Składniki projektu custom Vision

Pierwszym składnikiem projektu niestandardowego jest zestaw danych. Zestaw danych to kolekcja obrazów do użycia podczas trenowania modelu wraz z plikiem COCO, który definiuje informacje o etykiecie dotyczące tych obrazów. Zestaw danych jest przechowywany w kontenerze usługi Azure Blob Storage i omówimy więcej informacji na temat pliku COCO w tej lekcji.

Po zdefiniowaniu obrazów i etykiet klas możesz wytrenować model niestandardowy. Podczas trenowania modelu należy określić typ modelu do trenowania, który zestaw danych ma być używany, oraz budżet trenowania (w czasie). Po zakończeniu trenowania modelu można wyświetlić wydajność i użyć modelu do przewidywania.

W większości przypadków wykonaj następujące czynności:

  1. Utwórz kontener usługi Blob Storage i przekaż tylko obrazy szkoleniowe.
  2. Utwórz zestaw danych dla projektu i połącz go z kontenerem magazynu obiektów blob. Podczas tworzenia zestawu danych definiujesz typ projektu (klasyfikacja obrazów, wykrywanie obiektów lub rozpoznawanie produktów).
  3. Oznacz dane w projekcie etykietowania danych w usłudze Azure Machine Edukacja, który tworzy plik COCO w kontenerze magazynu obiektów blob.
  4. Połączenie ukończony plik COCO dla oznaczonych obrazami do zestawu danych.
  5. Trenowanie modelu niestandardowego na utworzonym zestawie danych i etykietach.
  6. Sprawdź wydajność i iteruj, jeśli wytrenowana wydajność nie spełnia oczekiwań.

Gdy będziesz zadowolony z wydajności, model może być używany w programie Vision Studio lub we własnej aplikacji.

Pliki COCO

Plik COCO to plik JSON z określonym formatem, który definiuje:

  • images: definiuje lokalizację obrazu w magazynie obiektów blob, nazwa, szerokość, wysokość i identyfikator.
  • adnotacje: definiuje klasyfikacje (lub obiekty), w tym kategorię, w której obraz jest klasyfikowany jako, obszar i pole ograniczenia (jeśli etykieta na potrzeby wykrywania obiektów).
  • categories: definiuje identyfikator dla nazwanej klasy label.

W większości przypadków pliki COCO są tworzone przez etykietowanie obrazów szkoleniowych w projekcie etykietowania danych w usłudze Azure Machine Edukacja. Jeśli przeprowadzasz migrację ze starego projektu usługi Custom Vision, możesz użyć skryptu migracji do utworzenia pliku COCO.

Przykładowy plik COCO wygląda następująco:

{
  "images": [
    {
      "id": 1,
      "width": 1024,
      "height": 768,
      "file_name": "abc.jpg",
      "coco_url": "AmlDatastore://fruit/abc.jpg",
      "absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
      "date_captured": "<date>"
    },
    {
      "id": 2,
      "width": 1024,
      "height": 768,
      "file_name": "xyz.jpg",
      "coco_url": "AmlDatastore://fruit/xyz.jpg",
      "absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
      "date_captured": "<date>"
    },
    <...>
  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 1,
      "image_id": 1,
      "area": 0.0
    },
    {
      "id": 2,
      "category_id": 1,
      "image_id": 2,
      "area": 0.0
    },
    <...>
  ],
  "categories": [
    {
      "id": 1,
      "name": "apple"
    },
    {
      "id": 2,
      "name": "orange"
    },
    {
      "id": 3,
      "name": "banana"
    }
  ]
}

Jeśli etykietujesz zestaw danych wykrywania obiektów, każda adnotacja w pliku COCO zawiera również tablicę pola ograniczenia z wartościami w tablicy lewej, górnej, szerokości i wysokości.

"bbox": [
    0.11803319477782331,
    0.41586723392402375,
    0.7765206955096307,
    0.3483334397217212
]

Tworzenie zestawu danych

Po utworzeniu obrazów w kontenerze magazynu obiektów blob możesz utworzyć zestaw danych na potrzeby trenowania przy użyciu interfejsu API REST lub przy użyciu programu Vision Studio. Żądanie REST będzie podobne do następującego wywołania REST:

curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
  -H "Content-Type: application/json" \
  -H "Ocp-Apim-Subscription-Key: <subscription-key>" \
  --data-ascii "
  {
    'annotationKind':'imageClassification',
    'annotationFileUris':['<URI>']
  }"

Jeśli używasz programu Vision Studio, przejdź do kafelka modelu niestandardowego, wybierz zasób i utwórz zestaw danych. Z tego miejsca możesz otworzyć lub utworzyć projekt etykietowania danych Edukacja maszyny platformy Azure lub przekazać istniejący plik COCO. Ćwiczenie w tym module przeprowadzi cię przez proces tworzenia zestawu danych w ten sposób.

Korzystanie z programu Vision Studio umożliwia nawiązanie połączenia z projektem etykietowania w usłudze Azure Machine Edukacja zamiast określania pliku COCO w żądaniu REST. Pozostałe przykłady w tym module korzystają z programu Vision Studio, ale jeśli interfejs REST jest preferowanym przykładem metody, są dostępne na stronach dokumentacji.