Aracılığıyla paylaş


Raf planogramı uyumluluğu (önizleme)

Planogram, perakende ürünlerin raflara doğru yerleşimini gösteren bir diyagramdır. Planogram Uyumluluk API'si, bir fotoğraftan alınan analiz sonuçlarını mağazanın planogram girişiyle karşılaştırmanıza olanak tanır. Planogramdaki tüm konumların ve her konumda bir ürünün bulunup bulunmadığını gösteren bir hesap döndürür.

Algılanan ürünlerin ana hatlarıyla ve planogram konum dikdörtgenlerinin ayrı olarak özetlenmiş olduğu bir perakende rafın fotoğrafı.

Not

Görüntülerde gösterilen markalar Microsoft'a bağlı değildir ve Microsoft veya Microsoft ürünlerinin marka sahipleri tarafından herhangi bir şekilde onaylandığını ya da marka sahiplerinin veya ürünlerinin Microsoft tarafından onaylandığını göstermez.

Önkoşullar

Planogram şeması hazırlama

Planogram verilerinizin belirli bir JSON biçiminde olması gerekir. Alan tanımları için aşağıdaki bölümlere bakın.

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

X ve Y koordinatları sol üst çıkış noktasıyla ilişkilidir ve genişlik ve yükseklik her sınırlayıcı kutuyu aşağı ve sağa doğru genişletir. Aşağıdaki diyagramda koordinat sistemi örnekleri gösterilmektedir.

Fikstürlerin ve ürünlerin vurgulandığı ve koordinatlarının gösterildiği raf görüntüsü diyagramı.

Not

Görüntülerde gösterilen markalar Microsoft'a bağlı değildir ve Microsoft veya Microsoft ürünlerinin marka sahipleri tarafından herhangi bir şekilde onaylandığını ya da marka sahiplerinin veya ürünlerinin Microsoft tarafından onaylandığını göstermez.

Planogram şemasındaki miktarlar özel olmayan birimlerdedir. Bunlar inç, santimetre veya başka bir ölçü birimine karşılık gelebilir. Eşleşen algoritma, fotoğraf çözümleme birimleri (piksel) ile planogram birimleri arasındaki ilişkiyi hesaplar.

Planogram API modeli

Planogram eşleştirme işlemleri için planogramı açıklar.

Adı Tür Açıklama Gerekli
width çift Planogramın genişliği. Yes
height çift Planogramın yüksekliği. Yes
products ProductApiModel Planogramdaki ürünlerin listesi. Yes
fixtures FikstürApiModel Planogramdaki fikstürlerin listesi. Yes
positions PositionApiModel Planogramdaki konumların listesi. Yes

Ürün API'si modeli

Planogramdaki bir ürünü açıklar.

Adı Tür Açıklama Gerekli
id Dize Ürünün kimliği. Yes
name Dize Ürünün adı. Yes
w çift Ürünün genişliği. Yes
h çift Fikstürün yüksekliği. Yes

Fikstür API modeli

Planogramdaki bir fikstür (raf veya benzer donanım) açıklar.

Adı Tür Açıklama Gerekli
id Dize Fikstürün kimliği. Yes
w çift Fikstür genişliği. Yes
h çift Fikstürün yüksekliği. Yes
x çift İlk kaynaktan, inç veya santimetre cinsinden sol uzaklık. Yes
y çift İlk kaynaktan, inç veya santimetre cinsinden üst uzaklık. Yes

KONUM API'si modeli

Bir ürünün planogramdaki konumunu açıklar.

Adı Tür Açıklama Gerekli
id Dize Konumun kimliği. Yes
productId Dize Ürünün kimliği. Yes
fixtureId Dize Ürünün üzerinde olduğu fikstürün kimliği. Yes
x çift İlk kaynaktan, inç veya santimetre cinsinden sol uzaklık. Yes
y çift İlk kaynaktan, inç veya santimetre cinsinden üst uzaklık. Yes

Analiz sonuçlarını alma

Ardından, özel bir modelle Product Understanding API çağrısı yapmanız gerekir.

Döndürülen JSON metni bir "detectedProducts" yapı olmalıdır. Rafta algılanan tüm ürünleri, eğitim aşamasında kullandığınız ürüne özgü etiketlerle birlikte gösterir.

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

Eşleşen isteği hazırlama

Planogram şemanızın JSON içeriğini analiz sonuçlarının JSON içeriğiyle birleştirin, örneğin:

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

Bu, API isteği gövdesinde kullanacağınız metindir.

Planogram eşleştirme API'sini çağırma

  1. Aşağıdaki curl komutu bir metin düzenleyicisine kopyalayın.

    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. Gerektiğinde komutta aşağıdaki değişiklikleri yapın:

    1. değerini <subscriptionKey> Görüntü İşleme kaynak anahtarınızla değiştirin.
    2. değerini <endpoint> Görüntü İşleme kaynak uç noktanızla değiştirin. Örneğin: https://YourResourceName.cognitiveservices.azure.com.
    3. değerini <body> önceki bölümde hazırladığınız birleştirilmiş JSON dizesiyle değiştirin.
  3. Bir komut istemi penceresi açın.

  4. Düzenlenen curl komutu metin düzenleyicisinden komut istemi penceresine yapıştırın ve ardından komutunu çalıştırın.

Yanıtı inceleme

Her planogram konumunda algılanan ürünleri (veya boşlukları) gösteren başarılı bir yanıt JSON olarak döndürülür. Alan tanımları için aşağıdaki bölümlere bakın.

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

Planogram eşleştirme konumu API modeli

Ürün anlama sonucundan eşleştirilmiş planogram konum kimliği ve buna karşılık gelen algılanan nesne.

Adı Tür Açıklama Gerekli
positionId Dize Planogramdaki konum kimliği, ilgili algılanan nesneyle eşleşmiş. Hayır
detectedObject DetectedObjectApiModel Bir görüntüde algılanan nesneyi açıklar. Hayır

Sonraki adımlar