Megosztás a következőn keresztül:


Polc planogram-megfelelősége (előzetes verzió)

A planogram egy diagram, amely a kiskereskedelmi termékek megfelelő elhelyezését jelzi a polcokon. A Planogram Compliance API segítségével összehasonlíthatja egy fénykép elemzési eredményeit az áruház planogram-bemenetével. Visszaadja a planogramban lévő összes pozíciót, valamint azt, hogy egy termék megtalálható-e az egyes pozíciókban.

Fénykép egy kiskereskedelmi polcról, amelyen az észlelt termékek vannak körvonalazva, és a planogram pozíció téglalapjai külön vannak körvonalazva.

Feljegyzés

A képeken látható márkák nem kapcsolódnak a Microsofthoz, és nem jelzik a Microsoft- vagy Microsoft-termékek márkatulajdonosok általi jóváhagyásának semmilyen formáját, illetve a márkatulajdonosok vagy termékeik Microsoft általi jóváhagyását.

Előfeltételek

Planogramséma előkészítése

A planogramadatoknak egy adott JSON-formátumban kell rendelkezniük. A meződefiníciókat az alábbi szakaszokban találja.

"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
    }
  ]
}

Az X és az Y koordináták a bal felső forráshoz viszonyítva vannak, a szélesség és a magasság pedig az egyes határolókereteket lefelé és jobbra is kiterjeszti. Az alábbi ábra példákat mutat be a koordinátarendszerre.

Egy polc képének ábrája, amelyen kiemelt szerelvények és termékek és azok koordinátái láthatók.

Feljegyzés

A képeken látható márkák nem kapcsolódnak a Microsofthoz, és nem jelzik a Microsoft- vagy Microsoft-termékek márkatulajdonosok általi jóváhagyásának semmilyen formáját, illetve a márkatulajdonosok vagy termékeik Microsoft általi jóváhagyását.

A planogramsémában lévő mennyiségek nem meghatározott egységekben vannak. Ezek a hüvelykeknek, centimétereknek vagy bármely más mértékegységnek felelnek meg. Az egyező algoritmus kiszámítja a fényképelemzési egységek (képpontok) és a planogram-egységek közötti kapcsolatot.

Planogram API-modell

A planogram-egyeztetési műveletek planogramjának ismertetése.

Név Típus Leírás Kötelező
width double A planogram szélessége. Igen
height double A planogram magassága. Igen
products ProductApiModel A planogramban szereplő termékek listája. Igen
fixtures FixtureApiModel A tervrajzban lévő fixtúrák listája. Igen
positions PositionApiModel A planogram pozícióinak listája. Igen

Termék API-modell

Egy termék leírása a planogramban.

Név Típus Leírás Kötelező
id húr A termék azonosítója. Igen
name húr A termék neve. Igen
w double A termék szélessége. Igen
h double A berendezés magassága. Igen

Fixture API-modell

A planogramban található rögzítési elemet (polcot vagy hasonló hardvert) ismerteti.

Név Típus Leírás Kötelező
id húr A szerelvény azonosítója. Igen
w double A berendezés szélessége. Igen
h double A berendezés magassága. Igen
x double Bal eltolás a forrástól hüvelykben vagy centiméterben. Igen
y double Felső eltolás a forrástól hüvelyk vagy centiméter mértékegységben. Igen

Pozíció API-modell

A termék pozícióját ismerteti a planogramban.

Név Típus Leírás Kötelező
id húr A pozíció azonosítója. Igen
productId húr A termék azonosítója. Igen
fixtureId húr Annak a berendezésnek az azonosítója, amelyen a termék található. Igen
x double Bal eltolás a forrástól hüvelykben vagy centiméterben. Igen
y double Felső eltolás a forrástól hüvelyk vagy centiméter mértékegységben. Igen

Elemzési eredmények lekérése

Ezután egy Product Understanding API-hívást kell végrehajtania egy egyéni modellel.

A visszaadott JSON-szövegnek struktúrának "detectedProducts" kell lennie. Megjeleníti a polcon észlelt összes terméket a betanítási szakaszban használt termékspecifikus címkékkel.

"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"
        }
      ]
    }
  ]
}

Az egyeztetési kérelem előkészítése

Csatlakoztassa a planogramséma JSON-tartalmát az elemzési eredmények JSON-tartalmához, például a következőhöz:

"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"
        }
      ]
    }
  ]
}

Ezt a szöveget fogja használni az API-kérelem törzsében.

A planogramnak megfelelő API meghívása

  1. Másolja a következő curl parancsot egy szövegszerkesztőbe.

    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. Hajtsa végre a következő módosításokat a parancs megfelelő területein:

    1. Cserélje le a Vision erőforráskulcs értékét <subscriptionKey> .
    2. Cserélje le a Vision-erőforrásvégpont értékét <endpoint> . Például: https://YourResourceName.cognitiveservices.azure.com
    3. Cserélje le az értékeket <body> az előző szakaszban előkészített csatlakoztatott JSON-sztringre.
  3. Nyisson meg egy parancsablakot.

  4. Illessze be a szerkesztett curl parancsot a szövegszerkesztőből a parancssori ablakba, majd futtassa a parancsot.

A válasz vizsgálata

A rendszer sikeres választ ad vissza a JSON-ban, amely megjeleníti az egyes planogram-pozíciókban észlelt termékeket (vagy hiányosságokat). A meződefiníciókat az alábbi szakaszokban találja.

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

Planogram egyező pozíció API-modellje

Párosított planogram pozícióazonosítója és a termékmegértési eredmény megfelelő észlelt objektuma.

Név Típus Leírás Kötelező
positionId húr A planogram pozícióazonosítója megegyezik a megfelelő észlelt objektummal. Nem
detectedObject DetectedObjectApiModel Egy kép észlelt objektumát ismerteti. Nem

Következő lépések