Rozpoznawanie produktów półek (wersja zapoznawcza): analizowanie obrazów półek przy użyciu wstępnie wytrenowanego modelu

Najszybszym sposobem rozpoczęcia korzystania z rozpoznawania produktów jest użycie wbudowanych wstępnie wytrenowanych modeli sztucznej inteligencji. Za pomocą interfejsu API usługi Product Understanding można przekazać obraz półki i uzyskać lokalizacje produktów i luk.

Zdjęcie półki detalicznej z produktami i lukami wyróżnionymi prostokątami.

Uwaga

Marki pokazane na obrazach nie są powiązane z firmą Microsoft i nie wskazują żadnej formy poparcia produktów firmy Microsoft lub firmy Microsoft przez właścicieli marki, ani poparcia właścicieli marki lub ich produktów przez firmę Microsoft.

Wymagania wstępne

  • Subskrypcja platformy Azure — utwórz bezpłatnie
  • Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Vision w witrynie Azure Portal. Należy ją wdrożyć w regionie Wschodnie stany USA lub Zachodnie stany USA 2. Po wdrożeniu wybierz pozycję Przejdź do zasobu.
    • Będziesz potrzebować klucza i punktu końcowego z utworzonego zasobu, aby połączyć aplikację z usługą Azure AI Vision. W dalszej części przewodnika wklejysz klucz i punkt końcowy do poniższego kodu.
  • Zasób usługi Azure Storage z kontenerem magazynu obiektów blob. Utwórz jeden
  • Zainstalowano bibliotekę cURL . Możesz też użyć innej platformy REST, takiej jak Swagger lub rozszerzenie klienta REST dla programu VS Code.
  • Obraz półki. Możesz pobrać nasz przykładowy obraz lub przynieść własne obrazy. Maksymalny rozmiar pliku na obraz wynosi 20 MB.

Analizowanie obrazów półek

Aby przeanalizować obraz półki, wykonaj następujące czynności:

  1. Przekaż obrazy, które chcesz przeanalizować do kontenera magazynu obiektów blob, i uzyskaj bezwzględny adres URL.

  2. Skopiuj następujące curl polecenie do edytora tekstów.

    curl -X PUT -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "<endpoint>/computervision/productrecognition/ms-pretrained-product-detection/runs/<your_run_name>?api-version=2023-04-01-preview" -d "{
        'url':'<your_url_string>'
    }"
    
  3. W razie potrzeby wprowadź w poleceniu następujące zmiany:

    1. Zastąp element <subscriptionKey> kluczem zasobu usługi Vision.
    2. Zastąp element <endpoint> punktem końcowym zasobu usługi Vision. Na przykład: https://YourResourceName.cognitiveservices.azure.com.
    3. Zastąp element <your_run_name> unikatową nazwą przebiegu testu dla kolejki zadań. Jest to asynchroniczna nazwa kolejki zadań interfejsu API, aby móc później pobrać odpowiedź interfejsu API. Na przykład .../runs/test1?api-version...
    4. Zastąp <your_url_string> zawartość adresem URL obiektu blob obrazu
  4. Otwórz okno wiersza polecenia.

  5. Wklej edytowane curl polecenie z edytora tekstów w oknie wiersza polecenia, a następnie uruchom polecenie.

Sprawdzanie odpowiedzi

Po pomyślnym przetworzeniu żądania zostanie zwrócona odpowiedź w formacie JSON. Wyniki interfejsu ProductUnderstandingResultApiModel API rozumienia produktu są zwracane w polu JSON:

{
  "imageMetadata": {
    "width": 2000,
    "height": 1500
  },
  "products": [
    {
      "id": "string",
      "boundingBox": {
        "x": 1234,
        "y": 1234,
        "w": 12,
        "h": 12
      },
      "classifications": [
        {
          "confidence": 0.9,
          "label": "string"
        }
      ]
    }
  ],
  "gaps": [
    {
      "id": "string",
      "boundingBox": {
        "x": 1234,
        "y": 1234,
        "w": 123,
        "h": 123
      },
      "classifications": [
        {
          "confidence": 0.8,
          "label": "string"
        }
      ]
    }
  ]
}

Zapoznaj się z poniższymi sekcjami, aby zapoznać się z definicjami każdego pola JSON.

Model interfejsu API wyników usługi Product Understanding

Wyniki operacji zrozumienia produktu.

Nazwisko Pisz Opis Wymagania
imageMetadata ImageMetadataApiModel Informacje o metadanych obrazu, takie jak wysokość, szerokość i format. Tak
products DetectedObjectApiModel Produkty wykryte na obrazie. Tak
gaps DetectedObjectApiModel Wykryto luki na obrazie. Tak

Model interfejsu API metadanych obrazów

Informacje o metadanych obrazu, takie jak wysokość, szerokość i format.

Nazwisko Pisz Opis Wymagania
width integer Szerokość obrazu w pikselach. Tak
height integer Wysokość obrazu w pikselach. Tak

Wykryty model interfejsu API obiektów

Opisuje wykryty obiekt na obrazie.

Nazwisko Pisz Opis Wymagania
id string Identyfikator wykrytego obiektu. Nie.
boundingBox BoundingBoxApiModel Pole ograniczenia obszaru wewnątrz obrazu. Tak
classifications ImageClassificationApiModel Klasyfikacja ufności wykrytego obiektu. Tak

Model interfejsu API usługi Box ograniczenia

Pole ograniczenia obszaru wewnątrz obrazu.

Nazwisko Pisz Opis Wymagania
x integer Współrzędna lewa górna lewa część obszaru w pikselach. Tak
y integer Górna współrzędna lewego górnego punktu obszaru w pikselach. Tak
w integer Szerokość mierzona od lewego górnego punktu obszaru w pikselach. Tak
h integer Wysokość mierzona od lewego górnego punktu obszaru w pikselach. Tak

Model interfejsu API klasyfikacji obrazów

Opisuje pewność klasyfikacji obrazów etykiety.

Nazwisko Pisz Opis Wymagania
confidence liczba zmiennoprzecinkowa Pewność przewidywania klasyfikacji. Tak
label string Etykieta przewidywania klasyfikacji. Tak

Następne kroki

W tym przewodniku przedstawiono sposób wykonywania podstawowego wywołania analizy przy użyciu wstępnie wytrenowanego interfejsu API REST usługi Product Understanding. Następnie dowiedz się, jak używać niestandardowego modelu rozpoznawania produktów, aby lepiej zaspokoić potrzeby biznesowe.