Kepatuhan planogram rak (pratinjau)
Planogram adalah diagram yang menunjukkan penempatan produk ritel yang benar di rak. API Kepatuhan Planogram memungkinkan Anda membandingkan hasil analisis dari foto dengan input planogram toko. Ini mengembalikan akun dari semua posisi dalam planogram, dan apakah produk ditemukan di setiap posisi.
Catatan
Merek yang ditampilkan dalam gambar tidak berafiliasi dengan Microsoft dan tidak menunjukkan bentuk dukungan produk Microsoft atau Microsoft oleh pemilik merek, atau dukungan pemilik merek atau produk mereka oleh Microsoft.
Prasyarat
- Anda harus sudah menyiapkan dan menjalankan analisis Pemahaman Produk dasar dengan API Pemahaman Produk.
- cURL diinstal. Atau, Anda dapat menggunakan platform REST yang berbeda, seperti Swagger atau ekstensi Klien REST untuk Visual Studio Code.
Menyiapkan skema planogram
Anda harus memiliki data planogram Anda dalam format JSON tertentu. Lihat bagian di bawah ini untuk definisi bidang.
"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
}
]
}
Koordinat X dan Y relatif terhadap asal kiri atas, dan lebar dan tinggi memperpanjang setiap kotak pembatas ke bawah dan ke kanan. Diagram berikut menunjukkan contoh sistem koordinat.
Catatan
Merek yang ditampilkan dalam gambar tidak berafiliasi dengan Microsoft dan tidak menunjukkan bentuk dukungan produk Microsoft atau Microsoft oleh pemilik merek, atau dukungan pemilik merek atau produk mereka oleh Microsoft.
Kuantitas dalam skema planogram berada dalam unit nonspesifik. Mereka dapat sesuai dengan inci, sentimeter, atau unit pengukuran lainnya. Algoritma pencocokan menghitung hubungan antara unit analisis foto (piksel) dan unit planogram.
Model API planogram
Menjelaskan planogram untuk operasi pencocokan planogram.
Nama | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
width |
ganda | Lebar planogram. | Ya |
height |
ganda | Tinggi planogram. | Ya |
products |
ProductApiModel | Daftar produk dalam planogram. | Ya |
fixtures |
FixtureApiModel | Daftar perlengkapan dalam planogram. | Ya |
positions |
PositionApiModel | Daftar posisi dalam planogram. | Ya |
Model API produk
Menjelaskan produk dalam planogram.
Nama | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
id |
string | ID produk. | Ya |
name |
string | Nama produk. | Ya |
w |
ganda | Lebar produk. | Ya |
h |
ganda | Tinggi perlengkapan. | Ya |
Model API fikstur
Menjelaskan perlengkapan (rak atau perangkat keras serupa) dalam planogram.
Nama | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
id |
string | ID perlengkapan. | Ya |
w |
ganda | Lebar perlengkapan. | Ya |
h |
ganda | Tinggi perlengkapan. | Ya |
x |
ganda | Offset kiri dari asal, dalam unit dalam inci atau sentimeter. | Ya |
y |
ganda | Offset teratas dari asal, dalam satuan inci atau sentimeter. | Ya |
Model API Posisi
Menjelaskan posisi produk dalam planogram.
Nama | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
id |
string | ID posisi. | Ya |
productId |
string | ID produk. | Ya |
fixtureId |
string | ID perlengkapan tempat produk berada. | Ya |
x |
ganda | Offset kiri dari asal, dalam unit dalam inci atau sentimeter. | Ya |
y |
ganda | Offset teratas dari asal, dalam satuan inci atau sentimeter. | Ya |
Mendapatkan hasil analisis
Selanjutnya, Anda perlu melakukan panggilan PRODUCT Understanding API dengan model kustom.
Teks JSON yang dikembalikan harus berupa "detectedProducts"
struktur. Ini menunjukkan semua produk yang terdeteksi di rak, dengan label khusus produk yang Anda gunakan dalam tahap pelatihan.
"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"
}
]
}
]
}
Siapkan permintaan yang cocok
Gabungkan konten JSON dari skema planogram Anda dengan konten JSON dari hasil analisis, seperti ini:
"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"
}
]
}
]
}
Ini adalah teks yang akan Anda gunakan di isi permintaan API Anda.
Memanggil API pencocokan planogram
Salin perintah berikut
curl
ke editor teks.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>"
JIka diperlukan, buat perubahan berikut dalam perintah:
- Ganti nilai
<subscriptionKey>
dengan kunci sumber daya Visi Anda. - Ganti nilai
<endpoint>
dengan titik akhir sumber daya Visi Anda. Misalnya:https://YourResourceName.cognitiveservices.azure.com
. - Ganti nilai
<body>
dengan string JSON gabungan yang Anda siapkan di bagian sebelumnya.
- Ganti nilai
Buka jendela wantian perintah.
Tempelkan perintah yang diedit
curl
dari editor teks ke jendela prompt perintah, lalu jalankan perintah .
Periksa responsnya
Respons yang berhasil dikembalikan di JSON, memperlihatkan produk (atau celah) yang terdeteksi pada setiap posisi planogram. Lihat bagian di bawah ini untuk definisi bidang.
{
"matchedResultsPerPosition": [
{
"positionId": "01",
"detectedObject": {
"id": "01",
"boundingBox": {
"x": 12,
"y": 1234,
"w": 123,
"h": 12345
},
"classifications": [
{
"confidence": 0.9,
"label": "Product1"
}
]
}
}
]
}
Model API posisi pencocokan planogram
ID posisi planogram yang dipasangkan dan objek yang terdeteksi terkait dari hasil pemahaman produk.
Nama | Tipe | Deskripsi | Wajib diisi |
---|---|---|---|
positionId |
string | ID posisi dari planogram yang cocok dengan objek yang terdeteksi terkait. | No |
detectedObject |
DetectedObjectApiModel | Menjelaskan objek yang terdeteksi dalam gambar. | No |