Bagikan melalui


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.

Foto rak ritel dengan produk yang terdeteksi diuraikan dan persegi panjang posisi planogram diuraikan secara terpisah.

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.

Diagram gambar rak dengan perlengkapan dan produk disorot dan koordinatnya ditampilkan.

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

  1. 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>"
    
  2. JIka diperlukan, buat perubahan berikut dalam perintah:

    1. Ganti nilai <subscriptionKey> dengan kunci sumber daya Visi Anda.
    2. Ganti nilai <endpoint> dengan titik akhir sumber daya Visi Anda. Misalnya: https://YourResourceName.cognitiveservices.azure.com.
    3. Ganti nilai <body> dengan string JSON gabungan yang Anda siapkan di bagian sebelumnya.
  3. Buka jendela wantian perintah.

  4. 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

Langkah berikutnya