Sdílet prostřednictvím


Dodržování předpisů planogramu police (Preview)

Planogram je diagram, který označuje správné umístění maloobchodních produktů na police. Rozhraní API pro dodržování předpisů planogramu umožňuje porovnat výsledky analýzy z fotky se vstupem planogramu obchodu. Vrátí účet všech pozic v planogramu a to, jestli byl produkt nalezen v každé pozici.

Fotka maloobchodní police s detekovanými produkty označenými a obdélníky pozice planogramu, které jsou uvedeny samostatně

Poznámka:

Značky zobrazené na obrázcích nejsou přidružené k Microsoftu a neudávají žádnou formu potvrzení produktů společnosti Microsoft ani produktů Společnosti Microsoft vlastníky značky ani doporučení vlastníků značky nebo jejich produktů společností Microsoft.

Požadavky

  • Je nutné, abyste už nastavili a spustili základní analýzu product understanding pomocí rozhraní API pro službu Product Understanding.
  • Nainstalovaný cURL . Nebo můžete použít jinou platformu REST, jako je Swagger nebo rozšíření REST Client pro VS Code.

Příprava schématu planogramu

Data planogramu potřebujete mít v určitém formátu JSON. Definice polí najdete v následujících částech.

"planogram": {
  "width": 100.0,
  "height": 50.0,
  "products": [
    {
      "id": "string",
      "name": "string",
      "w": 12.34,
      "h": 123.4
    }
  ],
  "fixtures": [
    {
      "id": "string",
      "w": 2.0,
      "h": 10.0,
      "x": 0.0,
      "y": 3.0
    }
  ],
  "positions": [
    {
      "id": "string",
      "productId": "string",
      "fixtureId": "string",
      "x": 12.0,
      "y": 34.0
    }
  ]
}

Souřadnice X a Y jsou relativní vzhledem k levému hornímu počátku a šířka a výška rozšiřují jednotlivé ohraničující rámečky směrem dolů a doprava. Následující diagram znázorňuje příklady souřadnicového systému.

Diagram obrázku police se zvýrazněnými příslušenstvími a produkty a jejich souřadnicemi

Poznámka:

Značky zobrazené na obrázcích nejsou přidružené k Microsoftu a neudávají žádnou formu potvrzení produktů společnosti Microsoft ani produktů Společnosti Microsoft vlastníky značky ani doporučení vlastníků značky nebo jejich produktů společností Microsoft.

Množství ve schématu planogramu jsou v nespecifických jednotkách. Můžou odpovídat palcům, centimetrům nebo jakékoli jiné měrné jednotce. Odpovídající algoritmus vypočítá vztah mezi jednotkami analýzy fotografií (pixely) a jednotkami planogramu.

Model rozhraní API planogramu

Popisuje planogram pro operace odpovídající planogramu.

Name Typ Popis Povinní účastníci
width double Šířka planogramu Ano
height double Výška planogramu Ano
products ProductApiModel Seznam produktů v planogramu Ano
fixtures Model FixApiModel Seznam zařízení v planogramu Ano
positions PositionApiModel Seznam pozic v planogramu Ano

Model rozhraní API produktu

Popisuje produkt v planogramu.

Name Typ Popis Povinní účastníci
id string ID produktu. Ano
name string Název produktu Ano
w double Šířka produktu. Ano
h double Výška zařízení. Ano

Model rozhraní API pro zařízení

Popisuje příslušenství (police nebo podobný hardware) v planogramu.

Name Typ Popis Povinní účastníci
id string ID zařízení. Ano
w double Šířka zařízení. Ano
h double Výška zařízení. Ano
x double Levý posun od původu v jednotkách v palcích nebo centimetrech. Ano
y double Horní posun od původu v jednotkách palců nebo centimetrů. Ano

Model rozhraní POSITION API

Popisuje pozici produktu v planogramu.

Name Typ Popis Povinní účastníci
id string ID pozice. Ano
productId string ID produktu. Ano
fixtureId string ID zařízení, na které je výrobek. Ano
x double Levý posun od původu v jednotkách v palcích nebo centimetrech. Ano
y double Horní posun od původu v jednotkách palců nebo centimetrů. Ano

Získání výsledků analýzy

Dále je potřeba provést volání rozhraní API služby Product Understanding s vlastním modelem.

Vrácený text JSON by měl být "detectedProducts" struktura. Zobrazuje všechny produkty, které byly zjištěny na polici, s popisky specifické pro produkt, které jste použili ve fázi trénování.

"detectedProducts": {
  "imageMetadata": {
    "width": 21,
    "height": 25
  },
  "products": [
    {
      "id": "01",
      "boundingBox": {
        "x": 123,
        "y": 234,
        "w": 34,
        "h": 45
      },
      "classifications": [
        {
          "confidence": 0.8,
          "label": "Product1"
        }
      ]
    }
  ],
  "gaps": [
    {
      "id": "02",
      "boundingBox": {
        "x": 12,
        "y": 123,
        "w": 1234,
        "h": 123
      },
      "classifications": [
        {
          "confidence": 0.9,
          "label": "Product1"
        }
      ]
    }
  ]
}

Příprava odpovídajícího požadavku

Připojte obsah JSON schématu planogramu s obsahem JSON výsledků analýzy, například takto:

"planogram": {
  "width": 100.0,
  "height": 50.0,
  "products": [
    {
      "id": "string",
      "name": "string",
      "w": 12.34,
      "h": 123.4
    }
  ],
  "fixtures": [
    {
      "id": "string",
      "w": 2.0,
      "h": 10.0,
      "x": 0.0,
      "y": 3.0
    }
  ],
  "positions": [
    {
      "id": "string",
      "productId": "string",
      "fixtureId": "string",
      "x": 12.0,
      "y": 34.0
    }
  ]
},
"detectedProducts": {
  "imageMetadata": {
    "width": 21,
    "height": 25
  },
  "products": [
    {
      "id": "01",
      "boundingBox": {
        "x": 123,
        "y": 234,
        "w": 34,
        "h": 45
      },
      "classifications": [
        {
          "confidence": 0.8,
          "label": "Product1"
        }
      ]
    }
  ],
  "gaps": [
    {
      "id": "02",
      "boundingBox": {
        "x": 12,
        "y": 123,
        "w": 1234,
        "h": 123
      },
      "classifications": [
        {
          "confidence": 0.9,
          "label": "Product1"
        }
      ]
    }
  ]
}

Toto je text, který použijete v textu požadavku rozhraní API.

Volání rozhraní API pro porovnávání planogramů

  1. Zkopírujte následující curl příkaz do textového editoru.

    curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "<endpoint>/computervision/planogramcompliance:match?api-version=2023-04-01-preview" -d "<body>"
    
  2. Proveďte v příkazu na příslušných místech následující změny:

    1. Nahraďte hodnotu <subscriptionKey> klíčem prostředku Vision.
    2. Nahraďte hodnotu <endpoint> koncovým bodem vašeho prostředku Vision. Například: https://YourResourceName.cognitiveservices.azure.com.
    3. Nahraďte hodnotu <body> připojovacím řetězcem JSON, který jste připravili v předchozí části.
  3. Otevřete okno příkazového řádku.

  4. Vložte upravený curl příkaz z textového editoru do okna příkazového řádku a spusťte příkaz.

Prozkoumání odpovědi

Ve formátu JSON se vrátí úspěšná odpověď zobrazující produkty (nebo mezery) zjištěné v každé pozici planogramu. Definice polí najdete v následujících částech.

{
  "matchedResultsPerPosition": [
    {
      "positionId": "01",
      "detectedObject": {
        "id": "01",
        "boundingBox": {
          "x": 12,
          "y": 1234,
          "w": 123,
          "h": 12345
        },
        "classifications": [
          {
            "confidence": 0.9,
            "label": "Product1"
          }
        ]
      }
    }
  ]
}

Model rozhraní API pro odpovídající pozici planogramu

ID pozice spárovaného planogramu a odpovídající zjištěný objekt z výsledku porozumění produktu

Name Typ Popis Povinní účastníci
positionId string ID pozice z planogramu odpovídalo odpovídajícímu zjištěnému objektu. No
detectedObject DetectedObjectApiModel Popisuje rozpoznaný objekt na obrázku. No

Další kroky