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.
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.
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ů
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>"
Proveďte v příkazu na příslušných místech následující změny:
- Nahraďte hodnotu
<subscriptionKey>
klíčem prostředku Vision. - Nahraďte hodnotu
<endpoint>
koncovým bodem vašeho prostředku Vision. Například:https://YourResourceName.cognitiveservices.azure.com
. - Nahraďte hodnotu
<body>
připojovacím řetězcem JSON, který jste připravili v předchozí části.
- Nahraďte hodnotu
Otevřete okno příkazového řádku.
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 |