Поделиться через


Композиция по полке (предварительная версия)

Часть рабочего процесса распознавания продуктов включает исправление и изменение входных образов, чтобы служба была правильной.

В этом руководстве показано, как использовать API стежки для объединения нескольких изображений одной физической полки: это дает составное изображение всей розничной полки, даже если оно просматривается только частично несколькими разными камерами.

В этом руководстве также показано, как использовать API исправлений для искажения перспективы при стежке разных изображений.

Необходимые компоненты

  • подписка Azure — создайте бесплатную учетную запись.
  • После получения подписки Azure создайте ресурс Визуального зрения в портал Azure. Его необходимо развернуть в поддерживаемом регионе Azure (см. раздел "Доступность региона"). После развертывания ресурса выберите элемент Перейти к ресурсу.
    • Вам потребуется ключ и конечная точка из ресурса, создаваемого для подключения приложения к службе распознавания искусственного интеллекта Azure. Ключ и конечная точка будут вставлены в приведенный ниже код в кратком руководстве.
  • Ресурс служба хранилища Azure с контейнером хранилища BLOB-объектов. Создание
  • Установленная программа cURL. Кроме того, можно использовать другую платформу REST, например Swagger или расширение REST Client для VS Code.
  • Набор фотографий, показывающих смежные части одной полки. Рекомендуется 50 % перекрываться между изображениями. Вы можете скачать и использовать примеры образов "unstitched" из GitHub.

Использование API стежки

API стежки объединяет несколько изображений одной физической полки.

Три фотографии полков рядом с их объединенной составной фотографией.

Примечание.

Бренды, отображаемые на изображениях, не связаны с корпорацией Майкрософт и не указывают ни одну форму подтверждения продуктов Майкрософт или Майкрософт владельцами бренда, или одобрение владельцев бренда или их продуктов корпорацией Майкрософт.

Чтобы запустить операцию стежки изображения в наборе образов, выполните следующие действия:

  1. Отправьте изображения, которые вы хотите объединить в контейнер хранилища BLOB-объектов, и получите абсолютный URL-адрес для каждого изображения. Вы можете одновременно создать до 10 изображений.

  2. Скопируйте следующую curl команду в текстовый редактор.

    curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "<endpoint>/computervision/imagecomposition:stitch?api-version=2023-04-01-preview" --output <your_filename> -d "{
        'images': [
            '<your_url_string_>',
            '<your_url_string_2>',
            ...
        ]
    }"
    
  3. При необходимости внесите следующие изменения в команду.

    1. Замените значение ключа ресурса Визуального <subscriptionKey> зрения.
    2. Замените значение конечной точки ресурса Визуального <endpoint> зрения. Например: https://YourResourceName.cognitiveservices.azure.com.
    3. Замените содержимое <your_url_string> URL-адресами больших двоичных объектов изображений. Изображения должны быть упорядочены слева направо и сверху вниз, в соответствии с физическими пространствами, которые они показывают.
    4. Замените <your_filename> именем и расширением файла, в котором вы хотите получить результат (например, download.jpg).
  4. Откройте окно командной строки.

  5. Вставьте измененную curl команду из текстового редактора в окно командной строки и выполните команду.

Проверка ответа на стежку

API возвращает 200 ответ, а новый файл загружается в указанное расположение.

Использование API rectification

После завершения операции стежки рекомендуется выполнить операцию исправления для оптимальных результатов анализа.

Фотографии розничной полки, до и после операции исправления.

Примечание.

Бренды, отображаемые на изображениях, не связаны с корпорацией Майкрософт и не указывают ни одну форму подтверждения продуктов Майкрософт или Майкрософт владельцами бренда, или одобрение владельцев бренда или их продуктов корпорацией Майкрософт.

Чтобы исправить искажение перспективы в составном изображении, выполните следующие действия.

  1. Отправьте образ, который вы хотите исправить в контейнер хранилища BLOB-объектов, и получите абсолютный URL-адрес.

  2. Скопируйте следующую curl команду в текстовый редактор.

    curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "<endpoint>/computervision/imagecomposition:rectify?api-version=2023-04-01-preview" --output <your_filename> -d "{
      'url': '<your_url_string>',
      'controlPoints': {
        'topLeft': {
          'x': 0.1,
          'y': 0.1
        },
        'topRight': {
          'x': 0.2,
          'y': 0.2
        },
        'bottomLeft': {
          'x': 0.3,
          'y': 0.3
        },
        'bottomRight': {
          'x': 0.4,
          'y': 0.4
        }
      }
    }"
    
  3. При необходимости внесите следующие изменения в команду.

    1. Замените значение ключа ресурса Визуального <subscriptionKey> зрения.

    2. Замените значение конечной точки ресурса Визуального <endpoint> зрения. Например: https://YourResourceName.cognitiveservices.azure.com.

    3. Замените <your_url_string> URL-адрес хранилища BLOB-объектов образа.

    4. Замените четыре координаты контрольной точки в тексте запроса. X — это горизонтальная координата, а Y — вертикали. Координаты нормализуются, поэтому 0,5,0,5 указывает центр изображения, а 1,1 — правый нижний угол, например. Задайте координаты, чтобы определить четыре угла полки, как показано на изображении.

      Фотография полки с его четырьмя углами.

    5. Замените <your_filename> именем и расширением файла, в котором вы хотите получить результат (например, download.jpg).

  4. Откройте окно командной строки.

  5. Вставьте измененную curl команду из текстового редактора в окно командной строки и выполните команду.

Проверка ответа на исправление

API возвращает 200 ответ, а новый файл загружается в указанное расположение.

Следующие шаги

В этом руководстве вы узнали, как подготовить фотографии полки для анализа. Затем вызовите API распознавания продуктов, чтобы получить результаты анализа.